最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

一文教你一次性完成Helm 3遷移

2021-08-11 13:26 作者:Vecloud_  | 我要投稿


  2019年,Kubernetes軟件包管理器——Helm發(fā)布了最新版本Helm 3,并且該版本已經(jīng)stable。Helm 3中的一些關(guān)鍵特性我們?cè)谥暗奈恼轮幸呀?jīng)介紹過(guò),其中一些功能吸引了許多開(kāi)發(fā)人員。那么,現(xiàn)在你大概想知道升級(jí)/遷移到新版本的Helm是否麻煩。盡管Helm可能十分復(fù)雜,但是請(qǐng)不要擔(dān)心,升級(jí)過(guò)程極為簡(jiǎn)單。如果你想要一次性完成遷移應(yīng)該怎么辦呢?你如何確保在刪除Tiller之前沒(méi)有任何組件在使用它下載Helm 3二進(jìn)制文件

?

  我們測(cè)試Helm 2以及最新版本,因此在Helm 2完全卸載之前,我們應(yīng)該準(zhǔn)備好兩個(gè)版本的二進(jìn)制文件。下載最新Stable版本的二進(jìn)制文件并將其添加到你的PATH中。將現(xiàn)有的v2二進(jìn)制文件重命名為helm2以及將最新版本重命名為helm3。我將兩個(gè)版本都保存在/usr/local/bin中,以便我能夠隨時(shí)切換它們:

?

  ? helm2 version ?Client: &version.Version{SemVer:"v2.16.0", GitCommit:"e13bc94621d4ef666270cfbe734aaabf342a49bb", GitTreeState:"clean"} ?Server: &version.Version{SemVer:"v2.14.3", GitCommit:"0e7f3b6637f7af8fcfddb3d2941fcc7cbebb0085", GitTreeState:"clean"}? helm3 version ?version.BuildInfo{Version:"v3.0.1", GitCommit:"7c22ef9ce89e0ebeb7125ba2ebf7d421f3e82ffa", GitTreeState:"clean", GoVersion:"go1.13.4"}

?

  準(zhǔn)備CI腳本和Chart

?

  在你運(yùn)行升級(jí)流程之前,你需要確認(rèn)你的CI腳本以及自定義Chart是否與Helm 3兼容。我之前寫(xiě)過(guò)一篇文章(breaking-changes-in-helm-3-and-how-to-fix-them-39fea23e06ff ),文章中涵蓋了一些需要注意的事情,其中的大部分都能夠輕松解決。盡管OpenAPI驗(yàn)證機(jī)制很有趣,但它很有可能讓你措手不及:

?

  ? helm install prometheus . ?Error: unable to build kubernetes objects from release manifest: error validating "": error validating data: ValidationError(Deployment.spec.template.spec.containers\[0\].volumeMounts\[0\]): unknown field "defaultMode" in io.k8s.api.core.v1.VolumeMount一旦你解決了所有這些麻煩的問(wèn)題,那么就可以開(kāi)始遷移到Helm 3啦!

?

  遷移Helm配置

?

  我在文章開(kāi)頭提到的Helm博客文章中有這一步驟的詳細(xì)描述,它將會(huì)更新所有你的本地配置以便Helm 3可以使用它:

?

  repo或使用自定義插件時(shí)。無(wú)論哪種方式,請(qǐng)確保你已經(jīng)通讀了這一部分,以確定是否與你有關(guān)。

?

  遷移版本(保留Tiller)

?

  現(xiàn)在,我們有幾種方式可以實(shí)現(xiàn)遷移。你可以遷移特定版本到Helm 3來(lái)進(jìn)行一些測(cè)試,具體操作在Helm官方博客中可以找到。你也可以選擇遷移許多版本并將它們從Tiller中全部刪除。就我個(gè)人而言,我發(fā)現(xiàn)一次性遷移所有版本到既定環(huán)境中更為簡(jiǎn)單,但需要將發(fā)布數(shù)據(jù)保留在Tiller中,直到確定在我們的環(huán)境中沒(méi)有一處使用Helm 2為止。如此,就不會(huì)產(chǎn)生盲點(diǎn),所有東西都使用相同版本的Helm:

