国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Kubernetes中deployment相關(guān)操作

這篇具有很好參考價(jià)值的文章主要介紹了Kubernetes中deployment相關(guān)操作。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

創(chuàng)建和刪除deployment

前面介紹的創(chuàng)建pod的方法創(chuàng)建出的pod是不穩(wěn)定的、不健壯的,掛掉之后不會(huì)自動(dòng)啟動(dòng),這樣就會(huì)導(dǎo)致運(yùn)行在容器里的應(yīng)用也無法正常運(yùn)行,使用deployment可以提高pod的健壯性。
deployment(簡(jiǎn)稱deploy)是一個(gè)控制器,只要告訴deployment需要幾個(gè)pod。deployment就會(huì)始終保持有幾個(gè)pod,如果其中一個(gè)pod掛掉了,則deployment會(huì)重新生成一個(gè)新的pod。
當(dāng)一個(gè)節(jié)點(diǎn)關(guān)機(jī)時(shí),在故障的幾分鐘內(nèi),master仍然會(huì)等待pod的恢復(fù),幾分鐘后,會(huì)執(zhí)行刪除pod操作,然后master會(huì)重新調(diào)度新pod替代,但是關(guān)機(jī)節(jié)點(diǎn)無法和master通信,所以關(guān)機(jī)節(jié)點(diǎn)上的pod處于“Terminating”狀態(tài),新pod會(huì)在另一節(jié)點(diǎn)運(yùn)行,關(guān)機(jī)節(jié)點(diǎn)重啟后,被標(biāo)記為刪除的pod會(huì)被刪除。

使用命令創(chuàng)建deployment
  • 創(chuàng)建deployment
kubectl create deployment nginx --image=nginx --replicas=2

kubectl edit deployment,kubernetes,kubernetes,docker,容器

  • 查看deployment
kubectl get deployments.apps

kubectl edit deployment,kubernetes,kubernetes,docker,容器

  • 修改鏡像下載策略以提高速度(也可以修改副本數(shù))
kubectl edit deployments.apps nginx

kubectl edit deployment,kubernetes,kubernetes,docker,容器

  • 修改副本數(shù)
kubectl scale deployment nginx --replicas=4

kubectl edit deployment,kubernetes,kubernetes,docker,容器

  • 刪除deployment
kubectl delete deployments.apps nginx

kubectl edit deployment,kubernetes,kubernetes,docker,容器

使用yaml文件創(chuàng)建deployment
  • 生成yaml文件
kubectl create deployment nginx --image=nginx --dry-run=client -o yaml > d1.yaml

kubectl edit deployment,kubernetes,kubernetes,docker,容器

  • 修改鏡像下載策略(也可以修改副本數(shù))
vi d1.yaml

kubectl edit deployment,kubernetes,kubernetes,docker,容器

  • 創(chuàng)建deployment
kubectl apply -f d1.yaml

kubectl edit deployment,kubernetes,kubernetes,docker,容器

  • 查看deployment
kubectl get deployments.apps -o wide
kubectl get pod -o wide

kubectl edit deployment,kubernetes,kubernetes,docker,容器

  • 刪除一個(gè)pod后,會(huì)自動(dòng)生成新的pod
kubectl delete pod nginx-7cf7d6dbc8-vz2r8
kubectl get pod -o wide

kubectl edit deployment,kubernetes,kubernetes,docker,容器

  • 刪除deployment
kubectl delete -f d1.yaml
# 或者
kubectl delete deploy nginx
kubectl get deployments.apps -o wide

kubectl edit deployment,kubernetes,kubernetes,docker,容器

水平自動(dòng)更新HPA

當(dāng)deployment的pod負(fù)載較大,需要更多的pod來分?jǐn)傌?fù)載,就需要管理員手動(dòng)去調(diào)整副本數(shù)??梢栽O(shè)置讓k8s根據(jù)pod負(fù)載情況自動(dòng)去調(diào)整deployment里pod的副本數(shù),這可以通過水平自動(dòng)更新HPA(Horizontal Pod Autoscalers)來實(shí)現(xiàn),通過檢查pod的cpu負(fù)載通知deployment讓其自動(dòng)更新pod數(shù)量。

  • 查看當(dāng)前是否有HPA設(shè)置
