コンテナ リソースとレプリカを構成する


このページでは、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 コンテナに対してメモリ リクエストと上限を構成できます。

  1. 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
    
  2. kubectl apply を使用して、コンテナ リソース構成をクラスタに適用します。

    kubectl apply -f configure-webhook-manager.yaml
  3. 次のコマンドを実行して、構成が正常であることを確認します。

    kubectl get controllerresource cnrm-webhook-manager -o jsonpath='{.status.healthy}'

    true に設定された status.healthy フィールドが表示されます。

  4. 新しいカスタム リソース構成が 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 に構成する方法を示しています。

  1. 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
    
  2. kubectl apply を使用して、変更した構成をクラスタに適用します。

    kubectl apply -f configure-webhook-manager.yaml
  3. 次のコマンドを実行して、構成が正常であることを確認します。

    kubectl get controllerresource cnrm-webhook-manager -o jsonpath='{.status.healthy}'

    true に設定された status.healthy フィールドが表示されます。

  4. クラスタ内に 3 つの Webhook Pod があることを確認します。

    kubectl get pods -n cnrm-system -l cnrm.cloud.google.com/component=cnrm-webhook-manager

    Pod の作成と再作成には数分かかることがあります。

コンテナ リソースとレプリカの構成変更を元に戻す

kubectl delete を使用して、構成した ControllerResource カスタム リソースを削除します。削除した後、Config Connector Operator は、デフォルトのコンテナ リソースとレプリカでコントローラを再作成します。

kubectl delete -f configure-webhook-manager.yaml