中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

k8s入門之deployment怎么使用

發布時間:2023-03-07 11:59:36 來源:億速云 閱讀:126 作者:iii 欄目:開發技術

這篇“k8s入門之deployment怎么使用”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“k8s入門之deployment怎么使用”文章吧。

自愈能力

我們使用原來的方式創建一個pod

kubectl run mynginx --image=nginx

使用deployment方式創建一個pod

kubectl create deployment mytomcat --image=tomcat:8.5.68

當我們刪除使用kubectl run方式創建的pod時,發現一刪就真的刪掉了

[root@k8s-master ~]# kubectl get pod
NAME                                      READY   STATUS    RESTARTS   AGE
mynginx                                   1/1     Running   0          112s
mytomcat-6f5f895f4f-7jqlr                 1/1     Running   0          47s
nfs-client-provisioner-6c8cdddb58-kh655   1/1     Running   8          7d
[root@k8s-master ~]#
[root@k8s-master ~]#
[root@k8s-master ~]# kubectl delete pod mynginx
pod "mynginx" deleted
[root@k8s-master ~]# kubectl get pod
NAME                                      READY   STATUS    RESTARTS   AGE
mytomcat-6f5f895f4f-7jqlr                 1/1     Running   0          2m4s
nfs-client-provisioner-6c8cdddb58-kh655   1/1     Running   8          7d

當我們刪deployment創建的pod時,發現他又會自動幫我們創建一個

[root@k8s-master ~]# kubectl delete pod mytomcat-6f5f895f4f-7jqlr
pod "mytomcat-6f5f895f4f-7jqlr" deleted
[root@k8s-master ~]# kubectl get pod
NAME                                      READY   STATUS    RESTARTS   AGE
mytomcat-6f5f895f4f-s4zr7                 1/1     Running   0          15s
nfs-client-provisioner-6c8cdddb58-kh655   1/1     Running   8          7d

這個刪除可以當成是你node節點宕機的情況,我們把這個稱為k8s的自愈能力

這時候你又確實想刪除怎么辦,我們先試用下面命令查出deployment

[root@k8s-master ~]# kubectl get deploy
NAME                     READY   UP-TO-DATE   AVAILABLE   AGE
mytomcat                 1/1     1            1           13m
nfs-client-provisioner   1/1     1            1           7d

使用刪除deployment命令

[root@k8s-master ~]# kubectl delete deploy mytomcat deployment.apps "mytomcat" deleted

這時候再查看就沒有了

[root@k8s-master ~]# kubectl get pod
NAME                                      READY   STATUS    RESTARTS   AGE
nfs-client-provisioner-6c8cdddb58-kh655   1/1     Running   8          7d

多副本

假設現在業務量上來,我們需要同時針對一個服務部署多個實例,可以使用--replicas,比如我們使用下面3個命令創建3個副本

kubectl create deployment my-dep --image=nginx --replicas=3

可以看到創建了一個deployment,3/3指期望創建3個,3個可用

[root@k8s-master ~]# kubectl get deploy
NAME                     READY   UP-TO-DATE   AVAILABLE   AGE
my-dep                   3/3     3            3           2m4s
nfs-client-provisioner   1/1     1            1           7d

擴縮容

我們可以基于k8s實現手動擴縮容和動態擴縮容(根據系統負載) 手動擴縮容

使用kubectl scale命令

kubectl scale --replicas=5 deployment/my-dep

查看

[root@k8s-master ~]# kubectl get deploy
NAME                     READY   UP-TO-DATE   AVAILABLE   AGE
my-dep                   3/5     5            3           15m
nfs-client-provisioner   1/1     1            1           7d

縮容

[root@k8s-node2 ~]# kubectl scale --replicas=2 deployment/my-dep
deployment.apps/my-dep scaled

查看

[root@k8s-node2 ~]# kubectl get deploy
NAME                     READY   UP-TO-DATE   AVAILABLE   AGE
my-dep                   2/2     2            2           17m
nfs-client-provisioner   1/1     1            1           7d

除了使用kubectl scale,還可以使用下面方式

kubectl edit deploy my-dep

