1.5.1. deployments

1.5.1.1. 创建depolyments

 1apiVersion: apps/v1
 2kind: Deployment
 3metadata:
 4  name: nginx-deployment
 5  labels: 
 6    app: nginx 
 7spec:
 8  replicas: 3 
 9  selector:
10    matchLabels: 
11      app: nginx 
12  template:
13    metadata:
14      labels:
15        app: nginx   
16    spec: 
17      containers:
18      - name: nginx 
19        image: nginx:1.14.2
20        ports: 
21        - containerPort:  80
kubectl apply -f deploy-nginx.yml

kubectl get pod
NAME                                READY   STATUS    RESTARTS   AGE
nginx-deployment-66b6c48dd5-bxwbl   1/1     Running   0          4m19s
nginx-deployment-66b6c48dd5-xppgn   1/1     Running   0          4m19s
nginx-deployment-66b6c48dd5-xv65j   1/1     Running   0          4m19s

NAME               READY   UP-TO-DATE   AVAILABLE   AGE
nginx-deployment   3/3     3            3           7m2s

主要字段说明:

  • NAME: 列出名称

  • READY: 显示的是就绪个数/期望个数

  • UP-TO-DATE: 已经更新的副本数量

  • AVAILABLE: 当前可供应用使用的副本数量

  • AGE: 应用程序运行的时间

1.5.1.2. 更新

修改文件的镜像版本,然后再次apply一次。

kubectl get deploy -w
NAME               READY   UP-TO-DATE   AVAILABLE   AGE
nginx-deployment   3/3     1            3           18m
nginx-deployment   4/3     1            4           19m
nginx-deployment   3/3     1            3           19m
nginx-deployment   3/3     2            3           19m
nginx-deployment   4/3     2            4           20m
nginx-deployment   4/3     3            4           20m
nginx-deployment   3/3     3            3           20m
nginx-deployment   4/3     3            4           20m
nginx-deployment   3/3     3            3           20m

1.5.1.3. 查看变更

kubectl rollout history deploy nginx-deployment                                1 ↵  247021:04:51
deployment.apps/nginx-deployment
REVISION  CHANGE-CAUSE
1         <none>
2         <none>
3         <none>

1.5.1.4. 获取上线进度

vim deploy_nginx.yml
kubectl apply -f deploy_nginx.yml
deployment.apps/nginx-deployment configured
kubectl rollout status deployment nginx-deployment
Waiting for deployment "nginx-deployment" rollout to finish: 1 out of 3 new replicas have been updated...
Waiting for deployment "nginx-deployment" rollout to finish: 1 out of 3 new replicas have been updated...
Waiting for deployment "nginx-deployment" rollout to finish: 1 out of 3 new replicas have been updated...
Waiting for deployment "nginx-deployment" rollout to finish: 2 out of 3 new replicas have been updated...
Waiting for deployment "nginx-deployment" rollout to finish: 2 out of 3 new replicas have been updated...
Waiting for deployment "nginx-deployment" rollout to finish: 2 out of 3 new replicas have been updated...
Waiting for deployment "nginx-deployment" rollout to finish: 1 old replicas are pending termination...
Waiting for deployment "nginx-deployment" rollout to finish: 1 old replicas are pending termination...
deployment "nginx-deployment" successfully rolled out

1.5.1.5. 升级失败的可能原因

  • 镜像拉取问题

  • 权限不足

  • 配额不足

  • 就绪探测错误

  • 限制范围问题

  • 运行时候配置错误