当前位置:首页 > Web开发 > 正文

保证集群中存在指定数量的Pod副本

2024-03-31 Web开发

标签:

1.什么是Kubernetes

Kubernetes 是一个跨主机集群的 开源的容器调理平台,它可以自动化应用容器的部署、扩展和操纵 , 供给以容器为中心的根本架构。(官方文档第一行)

1.1 Kubernetes处事于微处事

每个微处事都是独立的进程,通过界说好的接口(restful api ,amqp)互相挪用

微处事常见的问题

差别处事依赖库导致的混乱,需要将每个处事独立开(通过docker改进)

处事注册,处事发明:需要动态的更新当前处事。

处事编排(即docker容器的编排,docker自身很难解决集群部署的问题):哪些处事需要在哪些宿主机上启动

 

二 Kubernetes的主要构成

2.1 Master

  k8s集群的打点节点,卖力打点集群,供给集群的资源数据访谒入口。拥有Etcd存储处事(可选),运行Api Server进程,Controller Manager处事进程及Scheduler处事进程,关联事情节点Node。

Kubernetes API server供给HTTP Rest接口的关键处事进程,是Kubernetes里所有资源的增、删、改、查等操纵的独一入口。也是集群控制的入口进程;

Kubernetes Controller Manager是Kubernetes所有资源东西的自动化控制中心;

Kubernetes Schedule是卖力资源调理(Pod调理)的进程。

2.2 Node

  Node是Kubernetes集群架构中运行Pod的处事节点(亦叫agent或minion)。Node是Kubernetes集群操纵的单元,用来承载被分配Pod的运行,是Pod运行的宿主机。关联Master打点节点,拥有名称和IP、系统资源信息。运行docker eninge处事,守护进程kunelet及负载均衡器kube-proxy.

每个Node节点都运行着以下一组关键进程

kubelet:卖力对Pod对付的容器的创建、启停等任务,同时与Master节点协作,实现集群打点的根基成果;

kube-proxy:实现Kubernetes Service的通信与负载均衡机制的重要组件;

Docker Engine(Docker):Docker引擎,卖力本机容器的创建和打点事情。

  Node节点可以在运行期间动态增加到Kubernetes集群中,默认情况下,kubelet会想master注书籍身,这也是Kubernetes保举的Node打点方法,kubelet进程会按时向Master陈述请示自身谍报,如操纵系统、Docker版本、CPU和内存,以及有哪些Pod在运行等等,这样Master可以获知每个Node节点的资源使用情况,并实现高效均衡的资源调理计谋。

2.3 Pod

  运行于Node节点上,若干相关容器的组合。Pod内包罗的容器运行在同一宿主机上,使用不异的网络定名空间、IP地点和端口,能够通过localhost进行通信。Pod是Kurbernetes进行创建、调理和打点的最小单位,它供给了比容器更高条理的抽象,使得部署和打点越发灵活。一个Pod可以包罗一个容器或者多个相关容器。

  Pod有两种类型:普通Pod和静态Pod。后者对照特殊,它并不存在Kubernetes的etcd存储中,而是存放在某个具体的Node上的一个具体文件中,并且只在此Node上启动。普通Pod一旦被创建,就会被放入etcd存储中,随后会被Kubernetes Master调理到摸个具体的Node长进行绑定,随后该Pod被对应的Node上的kubelet进程实例化成一组相关的Docker容器并启动起来,在默认情况下,当Pod里的某个容器遏制时,Kubernetes会自动检测到这个问题并且重启这个Pod(重启Pod里的所有容器),如果Pod地址的Node宕机,则会将这个Node上的所有Pod从头调理到其他节点上。

2.4 Label(标签)

Kubernetes中的任意API东西都是通过Label进行标识,Label的本色是一系列的Key/Value键值对,此中key与value可自界说。Label可以附加到各类资源东西上,如Node、Pod、Service、RC等,一个资源东西可以界说任意数量的Label,同一个Label也可以被添加到任意数量的资源东西上去。Label是Replication Controller和Service运行的根本,二者通过Label来进行关联Node上运行的Pod,可以通过Label Selector(标签选择器)盘问和筛选资源东西。

一些常用的Label如下:

版本标签:"release":"stable","release":"canary"......

环境标签:"environment":"dev","environment":"qa","environment":"production"

架构标签:"tier":"frontend","tier":"backend","tier":"middleware"

分区标签:"partition":"customerA","partition":"customerB"

质量管控标签:"track":"daily","track":"weekly"

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/31926.html