Kubernetes详解(十九)——Kubernetes Pod控制器

今天继续给大家介绍Linux运维相关知识,本文主要内容是Kubernetes Pod控制器。

一、Pod和Pod控制器

Kubernetes集群的核心功能在于Pod提供的服务,以及确保Pod处于用户所期望的状态。Pod对象在创建后,Pod控制器就会持续监控Pod对象所处的状态,并且当Pod对象出现错误或者故障后,控制Pod对象重启。
通常,一个Pod资源控制器应该至少包含以下三个组成部分:
1、标签选择器
匹配并关联Pod对象,并据此完成其受管控的Pod资源计数。
2、期望的副本数
期望的Pod对象在Kubernetes集群中运行的个数。
3、Pod模板
用于创建Pod资源对象的模板。

二、Pod控制器的必要性

Pod容器在被调度到指定到Node节点上后,由kubelet否则监控其工作状态,当Pod中主容器进程崩溃后,kubelet能够自动重启相应的容器,但是对于非主进程崩溃的错误,kubelet却无法感知。对于这类错误的感知,依赖于Pod资源对象定义的存活性探测。但是如果Node节点本身发生故障,就需要Pod控制器来处理。

三、常见的工作负载控制器

Pod控制器由master节点的kube-controller-manager来提供,常见控制器有以下几类:
1、ReplicaSet
指定Pod副本数量,确保Pod的副本数量处于期望的状态,并且支持滚动式自动扩容和自动缩容功能。
2、Deployment
工作在ReplicaSet之上,用于管理无状态应用,支持滚动更新和回滚功能,还提供声明式配置。
3、DaemonSet
运行DaemonSet用于确保集群中的每个Node节点只运行特定的Pod副本,常用于实现系统级后台任务。
4、StatefulSet
用于管理有状态应用。
5、Job
只要完成任务就自动退出,不需要重启或者重建。
6、CronJob
周期性任务控制,不需要持续后台运行。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

你可能感兴趣的:(虚拟化运维,Pod,Pod控制器,Controller,Kubernetes,K8S)