天天看點

Kubernetes必備知識: deployment

所屬技術領域:

kubernetes

|名詞定義|

Deployment為pod和replica set(下一代replication controller)提供聲明式更新。隻需要在deployment中描述想要的目标狀态,deployment controller就會幫您将pod和replicasSet的實際狀态改變到您的目标狀态。也可以定義一個全新的deployment來建立replicasSet或者删除已有的deployment并建立一個新的來替換。

|發展曆程|

2019.11.15 Deployment是kubernetes v1.2引入的機率概念,引入的目的是為了更好地解決pod的編排問題。為此,deployment在内部使用了replicas set來實作目的,無論從deployment的作用與目的,它的YAML定義,還是從它的具體指令行操作來看,我們都可把它看作RC的一次更新,兩者相似度超過90%

|技術特點|

Deployment能幫我們做什麼事情

  1. 定義一組pod的期望數量,controller會維持pod數量與期望值一緻
  2. 配置pod釋出方式,controller會按照給定政策更新pod、保證更新過程中不可用的pod數量在限定範圍内
  3. 如果釋出有問題,支援‘一鍵’復原

     Deployment文法

新知識點:replicas:終态數量、template:pod模闆

舊知識點:labels:标簽、selector:選擇器、pod image:鏡像版本

檢視deployment狀态

$kubectl create –f nginx-deployment.yaml

$kubectl get deployment

檢視pod

$kubectl get pod

更新鏡像

$kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.9.1

快速復原

$kubectl rollout undo deployment/nginx-deployment

復原到deployment上一個版本

$kubectl rollout undo deployment.v1.apps/nginx-deployment --to-revision=2

復原到deployment到某一個版本,需要先查詢版本清單

$kubectl rollout history deployment.v1.apps/nginx-deployment

 DeploymentStatus

Kubernetes必備知識: deployment

 管理模式

Deployment隻負責管理不同版本的ReplicaSet,由ReplicaSet管理Pod副本數

每個ReplicaSet對應了deployment template的一個版本

一個ReplicaSet下的Pod都是相同的版本

 Deployment控制器

Kubernetes必備知識: deployment

 ReplicaSet控制器

Kubernetes必備知識: deployment

 擴容模拟

Deployment的副本數由ReplicaSet管理

修改deployment replicas之後,controller會把replicas同步到目前版本的ReplicaSet中,由ReplicaSet執行擴容/縮容

Kubernetes必備知識: deployment

 釋出模拟

Kubernetes必備知識: deployment

 復原模拟

復原的過程,其實是deployment controller 重新調整下屬ReplicaSet的replicas數量,最終使舊版本的ReplicaSetreplicas重新擴出所有pod、

Kubernetes必備知識: deployment

|相關詞|

Spec字段解析

MinRreadySseconds:判斷pod available的最小ready時間

RevisionHhistoryLlimit:保留曆史revision(ReplicaSet)的數量,預設值為10

Paused:辨別deployment隻做數量維持,不做新的釋出

ProgressDdeadlineSseconds:判斷deployment status condition為failed的最大時間

更新政策字段解析

MaxUunavailable:滾動過程中最多有多少個pod不可用

MmaxSsurge:滾動過程中最多存在多少個pod超過期望replicas數量

|資料來源|

名稱定義:

http://www.manongjc.com/article/101319.html#deployment%E6%8E%A7%E5%88%B6%E5%99%A8

發展曆程:

http://www.orchome.com/1337

繼續閱讀