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

Loading

Facebook评论