文章目录
  1. 1. Kubernetes 的调度流程
  2. 2. Pod、RC和Service的关系
  3. 3. Service 的 Cluster IP 和 NodePort
  4. 4. Kubernetes 集群的优势

Kubernetes 的调度流程

Controller Manager 是集群内部的管理控制中心,负责集群内的 Node、Pod副本、Endpoint、Namespace、Service Account、Resource Quota 等的管理,并执行自动化修复流程,以确保集群处于预期的工作状态。

Controller Manager 内部包含,Replication Controller、Node Controller、ResourceQuota Controller、Namespace Controller、ServiceAccount Controller、Token Controller、Service Controller、Endpoint Controller 等。Controller Manager 通过这些子控制器通过 API Server 监控系统的共享状态,并不断修正系统的状态,直到系统处于设定的“预期状态”。这些控制器的具体作用如下:

  • Replication Controller 的作用是确保集群中一个 RC 所关联的 Pod 都保持一定数量的 Pod 副本处于正常运行状态。如果 Pod 副本数过多,则销毁一些 Pod 副本;反之,则添加 Pod 副本。
  • Node Controller 负责发现、管理和监控集群中的各个 Node 节点。Kuberlet 在启动时通过 API Server 注册节点信息,并定时向 API Server 发送节点信息。Node Controller 通过 API Server 定期读取这些信息,并予以处理。
  • ResourceQuota Controller 确保指定的对象在额定的系统资源内工资,不会超量占用,避免某些业务进程的设计实现导致整个系统宕机。
  • Namespace Controller 通过 API Server 定时读取 Namespace 的信息,并删除标记为“Terminating”的 Namespace,同时,删除该 Namespace 下的 ServiceAccount、RC、Pod、Secret、ResourceQuota 等资源。
  • ServiceAccount Controller 与 Token Controller 是与安全相关的,主要负责默认账户的创建、私钥的管理、证书和 Token 的管理等。
  • Service Controller 监控 Service 的变化,确保外部 LoadBalancer 被更新。
  • Endpoint Controller 监控 Service 和 Pod 的变化。如果 Service 被删除,则删除和 Service 对应的 Endpoint 对象。

Pod、RC和Service的关系

Pod 是一组容器的一个“单一集合体”,Kubernetes 中的最小任务调度单元。Pod 可以被调度到任意 Node 上恢复,同一个 Pod 里的所有容器共享资源(网络、Volumes 等)。

RC(Replication Controller)是 Pod 的副本控制器,用于限定某种 Pod 的实例个数,属于服务集群的控制范畴。

Service 可以看做一组相同作用的 Pod 对外访问的接口。

可见,Service 管理的是 Pod 组成的集群,以集群的方式来提供服务。在集群中,Pod 可能被 RC 销毁并再次创建,因此 RC 是用来控制 Service 内的 Pod 数量,是处于 Service 和 Pod 之间的一个管理层。

Service 的 Cluster IP 和 NodePort

Pod 的 IP 地址是 Docker 分配的,相对而言并不固定,由于 Pod 的生命周期比较短暂,可能被 RC 重新创建,因此新的 Pod 的 IP 也可能会变化。但是, Service 的 Cluster IP 相对固定,是由 Kubernetes 系统动态分配的,在Service 被关闭之前不会再变化。

Node 是 Kubernetes 集群中的实际节点,NodePort 是节点上的实际端口,通过访问这个端口,就能访问内部的 Service 了。

Kubernetes 集群的优势

Kubernetes 集群的优势主要在于以下一些地方,

  1. 可以很容易的开发和部署分布式系统。
  2. Kubernetes 是为微服务架构提供了很好的支持。将一个复杂的应用分解成多个互相连接的微服务,这就是微服务的思想。
  3. 可以无缝迁移到云服务。
  4. 横向扩展能力强。一个微服务背后可能有多个副本在支持,副本的多少可以随负载的情况来调整,可伸缩性大大加强。
文章目录
  1. 1. Kubernetes 的调度流程
  2. 2. Pod、RC和Service的关系
  3. 3. Service 的 Cluster IP 和 NodePort
  4. 4. Kubernetes 集群的优势

欢迎来到Valleylord的博客!

本博的文章尽量原创。