kubectl get hpa

kubectl edit deployment,kubernetes,kubernetes,docker,容器

  • 創(chuàng)建HPA并查看
kubectl create deployment nginx --image=nginx --replicas=3
kubectl autoscale deployment nginx --min=2 --max=10
kubectl get horizontalpodautoscalers.autoscaling

kubectl edit deployment,kubernetes,kubernetes,docker,容器

  • 修改副本數(shù),最小pod數(shù)任然為2
kubectl scale deployment nginx --replicas=1
kubectl get deployments.apps

kubectl edit deployment,kubernetes,kubernetes,docker,容器

  • 刪除HPA
kubectl delete horizontalpodautoscalers.autoscaling nginx

kubectl edit deployment,kubernetes,kubernetes,docker,容器

  • 測(cè)試HPA,修改deployment的配置,設(shè)置每個(gè)容器的資源限制
kubectl edit deployments.apps nginx

kubectl edit deployment,kubernetes,kubernetes,docker,容器

  • 創(chuàng)建deployment副本數(shù)為1個(gè)
kubectl scale deployment nginx --replicas=1
  • 創(chuàng)建新的HPA,使得每個(gè)pod的cpu數(shù)最大使用率不超過70%
 kubectl autoscale deployment nginx --min=1 --max=5 --cpu-percent=70
  • 為deployment創(chuàng)建一個(gè)服務(wù),類型為NodePort
kubectl expose deployment nginx --port=80 --target-port=80 --type=NodePort
kubectl get service

kubectl edit deployment,kubernetes,kubernetes,docker,容器

  • 在任一客戶端安裝ab測(cè)試對(duì)其進(jìn)行壓測(cè):
yum install httpd-tools –y
ab -t 600 -n 1000000 -c 1000 http://192.168.159.164:31313/index.html

kubectl edit deployment,kubernetes,kubernetes,docker,容器
kubectl edit deployment,kubernetes,kubernetes,docker,容器

隨著請(qǐng)求CPU負(fù)載增加pod自動(dòng)擴(kuò)展。負(fù)載降低后pod數(shù)不是立刻減少,要等到一段時(shí)間,默認(rèn)是5m,目的是防止pod數(shù)的抖動(dòng)。

deployment鏡像升級(jí)及回滾

deployment鏡像升級(jí)

升級(jí)鏡像可以通過以下三種方法:

  1. kubectl edit deploy
  2. 修改yaml文件,然后執(zhí)行kubectl apply -f yaml文件
  3. 命令行方式修改。命令行方式可以記錄鏡像變更信息,回滾方便。
  • 命令行升級(jí)deployment里鏡像的語法
# 語法
kubectl set image deploy/名字 容器名=鏡像 <--record>
# 舉例
kubectl create deployment nginx --image=nginx --replicas=2
kubectl set image deploy/nginx nginx=nginx:latest
kubectl set image deploy/nginx nginx=nginx:1.21
kubectl get deployments.apps -o wide
kubectl set image deploy/nginx nginx=nginx:1.20
kubectl get deployments.apps -o wide

kubectl edit deployment,kubernetes,kubernetes,docker,容器

  • 查看變更信息,此時(shí)并沒有記錄
kubectl rollout history deployment nginx

kubectl edit deployment,kubernetes,kubernetes,docker,容器

  • 添加選項(xiàng)--record,即可記錄鏡像變更信息,每次變更前都會(huì)有一個(gè)編號(hào)
kubectl set image deploy/nginx nginx=nginx:latest --record
kubectl set image deploy/nginx nginx=nginx:1.21 --record
kubectl rollout history deployment nginx

kubectl edit deployment,kubernetes,kubernetes,docker,容器

deployment鏡像回滾

如果變更后的鏡像有問題,我們可以把鏡像回滾到變更之前的版本,回滾的語法是:

# 語法
kubectl rollout undo deployment 名字 --to-revision=版本
# 例子
kubectl rollout undo deployment nginx --to-revision=5
kubectl get deployments.apps nginx -o wide

