컨테이너 리소스 및 복제본 구성
이 페이지에서는 구성 커넥터에서 컨트롤러의 컨테이너 리소스 및 복제본을 구성하는 방법을 설명합니다.
구성 커넥터 컨트롤러 컨테이너의 리소스 할당 구성
구성 커넥터 버전 1.106 이상에서는 구성 커넥터 컨트롤러 포드의 컨테이너에 할당되는 CPU 및 메모리(RAM) 리소스를 구성할 수 있습니다. 다음 컨트롤러를 구성할 수 있습니다.
cnrm-webhook-managercnrm-controller-managercnrm-deletiondefendercnrm-resource-stats-recordercnrm-unmanaged-detector(구성 커넥터 버전 1.108 이상)
구성에는 ControllerResource와 NamespacedControllerResource라는 두 가지 유형의 커스텀 리소스가 사용됩니다.
클러스터 범위 구성요소에 ControllerResource 사용
ControllerResource 커스텀 리소스를 사용하여 클러스터 범위 배포로 실행되는 구성 커넥터 구성요소의 리소스를 구성합니다.
다음 구성요소는 구성 커넥터가 네임스페이스 모드로 설치된 경우에도 항상 클러스터 범위입니다.
cnrm-webhook-managercnrm-deletiondefendercnrm-resource-stats-recordercnrm-unmanaged-detector
구성 커넥터가 클러스터 모드로 설치된 경우 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 사용
구성 커넥터가 네임스페이스 모드에서 실행되는 경우에만 NamespacedControllerResource 커스텀 리소스를 사용하여 cnrm-controller-manager의 리소스를 구성합니다.
네임스페이스 컨트롤러의 컨테이너 리소스 구성은 구성 커넥터 버전 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를 네임스페이스의 이름으로 바꿉니다.
구성 커넥터 컨트롤러 포드의 복제본 구성
구성 커넥터 버전 1.107 이상에서는 구성 커넥터 컨트롤러의 복제본 수를 구성할 수 있습니다. 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개의 웹훅 포드가 있는지 확인합니다.
kubectl get pods -n cnrm-system -l cnrm.cloud.google.com/component=cnrm-webhook-manager
포드를 만들고 다시 만드는 데는 몇 분 정도 걸릴 수 있습니다.
컨테이너 리소스 및 복제본의 구성 변경사항 되돌리기
kubectl
delete를 사용하여 구성한 ControllerResource 커스텀 리소스를 삭제합니다. 삭제 후 구성 커넥터 연산자가 기본 컨테이너 리소스 및 복제본을 사용하여 컨트롤러를 다시 만듭니다.
kubectl delete -f configure-webhook-manager.yaml