k8s 控制器

k8s 控制器

1.1 控制器类型

无状态应用:

通用型:
  • Replication Controller: 简称RC 副本数和期望值之间的管理
  • Replica Set: 简称RS,与RC功能类似,但是多了集合式的标签选择器。也叫 副本控制器,用来确保容器应用的副本数始终保持在用户定义的副本数,即如果有容器异常退出,会自动创建新的pod来替代,而如果异常出来的容器也会自动回收
  • Deployment: 支持滚动更新和滚动回滚
特殊场景:
  • DaemonSet: 确保全部node(或者一些)上运行一个pod的副本,当有node加入集群时,也会为他们新增一个pod,当有node从集群移除时,这些pod也会被回收,删除DaemonSet会删除它创建的所有pod
  • HPA: 根据Pod资源使用情况,调整副本数量,依赖于RC,RS,Deployment之上
有状态应用:
  • StatefulSet: 为了应对有状态的服务,比如mysql的数据,pod消亡后重新建个mysql,数据就丢了
  • 自定义控制器 k8s开发来做的

2.1 基本概念

2.1.1 有状态和无状态服务

可以拿个例子理解,就像一个流水线上的工人,我把工人调走干了一件别的事,他回来对现在的工作一无所知干不了了,这叫有状态服务。如果他回来接着干,没有被影响,就是无状态的服务

2.1.2 网络模型

k8s的网络模型假定了所有pod都在一个可以直接连通的扁平化的网络空间中,这在GCE里面是现成的网络模型,k8s假设这个网络已经存在,而在私有云里搭建k8s集群,就不能假定这个网络已经存在了,我们需要自己实现这个网络假设,将不同节点上的Docker容器之间的互相访问互相先打通,然后运行k8s

posted @ 2022-04-27 13:54  liwenchao1995  阅读(130)  评论(0编辑  收藏  举报