kubernetes学习与实践篇(一)主要概念介绍

什么是kubernetes后端

Kubernetes是Google开源的容器集群管理系统,实现基于Docker构建容器,利用Kubernetes能很方面管理多台Docker主机中的容器。api

 

主要功能网络

将多台Docker主机抽象为一个资源,以集群方式管理容器,包括任务调度、资源管理、弹性伸缩、滚动升级等功能。负载均衡

使用编排系统(YAML File)快速构建容器集群,提供负载均衡,解决容器直接关联及通讯问题。工具

自动管理和修复容器,简单说,好比建立一个集群,里面有十个容器,若是某个容器异常关闭,那么,会尝试重启或从新分配容器,始终保证会有十个容器在运行,反而杀死多余的。spa

 

kubernetes角色组成命令行

POD:代理

    Pod是kubernetes的最小操做单元,一个Pod能够由一个或多个容器组成;server

    同一个Pod只能运行在同一个主机上,共享相同的volumes、network、namespace。对象

ReplicationController(RC):

    RC用来管理Pod,一个RC能够由一个或多个Pod组成,在RC被建立后,系统会根据定义好的副本数来建立Pod数量。

    在运行过程当中,若是Pod数量小于定义的,就会重启中止的或从新分配Pod,反之则杀死多余的。固然,也能够动态伸缩运行的Pods规模或熟悉。

Service:

    Service定义了一个Pod逻辑集合的抽象资源,Pod集合中的容器提供相同的功能。

    集合根据定义的Label和selector完成,当建立一个Service后,会分配一个Cluster IP,这个IP与定义的端口提供这个集合一个统一的访问接口,而且实现负载均衡。

Label:

    Label是用于区分Pod、Service、RC的key/value键值对;

    Pod、Service、RC能够有多个label,可是每一个label的key只能对应一个;

    主要是将Service的请求经过lable转发给后端提供服务的Pod集合;

 

kubernetes组件

 

kubectl:        客户端命令行工具,将接受的命令格式化后发送给kube-apiserver,做为整个系统的操做入口。

kube-apiserver:    做为整个系统的控制入口,以REST API服务提供接口。

kube-controller-manager:    用来执行整个系统中的后台任务,包括节点状态情况、Pod个数、Pods和Service的关联等。

kube-scheduler:    负责节点资源管理,接受来自kube-apiserver建立Pods任务,并分配到某个节点。

etcd:          负责节点间的服务发现和配置共享。

kube-proxy:      运行在每一个计算节点上,负责Pod网络代理。定时从etcd获取到service信息来作相应的策略。

kubelet:        运行在每一个计算节点上,做为agent,接受分配该节点的Pods任务及管理容器,周期性获取容器状态,反馈给kube-apiserver。

DNS:          一个可选的DNS服务,用于为每一个Service对象建立DNS记录,这样全部的Pod就能够经过DNS访问服务了。

相关文章
相关标签/搜索