這時候會以yaml格式打開,我們編輯這個replicas的值

k8s入門之deployment怎么使用

保存后退出,這時候發現又變成了5份

[root@k8s-node2 ~]# kubectl get deploy
NAME                     READY   UP-TO-DATE   AVAILABLE   AGE
my-dep                   2/5     5            2           19m
nfs-client-provisioner   1/1     1            1           7d

故障轉移

我們看到目前的pod都在這個node1節點

[root@k8s-master ~]# kubectl get pod -owide
NAME                                      READY   STATUS    RESTARTS   AGE    IP              NODE        NOMINATED NODE   READINESS GATES
my-dep-5b7868d854-9ljtd                   1/1     Running   0          3m5s   10.244.36.105   k8s-node1   <none>           <none>
my-dep-5b7868d854-fh6bf                   1/1     Running   0          3m5s   10.244.36.96    k8s-node1   <none>           <none>
my-dep-5b7868d854-l74rf                   1/1     Running   0          3m5s   10.244.36.106   k8s-node1   <none>           <none>
my-dep-5b7868d854-r2dpl                   1/1     Running   0          22m    10.244.36.109   k8s-node1   <none>           <none>
my-dep-5b7868d854-xsqzp                   1/1     Running   0          22m    10.244.36.120   k8s-node1   <none>           <none>
nfs-client-provisioner-6c8cdddb58-kh655   1/1     Running   8          7d     10.244.36.110   k8s-node1   <none>           <none>

我們嘗試把node1節點關掉,看下他是否會自動轉移,重新拉起正常運行呢

這時候我們需要等待一段時間,因為node節點掛掉會有一個閾值k8s才能感知

[root@k8s-master ~]# kubectl get pod -owide
NAME                                      READY   STATUS        RESTARTS   AGE     IP               NODE        NOMINATED NODE   READINESS GATES
my-dep-5b7868d854-694hk                   1/1     Running       0          6m15s   10.244.169.191   k8s-node2   <none>           <none>
my-dep-5b7868d854-dq8h8                   1/1     Running       0          6m15s   10.244.169.190   k8s-node2   <none>           <none>
my-dep-5b7868d854-vmlrz                   1/1     Running       0          6m15s   10.244.169.151   k8s-node2   <none>           <none>
nfs-client-provisioner-6c8cdddb58-t7wmd   1/1     Running       0          22m     10.244.169.170   k8s-node2   <none>           <none>

滾動更新

我們看下之前部署的my-dep使用了nginx最新版的鏡像

k8s入門之deployment怎么使用

命令如下

kubectl set image deployment/my-dep nginx=nginx:1.16.1 --record
//查看滾動狀態
kubectl rollout status deployment/my-dep

可以使用-w看到有一個逐步替換的過程,最后使用了我們指定的1.16.1版本

k8s入門之deployment怎么使用

版本回退

加入我們發現我們滾動更新的版本有問題,就需要執行版本回退

#歷史記錄
kubectl rollout history deployment/my-dep
#查看某個歷史詳情
kubectl rollout history deployment/my-dep --revision=2
#回滾(回到上次)
kubectl rollout undo deployment/my-dep
#回滾(回到指定版本)
kubectl rollout undo deployment/my-dep --to-revision=2

其他

除了Deployment,k8s還有 StatefulSet 、DaemonSet 、Job 等 類型資源。我們都稱為 工作負載。有狀態應用使用 StatefulSet 部署,無狀態應用使用 Deployment 部署。

以上就是關于“k8s入門之deployment怎么使用”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泰州市| 长治县| 延边| 铅山县| 满洲里市| 革吉县| 贵南县| 安庆市| 德庆县| 巨野县| 黑河市| 涟水县| 清河县| 辛集市| 曲沃县| 永靖县| 桂林市| 通河县| 蓬莱市| 阿荣旗| 梅河口市| 弥勒县| 辽阳县| 山东| 饶河县| 班玛县| 巩留县| 长沙县| 姚安县| 剑阁县| 称多县| 交口县| 松原市| 平湖市| 漳平市| 洪湖市| 信宜市| 扶沟县| 郎溪县| 将乐县| 水富县|