kubernetes 學習筆記3

來源:互聯網
上載者:User

標籤:失敗   blog   set   tor   學習   images   wait   升級   time   

kubernetes  自動發布和復原

deployment 引入的目的是為了更好的解決pod的編排問題。 
  • 建立一個deployment對象來產生對應的replica set 並完成 pod副本的建立過程
  • 檢查deployment的狀態來看部署動作是否完成(pod副本的數量是否達到預期的值)
  • 更新deployment以建立新的pod(比如鏡像升級)
  • 如果當前deployment不穩定,則復原至一個早先的deployment版本
建立deployment
$ kubectl create -f docs/user-guide/nginx-deployment.yaml --recorddeployment "nginx-deployment” created
查看正在建立或者正在更新的deplyment
$ kubectl get deploymentsNAME               DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGEnginx-deployment   3         0         0            0           1s
$ kubectl get deploymentsNAME               DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGEnginx-deployment   3         3         3            3           18s
查看replica set 和 pod
$ kubectl get rsNAME                          DESIRED   CURRENT   AGEnginx-deployment-2035384211   3         3         18s 
查看產生的各個pod的歸屬關係
$ kubectl get pods --show-labelsNAME                                READY     STATUS    RESTARTS   AGE       LABELSnginx-deployment-2035384211-7ci7o   1/1       Running   0          18s       app=nginx,pod-template-hash=2035384211nginx-deployment-2035384211-kzszj   1/1       Running   0          18s       app=nginx,pod-template-hash=2035384211nginx-deployment-2035384211-qqcnn   1/1       Running   0          18s       app=nginx,pod-template-hash=2035384211
查看deployment的狀態
$ kubectl rollout status deployment/nginx-deploymentdeployment "nginx-deployment" successfully rolled out
更新deployment 當deployment 裡面的pod模版更改了                         label更新了                         容器鏡像改變了,那麼會觸發deployment重新發布,如果deployment進行擴充,那麼不會觸發deployment 可以直接寫命令變更
kubectl set image deployment/nginx-deployment nginx=nginx:1.9.1deployment "nginx-deployment" image updated
也可以進行編輯變更
$ kubectl edit deployment/nginx-deploymentdeployment "nginx-deployment" edited
查看發布的狀態
$ kubectl rollout status deployment/nginx-deploymentWaiting for rollout to finish: 2 out of 3 new replicas have been updated...deployment "nginx-deployment" successfully rolled out
如果發布成功
$ kubectl get deploymentsNAME               DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGEnginx-deployment   3         3         3            3           36s
$ kubectl get rsNAME                          DESIRED   CURRENT   AGEnginx-deployment-1564180365   3         3         6snginx-deployment-2035384211   0         0         36s
$ kubectl get podsNAME                                READY     STATUS    RESTARTS   AGEnginx-deployment-1564180365-khku8   1/1       Running   0          14snginx-deployment-1564180365-nacti   1/1       Running   0          14snginx-deployment-1564180365-z9gth   1/1       Running   0          14s
更新pod,我們只需更新deployment裡面的templement當我們更新deployment時候,當有合適的pod產生的時候,k8s才會刪除老的pod,當老的pod被刪除足夠多時,才會繼續產生新的pod  deployment 復原查看deployment詳細資料
$ kubectl describe deployment
查看deployment的發布曆史
$ kubectl rollout history deployment/nginx-deployment
可以復原至任一個之前的版本
$ kubectl rollout undo deployment/nginx-deploymentdeployment "nginx-deployment" rolled back
$ kubectl rollout undo deployment/nginx-deployment --to-revision=2deployment "nginx-deployment" rolled back
擴充deployment

ou can scale a Deployment by using the following command:

$ kubectl scale deployment nginx-deployment --replicas 10deployment "nginx-deployment" scaled
$ kubectl autoscale deployment nginx-deployment --min=10 --max=15 --cpu-percent=80deployment "nginx-deployment" autoscaled
暫停或者回複一個deployment
$ kubectl set image deployment/nginx-deployment nginx=nginx:1.9.1; kubectl rollout pause deployment/nginx-deploymentdeployment "nginx-deployment" image updateddeployment "nginx-deployment" paused
deployment的狀態deployment為processing狀態的情況為:1.deployment正在建立rs2.deployment正在擴充或者刪除rs deploymen為什麼會失敗
  • Insufficient quota
  • Readiness probe failures
  • Image pull errors
  • Insufficient permissions
  • Limit ranges
  • Application runtime misconfiguration

kubernetes 學習筆記3

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.