k8s基础概念:pause容器和pod控制器类型

pause容器的作用

k8s基础概念:pause容器和pod控制器类型_第1张图片

  • pause容器:只要是有容器启动,pause就会启动。
  • pod内的其他容器会共用pause容器的网络栈和存储卷。
  • 容器是没有自己的IP地址的,都共用pause容器的。
  • 要保证pod内的其他容器的端口不能冲突,彼此都是通过localhost就可以访问。如果端口冲突就会启动不了或是无限重启。

pod控制器类型

k8s基础概念:pause容器和pod控制器类型_第2张图片

RC RS Deployment

k8s基础概念:pause容器和pod控制器类型_第3张图片

  • 官方建议用ReplicaSet替代ReplicationController。RS支持集合式的selector,可以根据label和version来对pod进行操作。
  • 建议使用Deployment来自动管理RS。Deployment支持滚动更新(灰度发布),比如要发布一个新的版本,可以先创建出新版本的pod,然后将旧版本的pod依次删除,从而实现滚动更新,RS不支持这种滚动更新操作。
  • Deployment不支持pod的创建,是通过RS来实现pod的创建的。比如:实现版本的滚动更新过程,会通过创建一个新的RS来创建出新版本的pod,同时将旧的RS管理的旧版本的pod依次删除。
    k8s基础概念:pause容器和pod控制器类型_第4张图片
    k8s基础概念:pause容器和pod控制器类型_第5张图片
  • 同时Deployment可以支持回滚。原因就是旧的RS并不会被删除,而是被停用,回滚时会将旧版本的RS重新启用,从而达到回滚的目的。
    k8s基础概念:pause容器和pod控制器类型_第6张图片

HPA

  • 动态扩容
    在这里插入图片描述
    k8s基础概念:pause容器和pod控制器类型_第7张图片
  • 根据CPU利用率来扩容,≤max定义的最大数量。
  • 一旦CPU利用率不足,就会删除pod,但最终剩余的pod数量不会低于min定义的数量。

StatefulSet

k8s基础概念:pause容器和pod控制器类型_第8张图片

  • mysql,mongodb都要实现数据的实时更新和存储,将其抽出集群再放回来就没法正常工作了,这些就是典型的有状态服务。
  • StatefulSet能够实现pod重新调度后还是能基于PVC访问到相同的持久化数据,并且数据还不会丢失。
  • 有序部署:比如先启动Nginx,再启动tomcat,最后启动MySQL就会报错,StatefulSet可以实现有序启动,mysql–>tomcat–>nginx

截止到目前,MySQL在k8s环境下还是不能跟传统环境下相比拟,还是有缺憾的,但是StatefulSet是一种很好的思想。

DaemonSet

k8s基础概念:pause容器和pod控制器类型_第9张图片

Job, CronJob

k8s基础概念:pause容器和pod控制器类型_第10张图片

你可能感兴趣的:(k8s)