k8s学习笔记之核心概念
2017-06-25 21:43
176 查看
一、背景介绍
云计算三大类型:
IaaS:即基础设施即服务PaaS:即平台即服务
SaaS:即软件即服务
docker容器技术的迅猛发展:
一次构建,到处运行容器的快速轻量
完整的生态环境
二、什
4000
么是kubernates
k8s是google开源的容器集群管理系统,在谷歌内部被称borg,在docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。kubernates优势:
容器编排轻量级
开源
弹性伸缩
负载均衡
三、k8s的核心概念
集群:
集群式一组节点,这些节点可以是物理服务器或者虚拟机,之上安装了kubernetes平台,这里可以看到一个典型的kubernetes架构图从上面可以看到如下组件,使用特别的图标表示service和label:
pod
container(容器)
label(标签)
replication controller(复制控制器)
service(服务)
node(节点)
kubenates master(主节点)
这里分别讲述一下各个组件的概念:
1、pod
运行于node节点上,。pod内包含的容器运行在同一宿主主机上,使用相同的网络命名空间、ip地址和端口、能够通过localhost进行通信,pod是k8s进行创建、调度和管理的最小单位,它提供了比容器更高层次的抽象,使得部署和管理更加灵活,一个pod可以包含一个容器或者多个相关容器。2、Replication Controller
Recplication Controller用来管理pod的副本,保证集群中存在置顶数量的pod副本,集群中副本的数量大于置顶数量,则会杀掉置顶数量之外的多余容器数量,反之则会启动少于置顶数量个数的容器,保证数量不变,replication controller是实现弹性伸缩、动态扩容和滚动升级的核心。如动态图所示:3、service
service定义了pod的逻辑集合和访问该集合的策略,是真实服务的抽象,service提供了一个统一的服务入口以及服务代理和发现机制,使用户不需要了解后台pod如何运行。如果pods是短暂的,那么重启时ip地址发生了变化,那么怎么才能从前端容器正确指向后台容器呢?
service是定义一系列pod以及份这些pod的策略的一层抽象,service通过label找到Pod组,因为service是抽象的,所以在图标里通常看不到它的存在,这也就让这一概念更难以理解了。
现在,假定有两个后台pod,并且定义后台service的名词为’back-service’,labe选择器为(tier=back,app=mapp),back-service的service会完成如下两件重要的事情:
会为service创建一个本地集群的dns入口,因此前端pod只需要dns查找主机名为’back-service’,就能够解析出前端应用程序可用的ip地址。
现在前端已经得到了后台服务的ip地址,但是它应该选择2个后台pod的哪一个呢?service在这两个后台pod之间提供透明的负载均衡,会将请求分发给其中的容易一个,通过每个node上运行的代理(kube-proxy)完成。如图:
4、label
k8s中的容器api对象都是通过Label进行 ,label的实质是一系列的k/v键值对,label是replication controllerh和service运行的基础,二者通过label进行判别node上运行的pod。5、node
node是k8s集群架构中运行pode的服务器节点,通常称为minion,node是k8s集群操作的单元,用来承载被分配的pod的运行,是pod运行的宿主机,每个节点都运行如下的k8s关键主键:- kubelet:是主节点代理
- kube-proxy:service使用其将连接路由到Pod
- docker或者rocket:k8s使用的容器技术来创建容器
四、深入体验
接下来可以继续深入的看看k8s官方文档,或者访问 https://kubernetes.io/docs/tutorials/kubernetes-basics/cluster-interactive/ 在这里边敲代码,加深体验。相关文章推荐
- Spark2.x学习笔记:3、 Spark核心概念RDD
- Maven学习笔记 -- day02 Maven整合struts2及Maven核心概念、添加插件
- java核心技术学习笔记1---基本概念
- Netty 学习笔记之二 Netty 核心概念
- Windows Media Foundation学习笔记1——MF核心概念
- Webpack之核心概念学习笔记(1)
- ElasticSearch 6.x 学习笔记:5.核心概念解读
- PHP学习笔记 -- 面向对象的核心概念
- 【学习笔记】3D图形核心基础精炼版-3:屏幕中的三维坐标概念
- openshift 学习笔记-3 核心组件和概念
- K8S基本概念视频教学学习笔记
- 【Netty in Action学习笔记】Netty核心组件概念
- 【学习笔记】3D图形核心基础精炼版-1:入门概念
- Spring学习笔记:1-概念理解
- 《JAVA2核心技术 卷一 基础知识(原书第七版)》《Core java2,Volume I-Fondamentsls Seven Edition》 学习笔记(一)
- 工作流-Petri网概念(2) (学习笔记)
- 孙鑫VC学习笔记:第十四讲 网络的基本概念
- 《JAVA2核心技术 卷一 基础知识(原书第七版)》《Core java2,Volume I-Fondamentsls Seven Edition》 学习笔记(三)对象的克隆
- Java2核心技术第七版的学习笔记(二):.The Java Programming Environment(Java的环境)
- 孙鑫VC学习笔记:第十一讲 坐标空间与各种转换的概念