如何使用Helm更新使用ConfigMap的應用程序

如何使用Helm更新使用ConfigMap的應用程序,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

網(wǎng)站建設哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、小程序開發(fā)、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了保德免費建站歡迎大家使用!

Helm的小小黑科技,讓你簡單快速地更新那些使用ConfigMap的應用程序。隨時隨心更改配置文件內(nèi)容,而應用程序將實時根據(jù)變化而更新~

Helm讓Kubernetes應用程序的管理工作變得毫不費力。Helm Charts使Kubernetes應用程序的安裝和升級更加容易。本文將討論Helm的一個極妙的技巧:如何使用Helm,簡單快速地更新那些使用ConfigMap的應用程序。

更新部署

如何使用Helm更新使用ConfigMap的應用程序

上圖的示例就是一個部署的配置文件。我們假設它是用于運行應用程序的。您可以在spec.template部分下指定pod模板?,F(xiàn)在,如果您想更新應用程序,則必須從此spec.template部分更改內(nèi)容。這意味著,容器鏡像更改之后,部署將更新,但spec.replicas不會發(fā)生任何改變。

更新使用ConfigMap的部署

某些應用需要某些特定的配置文件和值,我們不建議將這些配置文件或配置值打包進容器鏡像中,因為如果這么做的話,那每次配置文件發(fā)生更改時,都必須重新創(chuàng)建容器鏡像。而Kubernetes提供了一種管理配置文件/值的好方法——使用ConfigMap資源。

有兩種方法可以將ConfigMap數(shù)據(jù)暴露給一個pod:

  • Env vars

  • Volume mounts

下面我們將重點關注暴露ConfigMap的卷掛載方式。

我創(chuàng)建了一個非常簡單的chart作為例子來討論這個問題。在這個chart中,我有一個如下的ConfigMap的配置文件:

如何使用Helm更新使用ConfigMap的應用程序

如您所見,ConfigMap的名稱是nginx-cm,一個名為default.conf的文件正在讀取其數(shù)據(jù)。這個default.conf是一個nginx配置文件。

如何使用Helm更新使用ConfigMap的應用程序

現(xiàn)在我想為我的應用程序使用這個ConfigMap nginx-cm。所以我將通過我的應用程序的部署的配置文件中的Volume Mounts來暴露它。

如何使用Helm更新使用ConfigMap的應用程序

如上面的示例,我們需要在【volumes】部分下添加ConfigMap,并為其指定一個唯一的名稱(config-volume,如示例中所示)。然后,我們需要將這個卷添加到【containers】部分下的卷掛載中。volumeMounts.mountPath字段是容器中可供容器使用的配置文件的確切位置。

因此,使用這些配置文件,我們就可以運行使用ConfigMap提供的nginx配置文件內(nèi)容的應用程序了。

下面我們需要更改nginx配置文件。更改此配置文件后,不要忘了還需要相應地更新ConfigMap,不然的話,那些使用此ConfigMap的應用程序將不會使用更新后的內(nèi)容。

我們當然也可以使用kubectl update命令來更新ConfigMap。按理說,同樣的,接下來我們應該更新部署。那么,kubectl update命令可以用來更新部署嗎?

在我嘗試這么做的時候,我收到了下面這條消息:

如何使用Helm更新使用ConfigMap的應用程序

這是因為即使在更新ConfigMap資源之后,部署的spec.template部分也沒有更改。即使ConfigMap的數(shù)據(jù)部分發(fā)生了變化,但這并沒有引起部署spec.template的任何變化。對此的一種解決方法,是刪除這一部署所管理的所有pod,之后部署就會創(chuàng)建新的pod,這些新pod使用的就是更新后的configMap了。

但我不太喜歡這種方法,因為你必須手動刪除所有的pod,正因為如此我才開始尋找更好的解決方案,也就是本文所說的Helm的這個小技巧。

https://github.com/kubernetes/helm/blob/master/docs/charts_tips_and_tricks.md#automatically-roll-deployments-when-configmaps-or-secrets-change

正如你在注釋中看到的那樣, 你可以提供configmap文件的路徑,并將其傳遞給sha256 sum函數(shù)。這樣一來,每次configmap文件發(fā)生更改時,注釋部分也會得到相應的更新,進而更新部署的spec.template部分。我發(fā)現(xiàn)這一招非常妙,因為如此一來,你就可以經(jīng)常更改您的配置文件內(nèi)容了。因為這個訣竅,Helm能夠確保你的應用程序將一直及時地反映這些變化。

關于如何使用Helm更新使用ConfigMap的應用程序問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關知識。

本文標題:如何使用Helm更新使用ConfigMap的應用程序
本文鏈接:http://bm7419.com/article44/jcshee.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供微信公眾號域名注冊、靜態(tài)網(wǎng)站、手機網(wǎng)站建設、網(wǎng)站建設、虛擬主機

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營