設定容器資源和備用資源
本頁面說明如何在 Config Connector 中,為控制器設定容器資源和備援。
為 Config Connector 控制器容器設定資源分配
在 Config Connector 1.106 以上版本中,您可以在 Config Connector 控制器 Pod 中,設定分配給容器的 CPU 和記憶體 (RAM) 資源。您可以設定下列控制器:
cnrm-webhook-manager
cnrm-controller-manager
cnrm-deletiondefender
cnrm-resource-stats-recorder
cnrm-unmanaged-detector
(Config Connector 1.108 以上版本)
舉例來說,您可以建立並套用以下 YAML 檔案範例,藉此設定 cnrm-webhook-manager
控制器的 webhook
容器記憶體要求和限制。
建立名為
configure-webhook-manager.yaml
的檔案,然後將下列 YAML 複製到檔案中:apiVersion: customize.core.cnrm.cloud.google.com/v1beta1 kind: ControllerResource metadata: name: cnrm-webhook-manager spec: containers: - name: webhook resources: limits: memory: 512Mi requests: memory: 256Mi
使用
kubectl apply
將容器資源設定套用至叢集:kubectl apply -f configure-webhook-manager.yaml
執行下列指令,驗證設定是否成功:
kubectl get controllerresource cnrm-webhook-manager -o jsonpath='{.status.healthy}'
應顯示
status.healthy
欄位設為true
。確認已將新的自訂資源設定套用至
webhook
容器。kubectl get deployment cnrm-webhook-manager -n cnrm-system -o jsonpath='{.spec.template.spec.containers[?(@.name=="webhook")].resources}'
建立和重新建立 Pod 可能需要幾分鐘的時間。
如果 Config Connector 已設定為在命名空間模式下執行,您必須使用 NamespacedControllerResource
自訂資源,為指定命名空間中的 cnrm-controller-manager
控制器設定容器資源。Config Connector 1.108 以上版本會啟用命名空間控制器的容器資源設定。以下 YAML 檔案為設定範例:
apiVersion: customize.core.cnrm.cloud.google.com/v1beta1
kind: NamespacedControllerResource
metadata:
name: cnrm-controller-manager # name should not contain the namespace ID suffix
namespace: NAMESPACE
spec:
containers:
- name: manager
resources:
limits:
cpu: 200m
memory: 512Mi
requests:
cpu: 100m
memory: 256Mi
請將 NAMESPACE
替換成您的命名空間名稱。
為 Config Connector 控制器 Pod 設定副本
在 Config Connector 1.107 以上版本中,您可以為 Config Connector 控制器設定複本數量。您只能設定 cnrm-webhook-manager
。
舉例來說,下列步驟說明如何將 cnrm-webhook-manager
控制器的複本數量設為 3
。
建立名為
configure-webhook-manager.yaml
的檔案,然後將下列 YAML 複製到檔案中:apiVersion: customize.core.cnrm.cloud.google.com/v1beta1 kind: ControllerResource metadata: name: cnrm-webhook-manager spec: replicas: 3 containers: - name: webhook resources: limits: memory: 512Mi requests: memory: 256Mi
使用
kubectl apply
將修改後的設定套用至叢集:kubectl apply -f configure-webhook-manager.yaml
執行下列指令,驗證設定是否成功。
kubectl get controllerresource cnrm-webhook-manager -o jsonpath='{.status.healthy}'
應顯示
status.healthy
欄位設為true
。確認叢集中是否有 3 個 webhook Pod。
kubectl get pods -n cnrm-system -l cnrm.cloud.google.com/component=cnrm-webhook-manager
建立和重新建立 Pod 可能需要幾分鐘的時間。
還原容器資源和複本中的設定變更
使用 kubectl
delete
刪除您設定的 ControllerResource
自訂資源。刪除後,Config Connector 運算子會使用預設容器資源和副本重新建立控制器。
kubectl delete -f configure-webhook-manager.yaml