久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Kubernetes ConfigMap怎么安裝啟用

共計(jì) 2753 個(gè)字符,預(yù)計(jì)需要花費(fèi) 7 分鐘才能閱讀完成。

本篇內(nèi)容介紹了“Kubernetes ConfigMap 怎么安裝啟用”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓丸趣 TV 小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

讓我們來看看監(jiān)控配置文件變化的簡單網(wǎng)頁 app 是怎么樣的。

這個(gè) app 有趣部分是 ConfigManager  和  WatchFile.

ConfigManager 的工作就是提供訪問我們的  Config{} 的路徑結(jié)構(gòu),這樣的話當(dāng) Kubernetes ConfigMap 給我們一個(gè)新的配置文件版本或者我們更新  Config{}  對(duì)象時(shí)候,競(jìng)爭沖突不存在。

 WatchFile 的工作就是為作出的修改查看我們的配置文件,并且運(yùn)行讀取配置文件的新版本回調(diào)函數(shù),使用 ConfigManager 設(shè)置新的  Config{} 。

讓我們看一下 ConfigManager 的安裝啟用。

這里是我們使用一個(gè)簡單的 Mutex 用來避免競(jìng)爭沖突的例子。通常你想要避免使用 Mutex,然后使用建立在 channel 里面的 golang。但是既然管理員的工作是保護(hù)配置對(duì)象的實(shí)例,那么使用 Mutex 也還是可以接受的。

懷著好奇心,我創(chuàng)建了一個(gè)這個(gè)對(duì)象的 golang channel 安裝啟用,然后運(yùn)行一些基準(zhǔn)點(diǎn)。你可以點(diǎn)擊(https://github.com/thrawn01/configmap-microservice-demo/blob/master/manager.go)找到代碼和基準(zhǔn)點(diǎn)測(cè)試。

Mutex 版本沒有死鎖的風(fēng)險(xiǎn),很高效。

  而  FileWatcher 的實(shí)施會(huì)較復(fù)雜一點(diǎn)。它的目標(biāo)是使任意額外的 fsnotify events 成為一個(gè)單獨(dú)更新的 event,這樣我們只要執(zhí)行一次回調(diào)函數(shù)。查看完整代碼請(qǐng)點(diǎn)擊這里(https://github.com/thrawn01/configmap-microservice-demo/blob/master/watcher.go)

有意思的部分是  run() 函數(shù)執(zhí)行在線程中,然后運(yùn)行回調(diào)函數(shù)。

你可能會(huì)覺得代碼應(yīng)該尋找  fsnotify.Writeevents 而不是 fsnotify.Remove,然而……ConfigMap 所呈現(xiàn)給應(yīng)用程序的配置文件事實(shí)上是一個(gè)連接到我們配置文件的符號(hào)鏈接,而不是一個(gè)文件。當(dāng) ConfigMap 更新時(shí),Kubernetes AtomicWriter() 就可以實(shí)現(xiàn)強(qiáng)大的 ConfigMap 更新。

為了做到這樣,AtomicWriter() 創(chuàng)建了一個(gè)新的目錄;編寫更新好的 ConfigMap 內(nèi)容到新的目錄。一旦編寫完成,那么它就會(huì)移動(dòng)原始配置文件符號(hào)鏈接,然后用新的指向最新創(chuàng)建目錄符號(hào)鏈接替換它。

我們的代碼處理方式理論上應(yīng)該是監(jiān)控我們的配置文件符號(hào)鏈接,而不是為 events 的真實(shí)文件。然而,fsnotify.v1 并不允許我們提交 IN_DONT_FOLLOW 標(biāo)志到 inotify,inotify 允許我們?yōu)樾薷谋O(jiān)控符號(hào)鏈接。但是 fsnotify 取消引用符號(hào)鏈接,然后為 events 監(jiān)控真實(shí)文件。這不太可能作出修改,因?yàn)?fsnotify 是為跨平臺(tái)設(shè)計(jì)的,而且不是所有的平臺(tái)都支持符號(hào)鏈接。

我繼續(xù)使用 fsnotify 函數(shù)庫,因?yàn)閷?duì)于我來說,用它在 osx 上開發(fā),在容器上部署都比較方便。以 Linux 為中心的實(shí)施應(yīng)該直接使用 golang.org/x/exp/inotify 數(shù)據(jù)庫。

現(xiàn)在我們有了我們的代碼,我們可以創(chuàng)建一個(gè) Docker 鏡像然后更新到 Docker hub,為部署在我們 Kubernetes 集群做好準(zhǔn)備。

