亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用chart模板

發布時間:2021-11-18 18:20:06 來源:億速云 閱讀:157 作者:柒染 欄目:云計算

本篇文章給大家分享的是有關如何使用chart模板,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

Helm 通過模板創建 Kubernetes 能夠理解的 YAML 格式的資源配置文件,我們將通過例子來學習如何使用模板。

以 templates/secrets.yaml 為例:

如何使用chart模板

從結構看,文件的內容非常像 Secret 配置,只是大部分屬性值變成了{{ xxx }}。這些 {{ xxx }} 實際上是模板的語法。Helm 采用了 Go 語言的模板來編寫 chart。Go 模板非常強大,支持變量、對象、函數、流控制等功能。下面我們通過解析 templates/secrets.yaml 快速學習模板。

① {{ template "mysql.fullname"> 定義 Secret 的 name
關鍵字 template 的作用是引用一個子模板 mysql.fullname。這個子模板是在 templates/_helpers.tpl 文件中定義的。

如何使用chart模板

這個定義還是很復雜的,因為它用到了模板語言中的對象、函數、流控制等概念。現在看不懂沒關系,這里我們學習的重點是:如果存在一些信息多個模板都會用到,則可在 templates/_helpers.tpl 中將其定義為子模板,然后通過 templates 函數引用。

這里 mysql.fullname 是由 release 與 chart 二者名字拼接組成。

根據 chart 的最佳實踐,所有資源的名稱都應該保持一致,對于我們這個 chart,無論 Secret 還是 Deployment、PersistentVolumeClaim、Service,它們的名字都是子模板 mysql.fullname 的值。

② Chart 和 Release 是 Helm 預定義的對象,每個對象都有自己的屬性,可以在模板中使用。如果使用下面命令安裝 chart:

helm install stable/mysql -n my

那么:
{{ .Chart.Name }} 的值為 mysql
{{ .Chart.Version }} 的值為 0.3.0
{{ .Release.Name }} 的值為 my
{{ .Release.Service }} 始終取值為 Tiller
{{ template "mysql.fullname"> 計算結果為 my-mysql

③ 這里指定 mysql-root-password 的值,不過使用了 if-else 的流控制,其邏輯為:
如果 .Values.mysqlRootPassword 有值,則對其進行 base64 編碼;否則隨機生成一個 10 位的字符串并編碼。

Values 也是預定義的對象,代表的是 values.yaml 文件。而 .Values.mysqlRootPassword 則是 values.yaml 中定義的 mysqlRootPassword 參數:

如何使用chart模板

因為 mysqlRootPassword 被注釋掉了,沒有賦值,所以邏輯判斷會走 else,即隨機生成密碼。

randAlphaNumb64encquote 都是 Go 模板語言支持的函數,函數之間可以通過管道 | 連接。{{ randAlphaNum 10 | b64enc | quote }} 的作用是首先隨機產生一個長度為 10 的字符串,然后將其 base64 編碼,最后兩邊加上雙引號。

templates/secrets.yaml 這個例子展示了 chart 模板主要的功能,我們最大的收獲應該是:模板將 chart 參數化了,通過 values.yaml 可以靈活定制應用。

無論多復雜的應用,用戶都可以用 Go 模板語言編寫出 chart。無非是使用到更多的函數、對象和流控制。對于初學者,我的建議是盡量參考官方的 chart。根據二八定律,這些 chart 已經覆蓋了絕大部分情況,而且采用了最佳實踐。

以上就是如何使用chart模板,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

内江市| 拜城县| 金昌市| 炎陵县| 永寿县| 仪征市| 麟游县| 浮山县| 仪陇县| 手机| 大田县| 大渡口区| 汪清县| 揭阳市| 大丰市| 田东县| 江津市| 贺兰县| 丽江市| 绥德县| 盐津县| 潼关县| 荣昌县| 长兴县| 嘉善县| 通辽市| 当涂县| 彰武县| 普安县| 尤溪县| 湘西| 农安县| 军事| 沂源县| 酒泉市| 岳阳县| 鹿泉市| 广昌县| 沅江市| 应用必备| 涡阳县|