kubectl edit deployment,kubernetes,kubernetes,docker,容器

滾動(dòng)升級(jí)

對(duì)上述deployment,更換鏡像后,會(huì)將所有的pod刪除,然后重新使用新的鏡像創(chuàng)建pod,這個(gè)過程是一次性把所有pod刪除。
使用滾動(dòng)更新不是一次性全部更新,而是先更新幾個(gè)pod鏡像,更新完成后再更新幾個(gè),直至將所有pod全部更新完畢。
rollingUpgrade主要涉及兩個(gè)參數(shù):

  1. maxSurge:指定一次創(chuàng)建幾個(gè)pod,可以是百分比,也可以是具體數(shù)字
  2. maxUnavailable:用來指定最多刪除幾個(gè)pod,可以是百分比,也可以是具體數(shù)字
  • 使用命令修改配置,參數(shù)設(shè)置為1,刪除一個(gè)pod,創(chuàng)建一個(gè)pod
kubectl edit deployments.apps nginx

kubectl edit deployment,kubernetes,kubernetes,docker,容器

  • 修改副本數(shù),變更鏡像
kubectl scale deployment nginx --replicas=4
kubectl set image deploy/nginx nginx=nginx:1.21
kubectl set image deploy/nginx nginx=nginx:latest
kubectl get pod

kubectl edit deployment,kubernetes,kubernetes,docker,容器文章來源地址http://www.zghlxwxcb.cn/news/detail-776101.html

