本篇文章給大家分享的是有關(guān)如何理解Deployment的操作,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
創(chuàng)新互聯(lián)建站是一家以成都網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計、品牌設(shè)計、軟件運維、網(wǎng)站推廣、小程序App開發(fā)等移動開發(fā)為一體互聯(lián)網(wǎng)公司。已累計為成都高空作業(yè)車租賃等眾行業(yè)中小客戶提供優(yōu)質(zhì)的互聯(lián)網(wǎng)建站和軟件開發(fā)服務(wù)。
我們通過一些簡單的例子來演示Deployment
的創(chuàng)建、查看、更新、刪除等操作,以期快速地掌握Deployment
的用法。
首先我們先將以下配置保存到名為deployment.yaml
的文件中。
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
該份配置將創(chuàng)建一個名為nginx-deployment
的Deployment
資源對象,根據(jù)spec.replicas
中的信息可知,它期望有3個Pod副本。
接下來使用kubectl create
命令將該配置提交給kube-apiserver
,如下所示:
[root@ecs-d8b6 manifests]# kubectl create -f deployment.yaml deployment.apps/nginx-deployment created
根據(jù)命令行輸出內(nèi)容可知,名為nginx-deployment
的Deployment
已創(chuàng)建完成。
當(dāng)創(chuàng)建一個Deployment
資源對象時,Deployment
控制器不會直接創(chuàng)建Pod,而是通過創(chuàng)建ReplicaSet
來間接創(chuàng)建Pod。
查看新創(chuàng)建的Deployment
資源:
[root@ecs-d8b6 manifests]# kubectl get deployment NAME READY UP-TO-DATE AVAILABLE AGE nginx-deployment 3/3 3 3 90s
命令行輸出中各字段含義如下:
NAME:Deployment
資源名稱,同配置中的metadata.name
;
READY:<已處于Reday狀態(tài)的Pod數(shù)量>/<期望的Pod數(shù)量>;
UP-TO-DATE:處于最新狀態(tài)的Pod數(shù)量;
AVAILABLE:可用的Pod數(shù)量;
AGE:應(yīng)用運行時間,也是資源自創(chuàng)建至今經(jīng)過的時間。
此處READY
和AVAILABLE
有一些細(xì)微的區(qū)別,當(dāng)Pod
中指定的容器全部運行起來后,就可以認(rèn)定該Pod
為READY
,所以READY
含義更傾向于Running
,而AVAILABLE
要求會更嚴(yán)格一些,只有當(dāng)Pod
處于READY
狀態(tài)且持續(xù)一段時間后才可被認(rèn)定為AVAILABLE
,其含義更傾向于可用
的數(shù)量。
UP-TO-DATE
表示運行最新配置的Pod數(shù)量,當(dāng)修改Deployment
配置中Pod模版時,新版的Pod會被創(chuàng)建且短期內(nèi)會與舊版的Pod并存,UP-TO-DATE
正是表示已創(chuàng)建的新版Pod數(shù)量。
接著查看ReplicaSet:
[root@ecs-d8b6 manifests]# kubectl get replicaset NAME DESIRED CURRENT READY AGE nginx-deployment-6fd78f555b 3 3 3 104s
由Deployment
創(chuàng)建的ReplicaSet
名稱由Deployment
的名稱和一個隨機字符串組成。
接著查看最終生成的Pod:
[root@ecs-d8b6 manifests]# kubectl get pods NAME READY STATUS RESTARTS AGE nginx-deployment-6fd78f555b-clf9w 1/1 Running 0 110s nginx-deployment-6fd78f555b-vlvp6 1/1 Running 0 110s nginx-deployment-6fd78f555b-wjslg 1/1 Running 0 110s
這些Pod都是由ReplicaSet
自動創(chuàng)建出來的,其名稱由ReplicaSet
名稱和一個隨機字符串組成。
由于Deployment
控制器通過ReplicaSet
來創(chuàng)建并管理Pod,當(dāng)修改Deployment
配置中的spec.replicas
時,Deployment
控制器相應(yīng)地也會修改Replicaset
中spec.replicas
值,最終由Replicaset
控制器來調(diào)整Pod的副本數(shù),該部分功能我們已經(jīng)在介紹ReplicaSet
時演示過,此處不再演示。
我們在此演示一種Deployment
相較于ReplicaSet
更高階的功能,即應(yīng)用版本的升降級。當(dāng)前應(yīng)用使用的nginx鏡像版本為1.19.0
,我們希望把該版本降為1.18.0
。
通過以下命令,將spec.template.spec.containers.image
值由nginx:1.19.0
改為nginx:1.18.0
:
[root@ecs-d8b6 manifests]# kubectl edit deployments nginx-deployment
然后再次查看Deployment
、ReplicaSet
和Pod
:
[root@ecs-d8b6 manifests]# kubectl get deployment NAME READY UP-TO-DATE AVAILABLE AGE nginx-deployment 3/3 3 3 33m [root@ecs-d8b6 manifests]# kubectl get replicaset NAME DESIRED CURRENT READY AGE nginx-deployment-6fd78f555b 0 0 0 33m nginx-deployment-7df9bc6ff5 3 3 3 32s [root@ecs-d8b6 manifests]# kubectl get pods NAME READY STATUS RESTARTS AGE nginx-deployment-7df9bc6ff5-4rz8l 1/1 Running 0 40s nginx-deployment-7df9bc6ff5-tmxwl 1/1 Running 0 44s nginx-deployment-7df9bc6ff5-vmdzp 1/1 Running 0 42s
可以看到,之前的ReplicaSet
(nginx-deployment-6fd78f555b)副本數(shù)已被修改為0,新的ReplicaSet
(nginx-deployment-7df9bc6ff5)被創(chuàng)建了出來,進而創(chuàng)建了新的Pod。新的Pod中運行的容器鏡像版本就是我們修改后的容器鏡像版本,讀者可以自行驗證。
當(dāng)刪除Deployment
資源時,由Deployment
控制器創(chuàng)建的ReplicaSet
也會被刪除,因此由ReplicaSet
創(chuàng)建的Pod也會被刪除。
[root@ecs-d8b6 manifests]# kubectl delete deployment nginx-deployment deployment.apps "nginx-deployment" deleted [root@ecs-d8b6 manifests]# kubectl get replicaset No resources found in default namespace. [root@ecs-d8b6 manifests]# kubectl get pods No resources found in default namespace.
以上就是如何理解Deployment的操作,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
分享文章:如何理解Deployment的操作
文章路徑:http://aaarwkj.com/article44/igddee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、商城網(wǎng)站、標(biāo)簽優(yōu)化、手機網(wǎng)站建設(shè)、面包屑導(dǎo)航、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)