欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

k8s入門實戰(zhàn)deployment使用詳解

 更新時間:2023年03月07日 10:24:22   作者:key915  
這篇文章主要為大家介紹了k8s入門實戰(zhàn)deployment使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

介紹

假設(shè)現(xiàn)在我們寫了一個訂單服務(wù),由于訪問量很高 只部署一臺肯定不夠,我希望k8s幫我啟動好幾個pod, 我們用kubectl run可能得運行100次,

基于deployment,你可以告訴k8s副本數(shù)量,k8s就會自動幫你完成,其實不止是副本數(shù)量,一旦你的pod被deployment管理,deployment將會賦予它更多的能力,比如自愈,擴縮容,滾動更新等

自愈能力

我們使用原來的方式創(chuàng)建一個pod

kubectl run mynginx --image=nginx

使用deployment方式創(chuàng)建一個pod

kubectl create deployment mytomcat --image=tomcat:8.5.68

當我們刪除使用kubectl run方式創(chuàng)建的pod時,發(fā)現(xiàn)一刪就真的刪掉了

[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-kh555   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-kh555   1/1     Running   8          7d

當我們刪deployment創(chuàng)建的pod時,發(fā)現(xiàn)他又會自動幫我們創(chuàng)建一個

[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-kh555   1/1     Running   8          7d

這個刪除可以當成是你node節(jié)點宕機的情況,我們把這個稱為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-kh555   1/1     Running   8          7d

多副本

假設(shè)現(xiàn)在業(yè)務(wù)量上來,我們需要同時針對一個服務(wù)部署多個實例,可以使用--replicas,比如我們使用下面3個命令創(chuàng)建3個副本

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

可以看到創(chuàng)建了一個deployment,3/3指期望創(chuàng)建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實現(xiàn)手動擴縮容和動態(tài)擴縮容(根據(jù)系統(tǒng)負載) 手動擴縮容

使用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的值

保存后退出,這時候發(fā)現(xiàn)又變成了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

故障轉(zhuǎn)移

我們看到目前的pod都在這個node1節(jié)點

[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-fh5bf                   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-kh555   1/1     Running   8          7d     10.244.36.110   k8s-node1   <none>           <none>

我們嘗試把node1節(jié)點關(guān)掉,看下他是否會自動轉(zhuǎn)移,重新拉起正常運行呢

這時候我們需要等待一段時間,因為node節(jié)點掛掉會有一個閾值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最新版的鏡像

命令如下

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

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

版本回退

加入我們發(fā)現(xiàn)我們滾動更新的版本有問題,就需要執(zhí)行版本回退

#歷史記錄
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 等 類型資源。我們都稱為 工作負載。有狀態(tài)應(yīng)用使用 StatefulSet 部署,無狀態(tài)應(yīng)用使用 Deployment 部署

以上就是k8s入門實戰(zhàn)deployment使用詳解的詳細內(nèi)容,更多關(guān)于k8s deployment使用的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • k8s安裝CICD?devtron過程詳解

    k8s安裝CICD?devtron過程詳解

    這篇文章主要為大家介紹了k8s安裝CICD?devtron過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • K8S部署lnmp項目全過程

    K8S部署lnmp項目全過程

    這篇文章主要介紹了K8S部署lnmp項目全過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Kubernetes?Ingress實現(xiàn)細粒度IP訪問控制

    Kubernetes?Ingress實現(xiàn)細粒度IP訪問控制

    這篇文章主要為大家介紹了Kubernetes?Ingress實現(xiàn)細粒度IP訪問控制,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • Rancher部署配置開源Rainbond云原生應(yīng)用管理平臺

    Rancher部署配置開源Rainbond云原生應(yīng)用管理平臺

    這篇文章主要為大家介紹了Rancher部署配置開源Rainbond云原生應(yīng)用管理平臺,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-04-04
  • 一文講解如何獲取k8s容器里運行的jar包

    一文講解如何獲取k8s容器里運行的jar包

    K8S是Google開源的容器集群管理系統(tǒng),其設(shè)計目標是在主機集群之間提供一個能夠自動化部署、可拓展、應(yīng)用容器可運營的平臺,這篇文章主要給大家介紹了關(guān)于如何獲取k8s容器里運行的jar包的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • Google?Kubernetes?Engine?集群實戰(zhàn)詳解

    Google?Kubernetes?Engine?集群實戰(zhàn)詳解

    這篇文章主要為大家介紹了Google?Kubernetes?Engine?集群實戰(zhàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • 如何給k8s集群里的資源打標簽

    如何給k8s集群里的資源打標簽

    k8s集群,節(jié)點如果有多個角色,需要標記出來,可以給對應(yīng)的節(jié)點打上標簽,方便后續(xù)了解節(jié)點的功能,這篇文章主要介紹了如何給k8s集群里的資源打標簽,需要的朋友可以參考下
    2023-02-02
  • 云原生要素配置分離ConfigMap創(chuàng)建方式

    云原生要素配置分離ConfigMap創(chuàng)建方式

    這篇文章主要為大家介紹了云原生要素配置分離ConfigMap以及多種創(chuàng)建方式,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪
    2022-03-03
  • 云原生技術(shù)持久化存儲PV與PVC

    云原生技術(shù)持久化存儲PV與PVC

    這篇文章主要介紹了云原生技術(shù)持久化存儲PV與PVC
    2022-03-03
  • Rainbond調(diào)用Vue?React項目的后端接口

    Rainbond調(diào)用Vue?React項目的后端接口

    這篇文章主要為大家介紹了Rainbond調(diào)用Vue?React項目的后端接口問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-04-04

最新評論