CKA – 使用命令行创建Deployment / 回滚Deployment / 生成Yaml
Deployment可以使用命令行创建和生成yaml文件
使用案例 (使用命令行创建deployment)
1. 使用命令行创建deployment
【没有注明的话,只创建1个pod】
kubectl create deployment nginx-deployment --image=nginx:latest
【可以使用replicas注明你想创建的pod数量】
kubectl create deployment nginx-deployment --image=nginx:latest --replicas=3

2. 查看创建的replicaset
kubectl get replicaset
kubectl describe replicaset [你的replicaset名字]

3. 根据步骤2可以看到,container的名字是nginx
以下的命令行是更改deployment 当中的container 使用其他的image
kubectl set image deployment/nginx-deployment nginx=httpd:latest

4. 查看最新的replica是否使用最新的image

5. 从以下的replicaset可以看到,旧的rs是使用nginx, 而新的rs是使用httpd, 而且deployment目前是使用着httpd的rs

6. 我们可以试试看rollback deployment 用回nginx image的replicaset
【回滚到上一个版本】
kubectl rollout undo deployment/nginx-deployment

7. kubernetes默认会保存最新的10个replicaset版本,所以我们可以直接指定回滚的版本即可
【查看deployment的历史列表】
kubectl rollout history deployment/nginx-deployment
【指定deployment回滚的版本号】
kubectl rollout undo deployment/nginx-deployment --to-revision=2

8. 当然如果不想保存10个版本的话,也可以在yaml当中使用revisionHistoryLimit更改
apiVersion: apps/v1
kind: Deployment
metadata:
name: example-deployment
spec:
replicas: 3
# 以下字段控制保留历史 ReplicaSet 的数量
revisionHistoryLimit: 5 # 最多保留 5 个旧版本
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-container
image: my-image:latest
使用案例 (使用命令行生成deployment yaml文件)
【在terminal当中输出deployment yaml】
kubectl create deployment deployment/nginx-deployment --image=nginx --dry-run=client -o yaml
【把yaml保存到deployment.yaml当中】
kubectl create deployment deployment/nginx-deployment --image=nginx --dry-run=client -o yaml > deployment.yaml

Facebook评论