Kubernetes概述
K8s基本概念
一、Master
Kubernetes里的Master指的是集群控制节点,在每个Kubernetes集群里都需要有一个Master来负责整个集群的管理和控制,基本上Kubernetes的所有控制命令都发给它,它负责具体的执行过程,我们后面执行的所有命令基本都是在Master上运行的。Master通常会占据一个独立的服务器(高可用部署建议用3台服务器),主要原因是它太重要了,是整个集群的“首脑”,如果它宕机或者不可用,那么对集群内容器应用的管理都将失效
1、Master上运行的进程
-
Kubernetes API
提供了HTTP Rest接口的关键服务进程,是kubernetes里所有资源的增删改查等操作的唯一入口,也是集群控制的入口进程。
-
Kubernetes Controller Manager
Kubernetes里所有资源对象的自动化控制中心。
-
Kubernetes Scheduler
负责资源调度(Pod调度)的进程。
-
Etcd
保存所有资源对象的数据。
二、Node
除了Master,Kubernetes集群中的其他机器被称为Node,在较早的版本中也被称为Minion。与Master一样,Node可以是一台物理主机,也可以是一台虚拟机。Node是Kubernetes集群中的工作负载节点,每个Node都会被Master分配一些工作负载(Docker容器),当某个Node宕机时,其上的工作负载会被Master自动转移到其他节点上。Node只要安装了所需进程,在运行期间可以动态增加到Kubernetes集群中,并且kubelet进程会定时向Master汇报自身的情报。而某个Node在超过指定时间不上报信息时,会被Master判定为“失联”,Node的状态被标记为不可用(Not Ready).
1、Node上运行的进程
-
Kubelet
真正负责Pod对应的创建、启停等任务的进程,同时与Master密切协作,实现集群管理的基本功能。
-
Kube-proxy
实现Kubernetes Service的通信与负载均衡机制的重要组件。
-
容器引擎
如Docker引擎,负责本机的容器创建和管理工作
三、Pod
Pod是kubernetes集群中最小的调度资源。每个Pod都有一个特殊的被称为“根容器”的Pause容器。Pause容器对应的镜像属于Kubernetes平台的一部分,除了Pause容器,每个Pod还包含一个或多个紧密相关的用户业务容器。
1、Pause容器的作用
- 引入业务无关并且不易死亡的Pause容器作为Pod的根容器,以它的状态代表整个容器组的状态。
- Pod里多个业务容器共享Pause容器的IP和Volume,解决了容器之间的通讯和文件共享问题
2、Pod IP
Kubernetes为每个Pod都分配了唯一的IP地址,称之为Pod IP,一个Pod里的多个容器共享Pod IP地址。Kubernetes要求底层网络支持集群内任意两个Pod之间的TCP/IP直接通信,这通常采用虚拟二层网络技术来实现,例如Flannel、Open vSwitch等,因此我们需要牢记一点:在Kubernetes里,一个Pod里的容器与另外主机的Pod容器能够直接通信。
OpenVSwitch:开源的虚拟交换机,可软件虚拟二层三层的复杂网络环境
3、Pod的类型
(1)静态Pod
没有被存放在Kubernetes的etcd存储里的pod,而是被存放在某个具体的Node上的一个具体文件中,并且只在此Node上启动、运行,不受Mastrer管控。
(2)普通的Pod
会被放入etcd中存储,随后会被Kubernetes Master调度到某个具体的Node上并进行绑定(Binding),随后该Pod被对应的Node上的kubelet进程实例化成一组相关的Docker容器并启动。且当Pod里的某个容器停止时,Kubernetes会自动检测到这个问题并且重新启动这个Pod(重启Pod里的所有容器),如果Pod所在的Node宕机,就会将这个Node上的所有Pod重新调度到其他节点。

浙公网安备 33010602011771号