摘要:使應用程序的安裝和升級更加容易。本文將討論的一個極妙的技巧如何使用,簡單快速地更新那些使用的應用程序。我們假設它是用于運行應用程序的。更改此配置文件后,不要忘了還需要相應地更新,不然的話,那些使用此的應用程序將不會使用更新后的內容。
Helm讓Kubernetes應用程序的管理工作變得毫不費力。Helm Charts使Kubernetes應用程序的安裝和升級更加容易。本文將討論Helm的一個極妙的技巧:如何使用Helm,簡單快速地更新那些使用ConfigMap的應用程序。
更新部署
上圖的示例就是一個部署的配置文件。我們假設它是用于運行應用程序的。您可以在spec.template部分下指定pod模板。現(xiàn)在,如果您想更新應用程序,則必須從此spec.template部分更改內容。這意味著,容器鏡像更改之后,部署將更新,但spec.replicas不會發(fā)生任何改變。
更新使用ConfigMap的部署
某些應用需要某些特定的配置文件和值,我們不建議將這些配置文件或配置值打包進容器鏡像中,因為如果這么做的話,那每次配置文件發(fā)生更改時,都必須重新創(chuàng)建容器鏡像。而Kubernetes提供了一種管理配置文件/值的好方法——使用ConfigMap資源。
有兩種方法可以將ConfigMap數(shù)據(jù)暴露給一個pod:
Env vars
Volume mounts
下面我們將重點關注暴露ConfigMap的卷掛載方式。
我創(chuàng)建了一個非常簡單的chart作為例子來討論這個問題。在這個chart中,我有一個如下的ConfigMap的配置文件:
如您所見,ConfigMap的名稱是nginx-cm,一個名為default.conf的文件正在讀取其數(shù)據(jù)。這個default.conf是一個nginx配置文件。
現(xiàn)在我想為我的應用程序使用這個ConfigMap nginx-cm。所以我將通過我的應用程序的部署的配置文件中的Volume Mounts來暴露它。
如上面的示例,我們需要在【volumes】部分下添加ConfigMap,并為其指定一個唯一的名稱(config-volume,如示例中所示)。然后,我們需要將這個卷添加到【containers】部分下的卷掛載中。volumeMounts.mountPath字段是容器中可供容器使用的配置文件的確切位置。
因此,使用這些配置文件,我們就可以運行使用ConfigMap提供的nginx配置文件內容的應用程序了。
下面我們需要更改nginx配置文件。更改此配置文件后,不要忘了還需要相應地更新ConfigMap,不然的話,那些使用此ConfigMap的應用程序將不會使用更新后的內容。
我們當然也可以使用kubectl update命令來更新ConfigMap。按理說,同樣的,接下來我們應該更新部署。那么,kubectl update命令可以用來更新部署嗎?
在我嘗試這么做的時候,我收到了下面這條消息:
這是因為即使在更新ConfigMap資源之后,部署的spec.template部分也沒有更改。即使ConfigMap的數(shù)據(jù)部分發(fā)生了變化,但這并沒有引起部署spec.template的任何變化。對此的一種解決方法,是刪除這一部署所管理的所有pod,之后部署就會創(chuàng)建新的pod,這些新pod使用的就是更新后的configMap了。
但我不太喜歡這種方法,因為你必須手動刪除所有的pod,正因為如此我才開始尋找更好的解決方案,也就是本文所說的Helm的這個小技巧。
https://github.com/kubernetes...
正如你在注釋中看到的那樣, 你可以提供configmap文件的路徑,并將其傳遞給sha256 sum函數(shù)。這樣一來,每次configmap文件發(fā)生更改時,注釋部分也會得到相應的更新,進而更新部署的spec.template部分。我發(fā)現(xiàn)這一招非常妙,因為如此一來,你就可以經(jīng)常更改您的配置文件內容了。因為這個訣竅,Helm能夠確保你的應用程序將一直及時地反映這些變化。
我已經(jīng)做好了一個Helm chart放在GitHub上,你可以自行下載使用,體驗一下我在本文中分享的這個竅門~ 相信你一定也會發(fā)現(xiàn)它對你的應用程序非常有用:
https://github.com/mrajashree...
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/32715.html
摘要:更新商店信息查詢應用安裝商店應用安裝商店應用執(zhí)行了安裝商店應用的命令后,我們看到了系統(tǒng)返回給我們了安裝的詳細信息。安裝應用安裝商店應用按照前文helm工具已經(jīng)安裝完成,接下來通過helm客戶端在kubernetes集群中創(chuàng)建一個應用,執(zhí)行安裝前最好先進行應用商店的同步,以獲得最新的應用信息。#更新商店信息 helm repo update #查詢tomcat應用 helm search to...
摘要:生態(tài)周報內容主要包含我所接觸到的生態(tài)相關的每周值得推薦的一些信息。本次的發(fā)布周期一如往常,本月底增強功能凍結,下月底代碼凍結,月初完善文檔,計劃在月中發(fā)布版本。發(fā)布本周發(fā)布了版本,近期的開發(fā)還是比較活躍的。 「K8S 生態(tài)周報」內容主要包含我所接觸到的 K8S 生態(tài)相關的每周值得推薦的一些信息。歡迎訂閱知乎專欄「k8s生態(tài)」。 Kubernetes v1.16 發(fā)布周期開始 隨著前段時...
摘要:宋體自年被開源以來,很快便成為了容器編排領域的標準。宋體年月,樂心醫(yī)療的第一個生產用集群正式上線。所以于年推出后,樂心醫(yī)療的運維團隊在開會討論之后一致決定盡快遷移到。Kubernetes 自 2014 年被 Google 開源以來,很快便成為了容器編排領域的標準。因其支持自動化部署、大規(guī)模可伸縮和容器化管理等天然優(yōu)勢,已經(jīng)被廣泛接納。但由于 Kubernetes 本身的復雜性,也讓很多企業(yè)的...
摘要:的工作就是為作出的修改查看我們的配置文件,并且運行讀取配置文件的新版本回調函數(shù),使用設置新的。它的目標是使任意額外的成為一個單獨更新的,這樣我們只要執(zhí)行一次回調函數(shù)。 Kubernetes 1.2版本添加了一個叫ConfigMap的新功能。這個功能提供給容器注入應用程序數(shù)據(jù)的方式。注入配置文件對于大部分應用程序來說很強大,但是新的ConfigMap功能不僅可以在容器開啟時提供初始配置功...
閱讀 2242·2021-11-15 11:39
閱讀 997·2021-09-26 09:55
閱讀 944·2021-09-04 16:48
閱讀 2856·2021-08-12 13:23
閱讀 931·2021-07-30 15:30
閱讀 2465·2019-08-29 14:16
閱讀 899·2019-08-26 10:15
閱讀 535·2019-08-23 18:40