kubernetes(3)pod控制器

本文深入探讨Kubernetes中Pod控制器的概念与作用,包括ReplicationController、ReplicaSet、Deployment、DaemonSet等,解析如何确保Pod副本状态与用户期望一致,实现应用的高可用与自动化管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

kubernetes(3)pod控制器

Pod和Pod控制器

Pod控制器资源通过持续性地监控集群中运行着的Pod资源对象来确保受其管控的资源严格符合用户期望的状态,例如资源副本的数量要精确符合期望等。通常,一个Pod控制器资源至少应该包含三个基本的组成部分:
标签选择器:匹配并关联Pod资源对象,并据此完成受其管控的Pod资源计数。
期望的副本数:期望在集群中精确运行着的Pod资源的对象数量。
Pod模板:用于新建Pod资源对象的Pod模板资源。

Pod控制器概述

Kubernetes的核心功能之一还在于要确保各资源对象的当前状态(status)以匹配用户期望的状态(spec),使当前状态不断地向期望状态“和解”(reconciliation)来完成容器应用管理。而这些则是kube-controller-manager的任务。
创建为具体的控制器对象之后,每个控制器均通过API Server提供的接口持续监控相关资源对象的当前状态,并在因故障、更新或其他原因导致系统状态发生变化时,尝试让资源的当前状态想期望状态迁移和逼近。
List-Watch是kubernetes实现的核心机制之一,在资源对象的状态发生变动时,由API Server负责写入etcd并通过水平触发(level-triggered)机制主动通知给相关的客户端程序以确保其不会错过任何一个事件。控制器通过API Server的watch接口实时监控目标资源对象的变动并执行和解操作,但并不会与其他控制器进行任何交互。

控制器的意义

自主式Pod对象由调度器调度到目标工作节点后即由相应节点上的kubelet负责监控其容器的存活状态,容器主进程崩溃后,kubelet能够自动重启相应的容器。但对出现非主进程崩溃类的容器错误却无从感知,这便依赖于pod资源对象定义的存活探测,以便kubelet能够探知到此类故障。但若pod被删除或者工作节点自身发生故障(工作节点上都有kubelet,kubelet不可用,因此其健康状态便无法保证),则便需要控制器来处理相应的容器重启和配置。

常见的工作负载控制器

Pod控制器由master的kube-controller-manager组件提供,常见的此类控制器有:

ReplicationController

ReplicaSet:代用户创建指定数量的pod副本数量,确保pod副本数量符合预期状态,
并且支持滚动式自动扩容和缩容功能

Deployment:工作在ReplicaSet之上,用于管理无状态应用,
目前来说最好的控制器。支持滚动更新和回滚功能,还提供声明式配置。

DaemonSet:用于确保集群中的每一个节点只运行特定的pod副本,
常用于实现系统级**后台任务。比如ELK服务

StatefulSet:管理有状态应用

Job:只要完成就立即退出,不需要重启或重建

CronJob:周期性任务控制,不需要持续后台运行

ReplicaSet和Deployment和DaemonSet

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值