コンテナ リソースとレプリカを構成する
このページでは、Config Connector でコントローラのコンテナ リソースとレプリカを構成する方法について説明します。
Config Connector コントローラのコンテナに対するリソース割り当てを構成する
Config Connector バージョン 1.106 以降では、Config Connector コントローラ Pod のコンテナに割り当てられた CPU とメモリ(RAM)リソースを構成できます。次のコントローラを構成できます。
cnrm-webhook-managercnrm-controller-managercnrm-deletiondefendercnrm-resource-stats-recordercnrm-unmanaged-detector(Config Connector バージョン 1.108 以降)
構成に使用されるカスタム リソースには、ControllerResource と NamespacedControllerResource の 2 種類があります。
クラスタ スコープのコンポーネントには ControllerResource を使用する
ControllerResource カスタム リソースを使用して、クラスタ スコープのデプロイとして実行される Config Connector コンポーネントのリソースを構成します。
Config Connector が Namespace モードでインストールされている場合でも、次のコンポーネントは常にクラスタ スコープです。
cnrm-webhook-managercnrm-deletiondefendercnrm-resource-stats-recordercnrm-unmanaged-detector
Config Connector がクラスタモードでインストールされている場合、cnrm-controller-manager もクラスタ スコープになります。
たとえば、cnrm-webhook-manager コントローラの webhook コンテナのメモリ リクエストと上限を構成するには、次の 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
名前空間コントローラ マネージャーに NamespacedControllerResource を使用する
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 を 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: 256Mikubectl applyを使用して、変更した構成をクラスタに適用します。kubectl apply -f configure-webhook-manager.yaml
次のコマンドを実行して、構成が正常であることを確認します。
kubectl get controllerresource cnrm-webhook-manager -o jsonpath='{.status.healthy}'trueに設定されたstatus.healthyフィールドが表示されます。クラスタ内に 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