假設(shè)你已經(jīng)建立起了一個(gè) Kubernetes 集群;讓我們來創(chuàng)建一個(gè) ConfigMap 配置,然后用我們的容器來使用它。

創(chuàng)建 ConfigMap

首先,我們創(chuàng)建一個(gè)密鑰清單文件

這個(gè)定義了一個(gè)新的叫做 configmap-microservice-demo 的 ConfigMap,它包括了  data: 配置文件名字叫做 configmap-microservice-demo.yaml

它的內(nèi)容是 message: Hello World。

使用  kubectl 來創(chuàng)建 ConfigMap。

你可以檢測(cè)到最新的創(chuàng)建好的 ConfigMap

接下來我們來定義一個(gè) Replication Controller 密鑰清單來運(yùn)行我們的應(yīng)用程序容器。

有趣的地方就是 volumes: 和 volumeMounts:,這兩者告訴運(yùn)行在節(jié)點(diǎn)上的 kubelet 哪里可以安裝我們的配置文件。當(dāng)我們的容器運(yùn)行的時(shí)候;數(shù)據(jù)卷插件會(huì)在我們的容器中安裝一個(gè)叫做 /etc/config 的目錄,然后在這里面替換我們的配置文件 configmap-microservice-demo.yaml。

從我們的容器觀點(diǎn)角度看,我們的配置文件完整途徑將會(huì)是:/etc/config/configmap-microservice-demo.yaml

現(xiàn)在讓我們來創(chuàng)建 Replication Controller。

Kubernetes ConfigMap 怎么安裝啟用

我們現(xiàn)在可以檢查我們正在運(yùn)行的 pods 來尋找我們新 pod 的 IP 地址。

Kubernetes ConfigMap 怎么安裝啟用

現(xiàn)在如果你登錄到我們集群中的一個(gè)節(jié)點(diǎn),我們?cè)诩豪锟梢杂?pod 的 IP 地址從任何地方來訪問應(yīng)用程序。

Kubernetes ConfigMap 怎么安裝啟用

如果這個(gè)部分讓你很困惑,你可以點(diǎn)擊這篇博客(http://www.dasblinkenlichten.com/kubernetes-101-networking/),它對(duì)于 Kubernetes 網(wǎng)絡(luò)是如何運(yùn)行的有很深層次的指導(dǎo)意義。這個(gè)是官方文檔(http://kubernetes.io/docs/admin/networking/)。

更新 ConfigMap

現(xiàn)在為了有趣的部分,讓我們來更新我們的配置,部署修改到 ConfigMap。

讓我們打開原始的 ConfigMap 密鑰清單文件,然后修改我們的 message: Hello World 到 message:Hello Grandma。

Kubernetes ConfigMap 怎么安裝啟用

用我們更新的版本替代目前的 ConfigMap

Kubernetes ConfigMap 怎么安裝啟用

我們可以驗(yàn)證到,通過在 configmap 資源上執(zhí)行 get,更新很成功。

Kubernetes ConfigMap 怎么安裝啟用

我們的應(yīng)用程序很快得到了更新后的配置,我們可以通過看日志就來驗(yàn)證。

Kubernetes ConfigMap 怎么安裝啟用

現(xiàn)在我們可以在集群里面 curl 我們的應(yīng)用程序,我們應(yīng)該看到更新的配置反應(yīng)在我們的應(yīng)用程序里。

Kubernetes ConfigMap 怎么安裝啟用

你可以登錄到我們的容器正在運(yùn)行的節(jié)點(diǎn),然后檢查直接檢查配置文件。Kubernetes 將目錄安裝在 /var/lib/kubelet/pods/ pod-id /volumes/kubernetes.io~configmap/config-volume。

“Kubernetes ConfigMap 怎么安裝啟用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注丸趣 TV 網(wǎng)站,丸趣 TV 小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-08-16發(fā)表,共計(jì)2753字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒有評(píng)論)
主站蜘蛛池模板: 海南省| 高邮市| 运城市| 洛浦县| 苏尼特右旗| 淳安县| 中江县| 壤塘县| 牡丹江市| 砀山县| 吉林省| 龙江县| 阳曲县| 皮山县| 隆昌县| 井冈山市| 鹤岗市| 海阳市| 卢龙县| 崇左市| 乌拉特前旗| 柞水县| 灯塔市| 古丈县| 玛曲县| 江山市| 钦州市| 加查县| 永泰县| 开封市| 丰顺县| 辛集市| 涞源县| 黑龙江省| 呼玛县| 彰武县| 宜川县| 河池市| 和平县| 托克逊县| 黄浦区|