共計 1049 個字符,預計需要花費 3 分鐘才能閱讀完成。
今天就跟大家聊聊有關如何理解 Deployment,可能很多人都不太了解,為了讓大家更加了解,丸趣 TV 小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
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 有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注丸趣 TV 行業資訊頻道,感謝大家的支持。