您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關如何理解Deployment,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
Deployment
是繼ReplicationController
和ReplicaSet
之后推出的更高級的控制器,它通過Deployment
對象來聲明Pod
的期望狀態,這些狀態包括Pod
的副本數和Pod
的模版等,運行于kube-controller-manager
組件中的Deployment Controller
(Deployment控制器)時刻監控Deployment
對象的變化,并根據Deployment
對象中的配置來調整Pod
,最終保證Pod
以期望的形態在運行。
我們先看一個簡單的Deployment
配置:
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.19.0
metadata.name
:指定Deployment的名稱;
spec.replicas
:指定期望的副本數;
spec.selector
:指定查找Pod的標簽;
spec.template
:指定Pod的模板,當Deployment
控制器需要創建Pod時會根據此模版創建Pod。
上面這份Deployment
配置和之前介紹的ReplicaSet
非常類似,主要也是聲明Pod的副本數以及Pod的模版,將該配置提交給kube-apiserver
后,運行于kube-controller-manager
組件中的Deployment Controller
也會創建3個Pod副本,這個行為跟ReplicaSet
還是一樣,但Deployment
更強大的功能體現在配置發生變化時的行為,比如修改配置中Pod模板中的鏡像版本,Deployment Controller
會自動地創建新的Pod來運行新鏡像并逐步刪除舊的Pod,從而達到自動升級的目的。
看完上述內容,你們對如何理解Deployment有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。