<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      K8S | Deployment應用編排

      主打一手「Pod」管理。

      一、背景

      分布式系統的一大優勢:可以針對不同的服務制定不同的管理策略,比如發布、更新、下線,會根據服務自身的特點采取相應的措施;

      如果服務的流量小,通常采取單服務部署即可,并且可以限定其資源分配;

      如果服務的流量大并且是核心的能力,通常會采用集群的方式管理,資源分配上也會更加的傾斜,從而保證核心應用的穩定性;

      這種管理策略雖然很合理,但是從技術角度來看,其實現的復雜程度度也相對較高,在Kubenetes中可以使用Deployment組件簡化服務的編排難度;

      二、Deployment組件

      1、簡介

      通過Deployment控制器,可以對應用進行快速的編排,比如聲明Pod的發布方式,更新和回滾策略,維持Pod副本數量;

      實際上控制器并不會直接管理Pod,而是通過管理ReplicaSet間接實現Pod管理,ReplicaSet是在后臺管理的Pod,在應用部署后可以查看相關的配置文件來驗證該流程;

      2、語法說明

      作為K8S的工作負載(運行的應用程序)資源,Deployment為Pod和ReplicaSet提供聲明式的管理能力;

      這里只是一個簡單的Deployment的yaml文件,作為生產環境中最常用的部署方式,更多的細節可以參考K8S文檔;

      三、基礎用例

      1、創建操作

      Deployment資源腳本,容器使用【auto-serve:latest】鏡像文件;

      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: serve-deployment
        labels: 
          app: auto-serve
      spec:
        replicas: 2
        selector:
          matchLabels:
            app: auto-serve
        template:
          metadata:
            labels:
              app: auto-serve
          spec:
            containers:
              - name: auto-serve
                image: auto-serve:latest
                imagePullPolicy: Never
                ports:
                  - containerPort: 8082
      

      執行創建,然后在命令行或者控制臺界面查看相關結果;

      kubectl apply -f serve-deployment.yaml
      

      2、查看信息

      查看指定【serve-deployment】信息;

      kubectl get deployment/serve-deployment
      
      NAME               READY   UP-TO-DATE   AVAILABLE   AGE
      serve-deployment   2/2     2            2           5s
      

      查看指定【serve-deployment】描述信息;

      kubectl describe deployment/serve-deployment
      
      Name:                   serve-deployment
      Labels:                 app=auto-serve
      Annotations:            deployment.kubernetes.io/revision: 1
      Selector:               app=auto-serve
      Replicas:               2 desired | 2 updated | 2 total | 2 available | 0 unavailable
      StrategyType:           RollingUpdate
      
      Pod Template:
        Labels:  app=auto-serve
        Containers:
         auto-serve:
          Image:        auto-serve:latest
          Port:         8082/TCP
          Host Port:    0/TCP
      
      Conditions:
        Type           Status  Reason
        ----           ------  ------
        Available      True    MinimumReplicasAvailable
        Progressing    True    NewReplicaSetAvailable
      
      Events:
        Type    Reason             Age   From                   Message
        ----    ------             ----  ----                   -------
        Normal  ScalingReplicaSet  10m   deployment-controller  Scaled up replica set serve-deployment-f6f6c5bbd to 2
      

      可以在控制臺界面查看【ReplicaSet】,或者直接從腳本文件查看相關信息;

      查看上線狀態

      kubectl rollout status deployment/serve-deployment
      
      deployment "serve-deployment" successfully rolled out
      

      查看【ReplicaSet】

      kubectl get rs
      
      NAME                         DESIRED   CURRENT   READY   AGE
      serve-deployment-f6f6c5bbd   2         2         2       12m
      

      查看【Pod】

      kubectl get pods
      
      NAME                               READY   STATUS    RESTARTS   AGE
      serve-deployment-f6f6c5bbd-d8k6v   1/1     Running   0          15m
      serve-deployment-f6f6c5bbd-hs6h5   1/1     Running   0          15m
      

      3、更新操作

      提供【auto-serve】多個版本的鏡像文件,用來模擬最常見的鏡像更新動作;

      更新為【1.1.1】鏡像版本

      kubectl set image deployment/serve-deployment auto-serve=auto-serve:1.1.1
      

      查看描述信息

      kubectl describe deployment/serve-deployment
      
      Name:                   serve-deployment
      Labels:                 app=auto-serve
      Annotations:           【deployment.kubernetes.io/revision: 2】對比此處和初次發布的描述
      Selector:               app=auto-serve
      Replicas:               2 desired | 2 updated | 2 total | 2 available | 0 unavailable
      RollingUpdateStrategy:  25% max unavailable, 25% max surge
      
      Pod Template:
        Labels:  app=auto-serve
        Containers:
         auto-serve:
          Image:        auto-serve:1.1.1 【鏡像已更新】
          Port:         8082/TCP
      
      Conditions:
        Type           Status  Reason
        ----           ------  ------
        Available      True    MinimumReplicasAvailable
        Progressing    True    NewReplicaSetAvailable
      
      NewReplicaSet:   serve-deployment-6d9cd7f8c6 (2/2 replicas created)
      

      4、刪除操作

      kubectl delete -f serve-deployment.yaml
      

      四、進階用例

      1、回滾操作

      再次執行鏡像更新,這樣【serve-deployment】會有3個版本

      kubectl set image deployment/serve-deployment auto-serve=auto-serve:2.2.2
      

      查看歷史版本

      kubectl rollout history deployment/serve-deployment
      
      deployment.apps/serve-deployment 
      REVISION  CHANGE-CAUSE
      1         <none>
      2         <none>
      3         <none>
      

      查看歷史版本2信息,【auto-serve】對應的鏡像版本是【1.1.1】

      kubectl rollout history deployment/serve-deployment --revision=2
      
      deployment.apps/serve-deployment with revision #2
      Pod Template:
        Labels:	app=auto-serve
      	pod-template-hash=6d9cd7f8c6
        Containers:
         auto-serve:
          Image:	auto-serve:1.1.1
          Port:	8082/TCP
          Host Port:	0/TCP
          Environment:	<none>
          Mounts:	<none>
        Volumes:	<none>
      

      回滾到上個版本,即鏡像【auto-serve:1.1.1】

      kubectl rollout undo deployment/serve-deployment
      
      deployment.apps/serve-deployment rolled back
      

      回滾到指定版本,即鏡像【auto-serve:latest】

      kubectl rollout undo deployment/serve-deployment --to-revision=1
      

      2、伸縮操作

      伸縮命令

      kubectl scale deployment/serve-deployment --replicas=3
      
      deployment.apps/serve-deployment scaled
      

      查看【ReplicaSet】信息

      kubectl get rs
      
      NAME                          DESIRED   CURRENT   READY   AGE
      serve-deployment-6b47bf4db7   0         0         0       7m3s
      serve-deployment-6d9cd7f8c6   0         0         0       7m17s
      serve-deployment-f6f6c5bbd    3         3         3       8m10s
      

      查看【Pod】信息

      kubectl get pods
      
      NAME                               READY   STATUS    RESTARTS   AGE
      serve-deployment-f6f6c5bbd-4rvhw   1/1     Running   0          4m13s
      serve-deployment-f6f6c5bbd-bwg7s   1/1     Running   0          4m15s
      serve-deployment-f6f6c5bbd-mv9wt   1/1     Running   0          2m21s
      

      3、暫停與恢復

      暫停發布

      kubectl rollout pause deployment/serve-deployment
      
      deployment.apps/serve-deployment paused
      

      查看信息描述

      kubectl describe deployment/serve-deployment
      
      Conditions:
        Type           Status   Reason
        ----           ------   ------
        Available      True     MinimumReplicasAvailable
        Progressing    Unknown  DeploymentPaused  【注意此處的狀態】
      

      執行更新

      kubectl set image deployment/serve-deployment auto-serve=auto-serve:1.1.1
      

      查看Pod,未觸發上線

      恢復發布,會自動執行上面的更新動作

      kubectl rollout resume deployment/serve-deployment
      

      查看【ReplicaSet】信息

      kubectl get rs -o wide
      
      NAME                          DESIRED   CURRENT   READY   AGE   CONTAINERS   IMAGES              
      serve-deployment-6b47bf4db7   0         0         0       14m   auto-serve   auto-serve:2.2.2    
      serve-deployment-6d9cd7f8c6   3         3         3       15m   auto-serve   auto-serve:1.1.1    
      serve-deployment-f6f6c5bbd    0         0         0       16m   auto-serve   auto-serve:latest   
      

      查看【Pod】信息

      kubectl get pods -o wide
      
      NAME                                READY   STATUS    RESTARTS   AGE     IP           NODE           
      serve-deployment-6d9cd7f8c6-m66cv   1/1     Running   0          2m9s    10.1.0.125   docker-desktop 
      serve-deployment-6d9cd7f8c6-sk2qv   1/1     Running   0          2m11s   10.1.0.124   docker-desktop 
      serve-deployment-6d9cd7f8c6-zj6p2   1/1     Running   0          2m8s    10.1.0.126   docker-desktop 
      

      五、狀態描述

      Deployment有三個核心狀態來描述其生命周期的變化:「Progressing」進行中,「Complete」已完成,「Failed」失敗;

      【Progressing】

      Deployment處在部署或者伸縮過程中;

      當Deployment執行這些任務期間:創建新的ReplicaSet;正在為其最新的ReplicaSet擴容;正在為其舊有的ReplicaSets縮容;新的Pod已經就緒或者可用;

      【Complete】

      具有以下特征時會被標記為已完成狀態;

      Deployment關聯的所有副本都已更新到指定的最新版本,意味著此前請求的所有更新都已完成;Deployment關聯的所有副本都可用;未運行Deployment的舊副本;

      【Failed】

      Deployment可能會在嘗試部署其最新的ReplicaSet受挫,一直處于未完成狀態;

      造成這種情況的因素很多,可能是:配額不足,就緒探測失敗,鏡像拉取錯誤,權限不足,限制范圍問題,應用程序運行時的配置錯誤;

      六、參考源碼

      文檔倉庫:
      https://gitee.com/cicadasmile/butte-java-note
      
      腳本倉庫:
      https://gitee.com/cicadasmile/butte-auto-parent
      
      posted @ 2023-07-25 08:16  七號樓  閱讀(658)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产丰满乱子伦无码专区| 日本熟妇色xxxxx| 亚洲男人的天堂av手机在线观看| 激情综合网激情综合网五月| 亚洲v欧美v国产v在线观看| 美女爽到高潮嗷嗷嗷叫免费网站| 国内自拍偷拍福利视频看看| 99久久99这里只有免费费精品 | 免费可以在线看a∨网站| 被喂春药蹂躏的欲仙欲死视频| 西西人体大胆444WWW| 日本一区二区精品色超碰| 欧美丰满熟妇xxxx性| 亚洲精品理论电影在线观看 | 商河县| 日韩卡一卡2卡3卡4卡| 巨爆乳中文字幕爆乳区| 日韩成人无码影院| 国产精品亚洲А∨怡红院| 人妻丰满熟妇无码区免费 | 国产黄色一区二区三区四区| 久久亚洲日本激情战少妇| CAOPORN免费视频国产| 一本一道av中文字幕无码| 国产成人av免费观看| 久久精品国产亚洲精品| 国产AV福利第一精品| 亚洲中文字幕在线观看| 精品国精品自拍自在线| 精品亚洲精品日韩精品| 国产精品免费久久久免费| 国产成人精品久久综合| 三上悠亚精品一区二区久久| av亚洲在线一区二区| 99久热在线精品视频| 国产亚洲欧洲AⅤ综合一区| 日本一区二区三区18岁| 国产人妻精品一区二区三区不卡| 日本免费一区二区三区日本| 国产亚洲无线码一区二区| 无码人妻精品一区二区在线视频|