配置容器资源和副本
本页面介绍了如何为 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。
使用 ControllerResource 表示集群级组件
使用 ControllerResource 自定义资源为作为集群级部署运行的 Config Connector 组件配置资源。
即使在命名空间模式下安装 Config Connector,以下组件也始终具有集群级范围:
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 替换为您的命名空间名称。
为 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