配置容器资源和副本


本页面介绍了如何为 Cloud Storage 存储分区配置容器资源和副本, Config Connector 中的控制器

为 Config Connector 控制器容器配置资源分配

在 Config Connector 1.106 版及更高版本中,您可以配置 CPU 和 分配给 Config Connector 控制器中的容器的内存 (RAM) 资源 Pod。您可以配置以下控制器:

  • cnrm-webhook-manager
  • cnrm-controller-manager
  • cnrm-deletiondefender
  • cnrm-resource-stats-recorder
  • cnrm-unmanaged-detector(Config Connector 1.108 及更高版本)

例如,您可以配置 webhook 的内存请求和限制 cnrm-webhook-manager 控制器的容器,创建并应用 请参阅以下示例 YAML 文件。

  1. 创建一个名为 configure-webhook-manager.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}'

    它应该显示设置为 truestatus.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}'

    它应该显示设置为 truestatus.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 操作器会使用 默认容器资源和副本。

kubectl delete -f configure-webhook-manager.yaml