到了這里,關(guān)于Kubernetes中deployment相關(guān)操作的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【kubernetes組件合集】深入解析Kubernetes組件之一:kubectl

    【kubernetes組件合集】深入解析Kubernetes組件之一:kubectl

    簡(jiǎn)介:Kubernetes是當(dāng)今最受歡迎的容器編排和管理平臺(tái)之一,而kubectl是Kubernetes的命令行工具,它提供了與Kubernetes集群進(jìn)行交互的能力。本文將深入探討kubectl的功能和用法,幫助讀者全面了解這個(gè)重要的Kubernetes組件。 架構(gòu)圖來源: Cluster Architecture | Kubernetes? kubectl是Kubernete

    2024年04月28日
    瀏覽(20)
  • 【Kubernetes】kubectl 常用命令

    【Kubernetes】kubectl 常用命令

    kubectl 是 Kubernetes 提供的命令行管理工具。通過使用 kubectl ,可以管理和操作 Kubernetes。 命令 說明 create 通過文件名或標(biāo)準(zhǔn)輸入創(chuàng)建 Kubernetes 的資源 expose 將 Kubernetes 的資源展露為一個(gè)服務(wù) run 在集群中運(yùn)行一個(gè)特定的鏡像 set 修改對(duì)象的特定功能 explain 給資源添加文檔說明

    2024年02月03日
    瀏覽(37)
  • 【kubernetes系列】Kubernetes之RC、RS和Deployment

    【kubernetes系列】Kubernetes之RC、RS和Deployment

    在實(shí)際的工作中,我們使用Kubernetes 通常不會(huì)直接創(chuàng)建 Pod,而是通過 各種 Controller 來管理 Pod 的。Controller 中定義了 Pod 的部署特性,比如有幾個(gè)副本,在什么樣的 Node 上運(yùn)行等。為了滿足不同的業(yè)務(wù)場(chǎng)景,Kubernetes 提供了多種 Controller,包括 Deployment、Replication Controller、Repl

    2024年02月11日
    瀏覽(21)
  • kubernetes之deployment

    用于部署無狀態(tài)的服務(wù),這個(gè)最常用的控制器??梢怨芾矶鄠€(gè)副本的Pod實(shí)現(xiàn)無縫遷移、自動(dòng)擴(kuò)容縮容、自動(dòng)災(zāi)難恢復(fù)、一鍵回滾等功能。 雖然ReplicaSet可以確保在任何給定時(shí)間運(yùn)行的Pod副本達(dá)到指定的數(shù)量,但是Deployment(部署)是一個(gè)更高級(jí)的概念,它管理ReplicaSet并為Pod和

    2023年04月13日
    瀏覽(16)
  • 云原生Kubernetes:kubectl管理命令

    云原生Kubernetes:kubectl管理命令

    目錄 一、理論 1.K8S資源管理方法 2.kubectl 管理命令 3.項(xiàng)目的生命周期 4.Kubernetes 服務(wù)發(fā)布方式 5.金絲雀發(fā)布(Canary Release)部署 6.聲明式管理方法 二、實(shí)驗(yàn) ?1.kubectl 管理命令 2.項(xiàng)目的生命周期 3.金絲雀發(fā)布(Canary Release)部署 4.聲明式管理方法 三、問題 1.為何每個(gè)pod有兩個(gè)標(biāo)簽 四

    2024年02月09日
    瀏覽(17)
  • Kubernetes入門 三、命令行工具 kubectl

    kubectl 是 Kubernetes 集群的命令行工具,通過它能夠?qū)罕旧磉M(jìn)行管理,并能夠在集群上進(jìn)行容器化應(yīng)用的安裝和部署。 使用以下語法從終端窗口運(yùn)行 kubectl 命令: 參數(shù): command:指定要對(duì)資源執(zhí)行的操作,如:create、get 、delete 等。 type:指定資源的類型,如:deployment 、

    2024年02月13日
    瀏覽(22)
  • kubernetes調(diào)試?yán)鳌猭ubectl debug工具

    ??通常情況下,業(yè)務(wù)容器所使用的鏡像是非常精簡(jiǎn)的,而一旦業(yè)務(wù)容器出現(xiàn)問題,通過 kubectl exec 進(jìn)入到容器時(shí),我們會(huì)發(fā)現(xiàn)自己需要使用的工具都沒有,也無法通過 apt, apt-get, yum 等包管理工具下載需要的工具。 ??想要解決這個(gè)尷尬的窘境,有兩種手段,其一是提前把需

    2024年02月15日
    瀏覽(20)
  • Kubernetes 通過 Deployment 部署Jupyterlab

    Kubernetes 通過 Deployment 部署Jupyterlab

    在Kubernetes上部署jupyterlab服務(wù),鏈接Kubernetes集群內(nèi)的MySQL,實(shí)現(xiàn)簡(jiǎn)單的數(shù)據(jù)開發(fā)功能。 鏡像準(zhǔn)備:自定義Docker鏡像--Jupyterlab-CSDN博客 MySQL-Statefulset準(zhǔn)備:StatefulSet 簡(jiǎn)單實(shí)踐 Kubernetes-CSDN博客 關(guān)鍵配置: c.ServerApp.allow_remote_access = True c.ServerApp.ip = \\\'*\\\' c.ServerApp.open_browser = False ? c

    2024年02月08日
    瀏覽(17)
  • 【云原生】Kubernetes工作負(fù)載-Deployment

    一個(gè) Deployment 為 Pod 和 ReplicaSet 提供聲明式的更新能力 你負(fù)責(zé)描述 Deployment 中的目標(biāo)狀態(tài),而 Deployment 控制器(Controller) 以受控速率更改實(shí)際狀態(tài), 使其變?yōu)槠谕麪顟B(tài)。你可以定義 Deployment 以創(chuàng)建新的 ReplicaSet,或刪除現(xiàn)有 Deployment, 并通過新的 Deployment 收養(yǎng)其資源 下面是

    2024年02月16日
    瀏覽(19)
  • K8s(Kubernetes)學(xué)習(xí)(三):pod概念及相關(guān)操作

    K8s(Kubernetes)學(xué)習(xí)(三):pod概念及相關(guān)操作

    摘取官網(wǎng): https://kubernetes.io/zh-cn/docs/concepts/workloads/pods/#working-with-pods 1.1 簡(jiǎn)介 Pod 是可以在 Kubernetes 中 創(chuàng)建和管理的、最小的可部署的計(jì)算單元 。 Pod (就像在鯨魚莢或者豌豆莢中) 是一組(一個(gè)或多個(gè))容器 ; 這些容器共享存儲(chǔ)、網(wǎng)絡(luò)、以及怎樣運(yùn)行這些容器的聲明。 P

    2024年02月13日
    瀏覽(89)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包