自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

CKA考生注意:這些Deployment要點(diǎn)能助你一臂之力!

云計算 云原生
在Kubernetes中,Deployment是一種API對象,用于定義和管理Pod的部署方式。它提供了一種聲明性的方法,允許您描述應(yīng)用程序的期望狀態(tài),而不必關(guān)心具體的部署細(xì)節(jié)。

一、什么是Deployment

在Kubernetes中,Deployment是一種API對象,用于定義和管理Pod的部署方式。它提供了一種聲明性的方法,允許您描述應(yīng)用程序的期望狀態(tài),而不必關(guān)心具體的部署細(xì)節(jié)。Deployment的主要目標(biāo)是確保所定義的Pod副本數(shù)一直運(yùn)行在集群中,并支持滾動更新和回滾操作。以下是Deployment的關(guān)鍵特性和功能:

  • 聲明式配置: 使用Deployment,您可以通過YAML文件描述應(yīng)用程序的期望狀態(tài),包括Pod的數(shù)量、所使用的鏡像、端口等。
  • 自動化的滾動更新: 當(dāng)您需要更新應(yīng)用程序時,可以通過修改Deployment的配置來實(shí)現(xiàn)。Deployment將負(fù)責(zé)逐步更新Pod,確保在整個過程中保持應(yīng)用程序的可用性。
  • 副本集管理: Deployment使用副本集(ReplicaSet)來確保指定數(shù)量的Pod實(shí)例一直運(yùn)行。如果有Pod失敗或被刪除,Deployment會啟動新的Pod來替代它們。
  • 滾動回滾: 如果在更新中發(fā)現(xiàn)問題,您可以輕松地執(zhí)行回滾操作,將Deployment回退到之前的版本,從而恢復(fù)到穩(wěn)定狀態(tài)。
  • 自動修復(fù): Deployment會自動監(jiān)測Pod的運(yùn)行狀況,并在出現(xiàn)故障時嘗試自動修復(fù)。如果Pod失敗,Deployment將啟動新的Pod,以確保所需數(shù)量的副本一直在運(yùn)行。

二、Deployment基本使用

1.創(chuàng)建Deployment

創(chuàng)建Deployment資源有兩種方式,一種是書寫資源清單方式,一種是通過kubectl命令行的方式創(chuàng)建。下面的 yaml 文件定義了一個 Deployment,該 Deployment 將創(chuàng)建一個有 3 個 nginx Pod 副本的 ReplicaSet(副本集):

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.7.9
        ports:
        -containerPort:80

在這個例子中:

(1) 將創(chuàng)建一個名為 nginx-deployment 的 Deployment(部署),名稱由.metadata.name字段指定

(2) 該 Deployment 將創(chuàng)建 3 個 Pod 副本,副本數(shù)量由 .spec.replicas 字段指定

(3) .spec.selector 字段指定了 Deployment 如何找到由它管理的 Pod。此案例中,我們使用了 Pod template 中定義的一個標(biāo)簽(app: nginx)。對于極少數(shù)的情況,這個字段也可以定義更加復(fù)雜的規(guī)則

(4) .template 字段包含了如下字段:

  • .template.metadata.labels 字段,指定了 Pod 的標(biāo)簽(app: nginx)
  • .template.spec.containers[].image 字段,表明該 Pod 運(yùn)行一個容器 nginx:1.7.9
  • .template.spec.containers[].name 字段,表明該容器的名字是 nginx執(zhí)行命令以創(chuàng)建 Deployment執(zhí)行命令以創(chuàng)建 Deployment

執(zhí)行命令以創(chuàng)建 Deployment:

kubectl apply -f nginx-deployment.yaml

或者通過下面的命令創(chuàng)建:

kubectl create deploy  nginx-deployment --image=nginx:1.7.9 --port=80 --replicas=3

創(chuàng)建成功,可以通過下面的命令查詢:

controlplane $ kubectl get deploy
NAME               READY   UP-TO-DATE   AVAILABLE   AGE
nginx-deployment   3/3     3            3           10s
controlplane $ kubectl get pod
NAME                                READY   STATUS    RESTARTS   AGE
nginx-deployment-867765c857-24rdz   1/1     Running   0          54s
nginx-deployment-867765c857-6r86m   1/1     Running   0          54s
nginx-deployment-867765c857-xj7c5   1/1     Running   0          54s

2.Deploy擴(kuò)容

通過修改 Deployment 的 spec.replicas 字段來指定期望的副本數(shù)。例如,現(xiàn)在需要把上述的nginx-deployment的副本數(shù)修改5??梢酝ㄟ^kubect edit deploy nginx-deployment進(jìn)行修改。

把spec.replicas從原來的3修改成5。保存退出編輯。然后通過如下命令查看,nginx-deployment就成功的從3個副本數(shù)變成了5個。

