日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
如何為運(yùn)行中的Kubernetespod打補(bǔ)???

如何為運(yùn)行中的Kubernetes Pod打補(bǔ)丁?

譯文
作者:布加迪編譯 2020-04-10 08:00:08

云計(jì)算 運(yùn)行中的Kubernetes pod沒必要為了更改而拆除。使用patch選項(xiàng),為pod添加新容器實(shí)際上非常容易。

創(chuàng)新互聯(lián)是一家專業(yè)提供永吉企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站建設(shè)、網(wǎng)站制作、html5、小程序制作等業(yè)務(wù)。10年已為永吉眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。

【51CTO.com快譯】Kubernetes是市面上強(qiáng)大、靈活的容器集群管理器之一。有了這個(gè)工具,你幾乎可以做任何要做的事情。為已經(jīng)部署的pod打補(bǔ)丁就是Kubernetes提供的這樣一項(xiàng)功能。

比如說,假設(shè)你部署了一個(gè)含有Nginx容器的pod,但隨后又想把Regis和MySQL容器添加進(jìn)來。你無需把一切拆除下來并重新調(diào)整配置文件,只需運(yùn)行patch命令即可添加新容器。

下面介紹如何做到這一點(diǎn)。雖然該例子很簡單,但會演示patch選項(xiàng)如何與kubectl命令協(xié)同使用。

你需要什么?

完成這項(xiàng)工作只需要運(yùn)行中的Kubernetes集群。

想搞清楚如何部署集群,請查看這篇教程:《如何在Ubuntu服務(wù)器上部署Kubernetes集群?》。一旦啟動(dòng)并運(yùn)行了集群,我們可以繼續(xù)下一步了。

如何部署Kubernetes服務(wù)?

我們要做的第一件事是部署Kubernetes服務(wù)。使用以下命令創(chuàng)建一個(gè)新目錄:

  
 
 
 
  1. mkdir ~/patch-demo 

使用以下命令進(jìn)入到該新目錄:

  
 
 
 
  1. cd ~/patch-demo 

現(xiàn)在,為含有帶基本模板的Nginx和兩個(gè)副本的服務(wù)部署創(chuàng)建一個(gè)YAML文件。使用以下命令創(chuàng)建該文件:

  
 
 
 
  1. nano deployment-patch.yaml 

在該文件中,粘貼以下內(nèi)容:

  
 
 
 
  1. apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2 
  2. kind: Deployment 
  3. metadata: 
  4.   name: patch-demo 
  5. spec: 
  6.   replicas: 2 
  7.   selector: 
  8.     matchLabels: 
  9.       app: nginx 
  10.   template: 
  11.     metadata: 
  12.       labels: 
  13.         app: nginx 
  14.     spec: 
  15.       containers: 
  16.       - name: patch-demo-ctr 
  17.         image: nginx 
  18.       tolerations: 
  19.       - effect: NoSchedule 
  20.         key: dedicated 
  21.         value: test-team 

保存并關(guān)閉文件。使用以下命令部署該配置:

  
 
 
 
  1. kubectl apply -f deployment-patch.yaml 

現(xiàn)在你可以通過執(zhí)行以下命令看到該pod處于運(yùn)行中:

  
 
 
 
  1. kubectl get pods 

該patch-demo補(bǔ)丁將被列為運(yùn)行中(圖A)。

圖A. 我們的Kubernetes patch-demo pod已啟動(dòng)并在運(yùn)行中

如何為運(yùn)行中的服務(wù)打補(bǔ)丁?

現(xiàn)在,我們將創(chuàng)建一個(gè)戰(zhàn)略性合并補(bǔ)丁文件,該文件將為pod添加Redis容器。使用以下命令創(chuàng)建補(bǔ)丁文件:

  
 
 
 
  1. nano patch-file.yaml 

在該文件中,粘貼以下內(nèi)容:

  
 
 
 
  1. spec: 
  2.   template: 
  3.     spec: 
  4.       containers: 
  5.       - name: patch-demo-ctr-2 
  6.         image: redis 

保存并關(guān)閉文件。

為了給運(yùn)行中的服務(wù)打補(bǔ)丁,執(zhí)行以下命令:

  
 
 
 
  1. kubectl patch deployment patch-demo --patch "$(cat patch-file.yaml)" 

該實(shí)例中發(fā)生的是,部署將終止舊pod,創(chuàng)建新pod。

你可以繼續(xù)這一步。比如說,假設(shè)你想把MySQL添加進(jìn)來。用以下命令創(chuàng)建另一個(gè)補(bǔ)丁文件:

  
 
 
 
  1. nano patch-file-2.yaml 

在該文件中,粘貼以下內(nèi)容:

  
 
 
 
  1. spec: 
  2.   template: 
  3.     spec: 
  4.       containers: 
  5.       - name: patch-demo-ctr-3 
  6.         image: mysql 

保存并關(guān)閉文件,重新運(yùn)行patch命令,就像這樣:

  
 
 
 
  1. kubectl patch deployment patch-demo --patch "$(cat patch-file-2.yaml)" 

如果你執(zhí)行該命令:

  
 
 
 
  1. kubectl get deployment patch-demo --output yaml 

會看到Nginx、Redis和MySQL都在pod中(圖B)。

圖B. 我們的Kubernetes pod現(xiàn)包括所有三個(gè)映像

對于該補(bǔ)丁系統(tǒng),你無法做到的一件事就是為pod擴(kuò)增副本的數(shù)量。為此,你要使用scale命令,就像這樣:

  
 
 
 
  1. kubectl scale --replicas=4 deployment patch-demo 

或者你可以把它縮減至0來刪除pod,就像這樣:

  
 
 
 
  1. kubectl scale --replicas=0 deployment patch-demo 

這就是為運(yùn)行中的Kubernetes服務(wù)打補(bǔ)丁的一切。雖然這篇教程很基礎(chǔ),但你會發(fā)現(xiàn)有了patch命令,你幾乎可以做一切事情。

原文標(biāo)題:How to patch a running Kubernetes pod,作者:Jack Wallen

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】

 


當(dāng)前題目:如何為運(yùn)行中的Kubernetespod打補(bǔ)丁?
分享鏈接:http://www.5511xx.com/article/dhdhidi.html