基本语法
|
1 |
kubectl set image deployment/<deployment名称> <容器名称>=<新镜像> [选项] |
或者使用完整资源格式:
|
1 |
kubectl set image deployment <deployment名称> <容器名称>=<新镜像> [选项] |
1. 更新单个容器的镜像
|
1 |
kubectl set image deployment/myapp nginx=nginx:1.21.0 |
2.更新多个容器的镜像
|
1 |
kubectl set image deployment/myapp nginx=nginx:1.21.0 redis=redis:7.0.0 |
3.使用特定命名空间
|
1 |
kubectl set image deployment/myapp nginx=nginx:1.21.0 -n mynamespace |
5. 从文件中更新(适用于多个Deployment)
|
1 |
kubectl set image -f deployment.yaml nginx=nginx:1.21.0 --local -o yaml |
6.使用标签选择器更新多个Deployment
|
1 |
kubectl set image deployment -l app=nginx nginx=nginx:1.23.4 |
7.记录命令以便后续查看
|
1 |
kubectl set image deployment/myapp nginx=nginx:1.21.0 --record |
8.查看更新状态
|
1 |
kubectl rollout status deployment/myapp |
9.回滚更新
|
1 |
kubectl rollout undo deployment/myapp |
实用选项
--record – 记录命令历史
|
1 |
kubectl set image deployment/myapp-deployment nginx=nginx:1.21.0 --record=true |
--dry-run – 试运行
|
1 |
kubectl set image deployment/myapp-deployment nginx=nginx:1.21.0 --dry-run=client |
输出格式
|
1 2 |
# 查看变更但不执行 kubectl set image deployment/myapp-deployment nginx=nginx:1.21.0 -o yaml --dry-run=client |
实际工作流程
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# 1. 查看当前 deployment 状态 kubectl get deployment myapp-deployment -o yaml | grep -A5 image: # 2. 更新镜像版本 kubectl set image deployment/myapp-deployment \ web=myregistry.com/myapp:v2.1.0 \ --record=true # 3. 监控更新进度 kubectl rollout status deployment/myapp-deployment # 4. 验证更新 kubectl describe deployment myapp-deployment | grep -A2 "Image" # 5. 如有问题,快速回滚 kubectl rollout undo deployment/myapp-deployment |
- 本文固定链接: https://www.yoyoask.com/?p=13990
- 转载请注明: shooter 于 SHOOTER 发表