配置容器资源和副本
本页介绍了如何在 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 Operator 会使用默认的容器资源和副本重新创建控制器。
kubectl delete -f configure-webhook-manager.yaml