kubernetes 实践一:基本概念和原理

这里记录kubernetes学习和使用过程中的内容。

CentOS7 k8s-1.13 flanneld-0.10 docker-18.06 etcd-3.3

本节记录kubernetes的基本概念。

kubernetes基本概念

Master

Master是Kubernetes里的集群控制节点,每个k8s集群里都需要一个Master节点来负责整个集群的管理和控制,基本k8s上所有的控制命令都是由它发起的,如果它宕机了,那整个集群所有的控制命令都可能不可用了。所有一般它是一台物理机或虚拟机。
一般Master节点上需要启动以下服务:

  • kube-apiserver (Kubernetes Api Server),提供 HTTP Rest 接口的关键服务进程,是 k8s 里所有资源增、删、查、改等操作的唯一入口,也是集群控制的入口服务。
  • kube-controller-manager(Kubernetes Controller Manager),k8s 里所有资源对象的自动化中心,管理所有的资源。
  • kube-scheduler(Kubernetes Scheduler),负责资源调度(Pod 调度)的服务。

其实还有一个etcd服务,存储 k8s 里所有资源对象的数据。

Node

k8s 集群中节点分为管理节点Master和工作节点Node,在早期版本里叫Minion。和Master一样,它一般是一台物理机或虚拟机。Master负责任务的分配调度,Node就负责任务执行,实际的工作都是在Node节点上(使用docker),当一个Node宕机是,它的任务会被分配到其他Node节点上。
Node节点也有一些关键的服务:

  • kubelet:负责Pod对应容器的创建、启停等任务,同时与Master节点密切协作,实现集群管理的基本功能。
  • kube-proxy:实现 Kubernetes Service 的通信与负载均衡机制的重要组件
  • Docker Engine(docker):docker引擎,负责本机的容器创建和管理工作。
  • flanneld:严格来说它不是 k8s 的核心组件,它用来管理 k8s 集群的网络。

使用命令

[root@k8s-master ~]# kubectl get nodes     
NAME            STATUS   ROLES    AGE    VERSION
192.168.10.11   Ready    <none>   2d7h   v1.13.0
192.168.10.12   Ready    <none>   2d2h   v1.13.0

Pod

Pod 是 k8s 最重要也是最基本的概念,每个Pod都有一个特殊的被称为“根容器”的Pause容器。Pause容器对应的镜像属于 k8s 平台的一部分,每个Pod由Pause容器和业务容器组成。

为什么由Pod的概念和Pod这样的结构呢:原因如下:

  • 在一组容器作为单元的情况下,我们难以对“整体”简单地进行判断及有效地行动。引入业务无关并且不易死亡地Pause容器作为Pod的根容器,以它地状态代表整个容器组地状态,以此来解决这个难题。
  • Pod里的多个业务容器共享Pause容器的IP,共享Pause容器挂接的Volume,这样既简化了密切关联的业务容器之间的通信问题,也很好地解决了它们之间地文件共享问题。

Kubernetes为每个Pod都分配了唯一地IP地址,称之为Pod IP,一个Pod里地多个容器共享Pod IP地址。k8s采用虚拟二层网络技术,如flanneld、OpenvSwitch等实现集群内任务两个Pod之间地TCP/IP直接通信。

扫描二维码关注公众号,回复: 7344279 查看本文章

Pod有两种类型:普通地Pod和静态Pod(static Pod)

  • 普通Pod 存储在etcd中,创建后就被k8s调度到某个Node上,随后被kubelet实例化成一组容器并启动。默认情况下,如果Pod中某个容器停止,则重启Pod中所有容器,如果所在地Node宕机,则调度到其他Node上。
  • static Pod 存储在某个具体Node地一个具体文件中,并且只在此Node上启动运行。

以下是Pod、容器和Node的关系:

[root@k8s-master ~]# kubectl get pods
NAME          READY   STATUS    RESTARTS   AGE
mysql-f8g28   1/1     Running   0          80m
myweb-529z6   1/1     Running   0          73m
myweb-dkb4n   1/1     Running   0          73m
myweb-ggvwz   1/1     Running   0          73m
myweb-j5t4x   1/1     Running   0          73m
myweb-l6wqv   1/1     Running   0          73m
nginx         1/1     Running   1          88m

猜你喜欢

转载自www.cnblogs.com/xingyys/p/11574597.html