k8s之pod控制器概述

  • A+
所属分类:linux技术
摘要

在k8s中,按照pod的创建方式可以将其分为两类pod控制器是管理pod的中间层,使用了pod控制器之后,我们只需要告诉pod控制器,想要多少个什么样的pod就可以了,它就会创建出满足条件的pod并确保每一个pod处于用户期望的状态,如果pod在运行中出现故障,控制器会基于指定策略重启动或者重建pod

在k8s中,按照pod的创建方式可以将其分为两类

  • 自主式pod:k8s直接创建出来的pod,这种pod删除后就没有了,也不会重建
  • 控制器创建的pod:通过控制器创建的pod,这种pod删除了之后还会自动重建

什么是pod控制器

pod控制器是管理pod的中间层,使用了pod控制器之后,我们只需要告诉pod控制器,想要多少个什么样的pod就可以了,它就会创建出满足条件的pod并确保每一个pod处于用户期望的状态,如果pod在运行中出现故障,控制器会基于指定策略重启动或者重建pod

常见的pod控制器

  • 在k8s中,有很多类型的pod控制器,每种都有自己的适合场景,常见的有下面这些:
  • ReplicationController:比较原始的pod控制器,已经被废弃,由ReplicaSet替代
  • ReplicaSet:保证指定数量的pod运行,并支持pod数量变更,镜像版本变更
  • Deployment:通过控制ReplicaSet来控制pod,并支持滚动升级、版本回退
  • Horizontal Pod Autoscaler:可以根据集群负载自动调整Pod数量,实现削峰填谷
  • DaemonSet:在集群中的指定Node上都运行一个副本,一般用于守护进程类的任务
  • Job:它创建出来的pod只要完成任务就立即退出,用于执行一次性任务
  • Cronjob:它创建的pod会周期性地执行,用于执行周期性任务
  • StatefulSet:管理有状态应用