Files
k8s-note/k8s知识笔记/二、k8s pod 控制器/3、deployment控制器.conf
2025-10-09 23:37:29 +08:00

78 lines
2.4 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

一、Deployment 控制器基本概念
Deployment 控制器是 Kubernetes 中用于管理应用程序部署和更新的高级控制器。
它提供了一种声明式的方法来定义和管理应用程序的生命周期, 包括创建、更新和回滚等操作。
Deployment 控制器(通过管理 ReplicaSet 来确保应用程序的期望状态与实际状态保持一致),从而实现高可用性和弹性伸缩。
二、声明式与命令式
# kubectl replace -f deployment.yaml
命令式创建deployment控制器,
不支持部分更新,会覆盖之前的配置
# kubectl apply -f deployment.yaml
声明式创建deployment控制器,
支持部分更新,会合并之前的配置, 只更新与新配置中不同的部分
apply 可以结合 -f or -k 参数从文件或者目录中读多个配置文件,并根据当前集群资源状态进行更新
# kubectl diff -f deployment.yaml
比较当前集群实际运行的资源清单对象与当前资源清单文件对象的差异
三、Deployment 控制器资源清单
# 资源清单例子
apiVersion: apps/v1 # 接口组/版本
kind: Deployment # 资源类型Deployment 控制器
metadata:
labels:
app: myapp-deployment
name: myapp-deployment
spec:
selector:
metadata:
app: myapp-deployment
template:
metadata:
labels:
app: myapp-deployment
spec:
containers:
- name: myapp-container
image: nginx:1.7.9
ports:
- containerPort: 80
# 上边的Deployment控制器清单没在spec中设置replicas默认为 1
三、Deployment常用命令
# kubectl create -f deployment.yaml
创建Deployment控制器
# kubectl create -f deployment.yaml --record
创建Deployment控制器, 并记录变更历史
# kubectl apply -f deployment.yaml
创建或更新Deployment控制器
# kubectl scale deployment myapp-deployment --replicas=3
扩缩容Deployment控制器
# kubectl autoscale deployment myapp-deployment --min=10 --max=15 --cpu-percent=80
基于CPU使用率自动扩缩容Deployment控制器
# kubectl rollout status deployment myapp-deployment
查看Deployment控制器的滚动更新状态
# kubectl rollout undo deployment myapp-deployment
回滚Deployment控制器到上一个版本
# kubectl set image deployment/myapp-deployment myapp-container=nginx/nginx:1.9.1
更新Deployment控制器的镜像