Kubernetes

在 helm 中連接服務

  • March 5, 2018

helm 圖表中的標準做法是使用{{ template "<chartname>.fullname" . }}服務名稱,其中<chartname>.fullname模板有效擴展為.Release.Name-.Chart.name. 後者可以被 覆蓋.Values.nameOverride,但前者或完整值不能。前者要麼是管理員指定的,要麼是隨機的。

那麼我如何告訴服務我正在創建圖表以在哪裡連接到它的依賴項?前綴會.Release.Name感染 DNS 和環境變數,所以我不能按原樣使用。

例如,如果我將依賴項設置為 stable/mariadb,它將創建類似服務nutty-narwhal-mariadb並提供環境變數NUTTY_NARWHAL_MARIADB_SERVICE_HOST=10.108.77.204NUTTY_NARWHAL_MARIADB_SERVICE_PORT=3306. 但這沒有幫助,因為我正在創建的服務不知道前綴是什麼。

請注意,由 current 生成的模板helm create確實 include ,但是像stable/mariadb.Values.fullnameOverride這樣的主記憶體儲庫中的現有圖表沒有它,所以我不能簡單地在我的.mariadb.fullnameOverride``values.yaml

通常,您的依賴項將聚合在同一個“繖形”圖表下,從而.Release.Name為所有這些圖表生成一個,這意味著您將能夠在圖表中使用.Release.Name-<subchart>. 如果由於某種原因您不想這樣做,並且在部署主圖表之前部署了依賴項,那麼您應該能夠通過配置名稱將它們指向依賴項的位置,因為您應該在你安裝了它們。

引用自:https://serverfault.com/questions/900069