9.5.5. cert-manager 구성 요소에 대한 스케줄링 덮어쓰기 구성
cert-manager 컨트롤러, CA 인젝터 및 Webhook와 같은 Red Hat OpenShift 구성 요소의 cert-manager Operator for Red Hat OpenShift API에서 Pod 예약을 구성할 수 있습니다.
사전 요구 사항
-
cluster-admin역할의 사용자로 OpenShift Container Platform 클러스터에 액세스할 수 있습니다. - Red Hat OpenShift용 cert-manager Operator 버전 1.15.0 이상을 설치했습니다.
프로세스
다음 명령을 실행하여
certmanager.operator사용자 정의 리소스를 업데이트하여 원하는 구성 요소에 대한 Pod 예약 덮어쓰기를 구성합니다.controllerConfig,webhookConfig또는cainjectorConfig섹션 아래의overrideScheduling필드를 사용하여nodeSelector및허용 오차설정을 정의합니다.$ oc patch certmanager.operator cluster --type=merge -p=" spec: controllerConfig: overrideScheduling: nodeSelector: node-role.kubernetes.io/control-plane: ''1 tolerations: - key: node-role.kubernetes.io/master operator: Exists effect: NoSchedule2 webhookConfig: overrideScheduling: nodeSelector: node-role.kubernetes.io/control-plane: ''3 tolerations: - key: node-role.kubernetes.io/master operator: Exists effect: NoSchedule4 cainjectorConfig: overrideScheduling: nodeSelector: node-role.kubernetes.io/control-plane: ''5 tolerations: - key: node-role.kubernetes.io/master operator: Exists effect: NoSchedule"6
검증
cert-managerPod의 Pod 예약 설정을 확인합니다.다음 명령을 실행하여
cert-manager네임스페이스의 배포를 확인하여 올바른nodeSelector및허용 오차가 있는지 확인합니다.$ oc get pods -n cert-manager -o wide출력 예
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES cert-manager-58d9c69db4-78mzp 1/1 Running 0 10m 10.129.0.36 ip-10-0-1-106.ec2.internal <none> <none> cert-manager-cainjector-85b6987c66-rhzf7 1/1 Running 0 11m 10.128.0.39 ip-10-0-1-136.ec2.internal <none> <none> cert-manager-webhook-7f54b4b858-29bsp 1/1 Running 0 11m 10.129.0.35 ip-10-0-1-106.ec2.internal <none> <none>다음 명령을 실행하여 배포에 적용되는
nodeSelector및허용 오차설정을 확인합니다.$ oc get deployments -n cert-manager -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{.spec.template.spec.nodeSelector}{"\n"}{.spec.template.spec.tolerations}{"\n\n"}{end}'출력 예
cert-manager {"kubernetes.io/os":"linux","node-role.kubernetes.io/control-plane":""} [{"effect":"NoSchedule","key":"node-role.kubernetes.io/master","operator":"Exists"}] cert-manager-cainjector {"kubernetes.io/os":"linux","node-role.kubernetes.io/control-plane":""} [{"effect":"NoSchedule","key":"node-role.kubernetes.io/master","operator":"Exists"}] cert-manager-webhook {"kubernetes.io/os":"linux","node-role.kubernetes.io/control-plane":""} [{"effect":"NoSchedule","key":"node-role.kubernetes.io/master","operator":"Exists"}]
다음 명령을 실행하여
cert-manager네임스페이스에서 Pod 예약 이벤트를 확인합니다.$ oc get events -n cert-manager --field-selector reason=Scheduled