controlplane $ kubectl get deployments.apps 
NAME               READY   UP-TO-DATE   AVAILABLE   AGE
nginx-deployment   5/5     5            5           5m17s
controlplane $ kubectl get pod
NAME                                READY   STATUS    RESTARTS   AGE
nginx-deployment-867765c857-24rdz   1/1     Running   0          6m13s
nginx-deployment-867765c857-6r86m   1/1     Running   0          6m13s
nginx-deployment-867765c857-vfr55   1/1     Running   0          62s
nginx-deployment-867765c857-vrj4f   1/1     Running   0          62s
nginx-deployment-867765c857-xj7c5   1/1     Running   0          6m13s

或者也可通過下面的命令進(jìn)行擴(kuò)容:

controlplane $ kubectl scale deployment nginx-deployment --replicas=5
deployment.apps/nginx-deployment scaled

3.滾動更新

(1) 滾動更新介紹

滾動更新是一種自動化程度較高的發(fā)布方式,用戶體驗(yàn)比較平滑,是目前成熟型技術(shù)組織所采用的主流發(fā)布方式,一次滾動發(fā)布一般由若干個發(fā)布批次組成,每批的數(shù)量一般是可以配置的(可以通過發(fā)布模板定義),例如第一批1臺,第二批10%,第三批50%,第四批100%。每個批次之間留觀察間隔,通過手工驗(yàn)證或監(jiān)控反饋確保沒有問題再發(fā)下一批次,所以總體上滾動式發(fā)布過程是比較緩慢的。

(2) 查看控制器策略

可以通過kubectl explain deploy.spec.strategy查看控制器策略。如下圖:

(3) deploy更新方式

  • 支持兩種更新,Recreate和RollingUpdate
  • Recreate是重建式更新,刪除一個更新一個

RollingUpdate 滾動更新,定義滾動更新的更新方式的,也就是pod能多幾個,少幾個,控制更新力度的。

①RollingUpdate

通過kubectl explain deploy.spec.strategy.RollingUpdate查看滾動更新幫助文檔。如下圖:

maxSurge(最大擴(kuò)展的值)和maxUnavailable(最大不可用)用來控制滾動更新的策略,取值范圍分為數(shù)值和百分比。

先來看百分比:

  • maxUnavailable: [0%, 100%] 向下取整,比如10個副本,5%的話==0.5個,但計算按照0個
  • maxSurge: [0%, 100%] 向上取整,比如10個副本,5%的話==0.5個,但計算按照1個

再來看數(shù)值:

  • maxUnavailable: [0, 副本數(shù)]
  • maxSurge: [0, 副本數(shù)]

②Recreate

把deploy更新策略變成Recreate:

apiVersion:apps/v1
kind:Deployment
metadata:
  name:nginx-deployment
  labels:
    app:nginx
spec:
  replicas:3
  strategy:
    type:Recreate
...省略...

通過以下命令更新:

kubectl apply -f deploy-demo1.yaml

#另一個窗口實(shí)時監(jiān)控
kubectl get pods -w

輸出的結(jié)果如下:

詳細(xì)deployment的使用可以參考如下:

  • 介紹 Deployment[1]
  • Deployments[2]

三、CKA真題

1.真題截圖

2.中文解析

切換 k8s 集群環(huán)境:kubectl config use-context k8s

Task:

將loadbalancer 的 deployment 管理的 Pod 的副本數(shù)擴(kuò)容成 6 個。

3.參考文檔

Deployments[3]

4.解題作答

切換集群環(huán)境:

kubectl config use-context k8s

檢查現(xiàn)有的Pod數(shù)量:

kubectl get deploy loadbalancer  -o wide

擴(kuò)容loadbalancer 的 deployment 管理的 Pod 的副本數(shù)擴(kuò)容成 6 個:

kubelct scale deploy loadbalancer  --replicas=6

檢查Pod的數(shù)量:

kubectl get pod

參考資料:

  • [1]介紹 Deployment: https://www.kuboard.cn/learning/k8s-intermediate/workload/wl-deployment/
  • [2]Deployments: https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/deployment/
  • [3]Deployments: https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/deployment/
責(zé)任編輯:趙寧寧 來源: 攻城獅成長日記
相關(guān)推薦

2015-09-15 11:15:48

甲骨文云計算一體機(jī)

2015-12-14 15:34:47

微信

2023-11-01 09:00:00

大語言模型人工智能

2016-08-19 16:11:15

Informatica云市場

2013-09-24 09:59:27

開源Oracle數(shù)據(jù)庫系統(tǒng)

2011-07-05 09:11:48

飛魚星飛視美視頻會議

2015-02-05 11:20:24

超融合架構(gòu)混合云企業(yè)存儲

2010-06-04 11:40:02

統(tǒng)一通信SBCS西門子

2011-06-20 13:49:43

快書包合力金橋

2010-01-19 14:39:42

2021-01-13 14:36:14

5G人工智能運(yùn)營商

2021-08-26 11:09:51

systemdLinux

2020-12-14 15:21:06

5G運(yùn)營商邊緣計算

2021-04-12 11:09:13

React開發(fā)

2010-10-28 10:26:56

求職

2009-03-31 16:41:38

網(wǎng)絡(luò)性能網(wǎng)絡(luò)監(jiān)控開源

2017-01-19 15:20:32

遠(yuǎn)程智能蒲公英

2024-12-10 07:15:00

2010-05-10 10:55:28

職場IT培訓(xùn)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號