?

  # List Helm 2 Releases ?# omit --tls flag if you're not using TLS ?RELEASES=$(helm list --tls -aq)# Loop through releases and, for each one, test conversion ?while IFS= read -r release; do ???helm3 2to3 convert $release --dry-run ?done <<< "$RELEASES"你感到滿意之后,可以刪除--dry-run標(biāo)志,并靜觀2to3插件發(fā)揮其作用。

?

  請(qǐng)注意:正如我所提到的,這里有--delete-v2-releases標(biāo)志,它將會(huì)遷移版本并從Tiller刪除。如果你確定自己不再需要任何信息,你可以執(zhí)行這一操作,風(fēng)險(xiǎn)自擔(dān)。

?

  移除Tiller之前……

?

  這一步是我最不想略過(guò)的一步,以防萬(wàn)一我們需要回滾到Helm 2。此時(shí),只要你的CI系統(tǒng)和團(tuán)隊(duì)成員都在使用Helm 3,就沒(méi)有理由保留Tiller。但如果你想完全確保沒(méi)有任何組件還將會(huì)使用舊版本,那我建議你還是將Tiller保留幾個(gè)小時(shí)并觀察helm ls的輸出結(jié)果以查看UPDATEDcolumn中的時(shí)間戳是否完全改變。如果改變了,就意味著有人/有些組件沒(méi)有使用Helm 3。

?

  如果將版本遷移到Helm 3之后,由Helm 2對(duì)其進(jìn)行了修改,你將必須刪除保存了版本信息的Helm 3 Kubernetes secret,才能夠?qū)⑵鋸腍elm 3中清除,而不會(huì)刪除相關(guān)資源:

?

  ? kubectl get secret -n dev ?NAMESPACE NAME TYPE DATA AGE dev sh.helm.release.v1.postgres.v1 helm.sh/release.v1 1 36d ?? kubectl delete secret -n dev sh.helm.release.v1.postgres.v1 ?secret "secret "sh.helm.release.v1.postgres.v1" deleted現(xiàn)在如果我們使用Helm 3列出在dev命名空間中的版本,我們將會(huì)看到那些版本已經(jīng)不復(fù)存在:

?

  NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION在我們弄清楚誰(shuí)依舊在使用Helm 2之后,我們就可以再次執(zhí)行遷移流程。解決此問(wèn)題后,請(qǐng)使用helm3 2to3 convert進(jìn)行遷移。

?

  一旦你完全確定你可以移除Tiller及其相關(guān)的RBAC角色和數(shù)據(jù),那么就可以運(yùn)行?helm 2to3 cleanup。

?

  遷移版本——沒(méi)有Tiller的Helm

?

  直接添加--tiller-out-cluster標(biāo)志到我在之前提供的腳本中,然后2to3插件將從你的本地Tiller實(shí)例中移除版本信息。

?

  # List Helm 2 Releases ?# omit --tls flag if you're not using TLS ?RELEASES=$(helm list --tls -aq)# Loop through releases and, for each one, test conversion ?while IFS= read -r release; do ???helm3 2to3 convert $release --tiller-out-cluster ?done <<< "$RELEASES"

了解更多網(wǎng)絡(luò)知識(shí)關(guān)注:http://www.vecloud.com/

一文教你一次性完成Helm 3遷移的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
汕尾市| 全州县| 达孜县| 临安市| 博客| 金坛市| 天台县| 海口市| 梁山县| 巴彦淖尔市| 社会| 平塘县| 漯河市| 松原市| 巴马| 隆回县| 双鸭山市| 藁城市| 东安县| 新沂市| 子洲县| 上犹县| 和政县| 信丰县| 孟州市| 银川市| 肥西县| 都匀市| 塘沽区| 微山县| 南阳市| 若尔盖县| 苏尼特右旗| 柘荣县| 册亨县| 天祝| 河南省| 阳东县| 绿春县| 和硕县| 手游|