charles
Charles
Helm Charts

Helm 部署 Backend Config

Helm 部署 Backend Config
0 views
3 min read
#Helm Charts

BackendConfig 是當服務有需要對外的時,才需要做設定

什麼是 GKE BackendConfig ChatGPT:GKE BackendConfig 是 Google Kubernetes Engine (GKE) 中的一個資源,用於定義 Kubernetes Ingress 和 Google Cloud Load Balancer (GCLB) 的後端服務設定。它允許您將特定的配置應用到 Ingress 或 Load Balancer 的後端服務中,例如指定不同的端口、協議、健康檢查等。通過 BackendConfig,您可以更細緻地配置您的應用程序後端服務,以滿足您的需求。 使用 BackendConfig,您可以將一組常見的後端服務配置應用到多個 Ingress 或 Load Balancer 中,從而避免在每個 Ingress 或 Load Balancer 中重複配置。這使得管理和維護後端服務更加方便,並且能夠確保多個 Ingress 或 Load Balancer 共享相同的後端服務設定。 總的來說,GKE BackendConfig 是一個有助於管理後端服務配置的 Kubernetes 資源,可與 Ingress 和 Google Cloud Load Balancer 一起使用,以實現更好的後端服務管理和配置。

GKE 官網 BackendConfig Configuring Ingress using the default controller

果我們的服務有需要對外開放 External IP。實作方式如下:

  • Deployment → Service → Ingress External Loadbalance
  • BackendConfig 會掛在 Cloud Armor 這樣對外的 IP 只會遵守 Cloud Armor 上的規則
  1. 在 Helm Template 上建立 BackendConfig.yml 檔案
Image

解釋: 第 1 行的 if 是說當不是 Deployment 的時候就不需要建立 BackendConfig 第 5 至 9 行是 labels,labels 是在 _helpers.tpl 中,有定義 第 10 行 是 BackendConfig 名稱(可以客製化) 第 12 行是 namespace 名稱 第 15 行是 Cloud Armor 名稱

  1. 在 Service.yaml 中添加
metadata:
  annotations:
    cloud.google.com/neg: '{"ingress": true}'
    cloud.google.com/backend-config: '{"default": "{{ .Values.name }}-backendconfig"}'
  1. 這樣設定好了之後,再上傳到 Google Artifacts Registry 即可。

參考文件: