Kubernetes(K8S)之学废了(六):Pod控制器详解

本文详细介绍了Kubernetes中的Pod控制器,包括Replicaset、Deployment、Horizontal Pod Autoscaler(HPA)、DaemonSet、Job和CronJob。重点讨论了Replicaset的扩缩容和镜像版本管理,Deployment的滚动更新和版本回退,以及HPA如何根据负载自动调整Pod数量。此外,还提及了DaemonSet在节点级服务中的应用和Job、CronJob的一次性及周期性任务执行。

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

Pod控制器详解


一、pod简介

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

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

什么是Pod控制器

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

kubernetes中,有很多类型的pod控制器,每种都有自己的适合的场景,常见的有下面这些:

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

二、 Replicaset(rs)

Replicaset的主要作用是保证一定数量的pod能够正常运行,它会持续监听这些pod的运行状态, 一旦pod发生 故障,就会重启或重建。同时它还支持对pod数量的扩縮容和版本镜像的升级
在这里插入图片描述

配置文件编写
在这里插入图片描述
pc-replicaset.yml

apiVersion: apps/v1 
kind: ReplicaSet 
metadata: 
	name: pc-replicaset 
	namespace: dev 
spec: 
	replicas: 3 
	selector: 
		matchlabels: 
			app: nginx-pod 
	template: 
		metadata: 
			labels: 
				app: nginx-pod 
		spec: 
			containers: 
				name: nginx 
				image: nginx:1.17.1
#创建rs
kubectl create -f pc-replicaset.yml
#查看rs
kubectl get rs pc-replicaset -n dev -o wide

在这里插入图片描述

扩缩容

方法一:edit
在这里插入图片描述
方法二:scale
在这里插入图片描述

镜像版本的升降级

方法一:edit
也是可以直接使用edit命令编辑,修改镜像包的版本号 后保存就可以了

方法二:set

kubectl set image rs pc-replicaset nginx=nginx:1.17.2 -n dev
# 注意第一个nginx是容器名

删除Replicaset

方法一:会先将replicas数量调整为0,然后删除pod,最后再删除Replicaset

kubectl delete rs pc-replicaset -n dev

方法二:首选

kubectl delete -f  pc-replicaset.yml

三、Deployment(Deploy)

为了更好的解决服务编排的问题,kubernetes在V1.2版本开始,引l入了Deployment控制器。值得一提的是, 这种控制器并不直接管理pod,而是通过管理Replicaset来间接管理Pod,即:Deployment管理ReplicaSet, Replicaset管理Pod。 所以DeploymentttReplicaset功能更加强大。
在这里插入图片描述
Deployment主要功能有下面几个:

• 支持Replicaset的所有功能
• 支持发布的停止、继续
• 支持版本滚动更新和版本回退

Deployment的资源清单文件:

在这里插入图片描述

编写yml文件,创建deployment

apiVersion: apps/v1 
kind: Deployment 
metadata: 
	name: pc-deployment 
	namespace: dev 
spec: 
	replicas: 3 
	selector: 
		matchlabels: 
			app: nginx-pod 
template: 
	metadata: 
	labels: 
		app: nginx-pod 
	spec: 
		containers: 
		  - name: nginx 
			image: nginx:1.17.1

创建deploymet,查看deploy

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值