9.8. cert-manager Operator API 필드 사용자 정의
환경 변수 및 인수를 재정의하여 Red Hat OpenShift API 필드의 cert-manager Operator를 사용자 지정할 수 있습니다.
지원되지 않는 인수를 재정의하려면 CertManager 리소스에 spec.unsupportedConfigOverrides 섹션을 추가할 수 있지만 spec.unsupportedConfigOverrides 는 지원되지 않습니다.
9.8.1. cert-manager Operator API에서 환경 변수를 재정의하여 cert-manager 사용자 정의 링크 복사링크가 클립보드에 복사되었습니다!
CertManager 리소스에 spec.controllerConfig 섹션을 추가하여 Red Hat OpenShift의 cert-manager Operator에 지원되는 환경 변수를 덮어쓸 수 있습니다.
사전 요구 사항
-
cluster-admin역할의 사용자로 OpenShift Container Platform 클러스터에 액세스할 수 있습니다.
절차
다음 명령을 실행하여
CertManager리소스를 편집합니다.$ oc edit certmanager cluster다음 덮어쓰기 인수를 사용하여
spec.controllerConfig섹션을 추가합니다.apiVersion: operator.openshift.io/v1alpha1 kind: CertManager metadata: name: cluster ... spec: ... controllerConfig: overrideEnv: - name: HTTP_PROXY value: http://<proxy_url>1 - name: HTTPS_PROXY value: https://<proxy_url>2 - name: NO_PROXY value: <ignore_proxy_domains>3 - 변경 사항을 저장하고 텍스트 편집기를 종료하여 변경 사항을 적용합니다.
검증
다음 명령을 실행하여 cert-manager 컨트롤러 Pod가 재배포되었는지 확인합니다.
$ oc get pods -l app.kubernetes.io/name=cert-manager -n cert-manager출력 예
NAME READY STATUS RESTARTS AGE cert-manager-bd7fbb9fc-wvbbt 1/1 Running 0 39s다음 명령을 실행하여 cert-manager Pod에 대한 환경 변수가 업데이트되었는지 확인합니다.
$ oc get pod <redeployed_cert-manager_controller_pod> -n cert-manager -o yaml출력 예
env: ... - name: HTTP_PROXY value: http://<PROXY_URL> - name: HTTPS_PROXY value: https://<PROXY_URL> - name: NO_PROXY value: <IGNORE_PROXY_DOMAINS>
9.8.2. cert-manager Operator API에서 인수를 재정의하여 cert-manager 사용자 정의 링크 복사링크가 클립보드에 복사되었습니다!
CertManager 리소스에 spec.controllerConfig 섹션을 추가하여 Red Hat OpenShift의 cert-manager Operator에 대해 지원되는 인수를 덮어쓸 수 있습니다.
사전 요구 사항
-
cluster-admin역할의 사용자로 OpenShift Container Platform 클러스터에 액세스할 수 있습니다.
절차
다음 명령을 실행하여
CertManager리소스를 편집합니다.$ oc edit certmanager cluster다음 덮어쓰기 인수를 사용하여
spec.controllerConfig섹션을 추가합니다.apiVersion: operator.openshift.io/v1alpha1 kind: CertManager metadata: name: cluster ... spec: ... controllerConfig: overrideArgs: - '--dns01-recursive-nameservers=<host>:<port>'1 - '--dns01-recursive-nameservers-only'2 - '--acme-http01-solver-nameservers=<host>:<port>'3 - '--v=<verbosity_level>'4 - '--metrics-listen-address=<host>:<port>'5 - '--issuer-ambient-credentials'6 webhookConfig: overrideArgs: - '--v=4'7 cainjectorConfig: overrideArgs: - '--v=2'8 - 1
- DNS-01 자체 검사를 쿼리할 쉼표로 구분된 <
host>:<port> 이름 서버 목록을 제공합니다. 예를 들면--dns01-recursive-nameservers=1.1.1.1:53입니다. - 2
- 해당 도메인과 연결된 권한 있는 네임서버를 확인하는 대신 재귀 이름 서버만 사용하도록 지정합니다.
- 3
- 쉼표로 구분된 <
host>:<port> 네임서버 목록을 제공하여 ACME(Automated Certificate Management Environment) HTTP01 자체 검사를 쿼리합니다. 예를 들면--acme-http01-solver-nameservers=1.1.1.1:53입니다. - 4 7 8
- 로그 메시지의 상세 수준을 결정하려면 로그 수준 세부 정보를 설정하려면 지정합니다.
- 5
- 지표 끝점의 호스트 및 포트를 지정합니다. 기본값은
--metrics-listen-address=0.0.0.0:9402입니다. - 6
- 앰비언트 인증 정보를 사용하여 DNS-01 문제를 해결하기 위해 ACME 발급자를 구성할 때
--issuer-ambient-credentials인수를 사용해야 합니다.
- 변경 사항을 저장하고 텍스트 편집기를 종료하여 변경 사항을 적용합니다.
검증
다음 명령을 실행하여 cert-manager pod에 대한 인수가 업데이트되었는지 확인합니다.
$ oc get pods -n cert-manager -o yaml출력 예
... metadata: name: cert-manager-6d4b5d4c97-kldwl namespace: cert-manager ... spec: containers: - args: - --acme-http01-solver-nameservers=1.1.1.1:53 - --cluster-resource-namespace=$(POD_NAMESPACE) - --dns01-recursive-nameservers=1.1.1.1:53 - --dns01-recursive-nameservers-only - --leader-election-namespace=kube-system - --max-concurrent-challenges=60 - --metrics-listen-address=0.0.0.0:9042 - --v=6 ... metadata: name: cert-manager-cainjector-866c4fd758-ltxxj namespace: cert-manager ... spec: containers: - args: - --leader-election-namespace=kube-system - --v=2 ... metadata: name: cert-manager-webhook-6d48f88495-c88gd namespace: cert-manager ... spec: containers: - args: ... - --v=4
9.8.3. 인증서 제거 시 자동으로 TLS 시크릿 삭제 링크 복사링크가 클립보드에 복사되었습니다!
CertManager 리소스에 spec.controllerConfig 섹션을 추가하여 cert-manager Operator for Red Hat OpenShift에 대해 --enable-certificate-owner-ref 플래그를 활성화할 수 있습니다. --enable-certificate-owner-ref 플래그는 인증서 리소스를 TLS 인증서가 저장된 보안의 소유자로 설정합니다.
cert-manager Operator for Red Hat OpenShift를 설치 제거하거나 클러스터에서 인증서 리소스를 삭제하면 보안이 자동으로 삭제됩니다. 이로 인해 인증서 TLS 보안이 사용되는 위치에 따라 네트워크 연결 문제가 발생할 수 있습니다.
사전 요구 사항
-
cluster-admin역할의 사용자로 OpenShift Container Platform 클러스터에 액세스할 수 있습니다. - Red Hat OpenShift용 cert-manager Operator 버전 1.12.0 이상이 설치되어 있어야 합니다.
절차
다음 명령을 실행하여
Certificate오브젝트 및 해당 시크릿을 사용할 수 있는지 확인합니다.$ oc get certificate출력 예
NAME READY SECRET AGE certificate-from-clusterissuer-route53-ambient True certificate-from-clusterissuer-route53-ambient 8h다음 명령을 실행하여
CertManager리소스를 편집합니다.$ oc edit certmanager cluster다음 덮어쓰기 인수를 사용하여
spec.controllerConfig섹션을 추가합니다.apiVersion: operator.openshift.io/v1alpha1 kind: CertManager metadata: name: cluster # ... spec: # ... controllerConfig: overrideArgs: - '--enable-certificate-owner-ref'- 변경 사항을 저장하고 텍스트 편집기를 종료하여 변경 사항을 적용합니다.
검증
다음 명령을 실행하여 cert-manager 컨트롤러 Pod에 대해
--enable-certificate-owner-ref플래그가 업데이트되었는지 확인합니다.$ oc get pods -l app.kubernetes.io/name=cert-manager -n cert-manager -o yaml출력 예
# ... metadata: name: cert-manager-6e4b4d7d97-zmdnb namespace: cert-manager # ... spec: containers: - args: - --enable-certificate-owner-ref
9.8.4. cert-manager 구성 요소에 대한 CPU 및 메모리 제한 덮어쓰기 링크 복사링크가 클립보드에 복사되었습니다!
cert-manager Operator for Red Hat OpenShift를 설치한 후 cert-manager 컨트롤러, CA 인젝터 및 Webhook와 같은 cert-manager 구성 요소에 대한 cert-manager Operator for Red Hat OpenShift API에서 CPU 및 메모리 제한을 구성할 수 있습니다.
사전 요구 사항
-
cluster-admin역할의 사용자로 OpenShift Container Platform 클러스터에 액세스할 수 있습니다. - Red Hat OpenShift용 cert-manager Operator 버전 1.12.0 이상이 설치되어 있어야 합니다.
프로세스
다음 명령을 입력하여 cert-manager 컨트롤러, CA 인젝터 및 Webhook의 배포를 사용할 수 있는지 확인합니다.
$ oc get deployment -n cert-manager출력 예
NAME READY UP-TO-DATE AVAILABLE AGE cert-manager 1/1 1 1 53m cert-manager-cainjector 1/1 1 1 53m cert-manager-webhook 1/1 1 1 53mCPU 및 메모리 제한을 설정하기 전에 다음 명령을 입력하여 cert-manager 컨트롤러, CA 인젝터 및 Webhook의 기존 구성을 확인합니다.
$ oc get deployment -n cert-manager -o yaml출력 예
# ... metadata: name: cert-manager namespace: cert-manager # ... spec: template: spec: containers: - name: cert-manager-controller resources: {}1 # ... metadata: name: cert-manager-cainjector namespace: cert-manager # ... spec: template: spec: containers: - name: cert-manager-cainjector resources: {}2 # ... metadata: name: cert-manager-webhook namespace: cert-manager # ... spec: template: spec: containers: - name: cert-manager-webhook resources: {}3 # ...cert-manager 컨트롤러, CA 인젝터 및 Webhook에 대한 CPU 및 메모리 제한을 구성하려면 다음 명령을 입력합니다.
$ oc patch certmanager.operator cluster --type=merge -p=" spec: controllerConfig: overrideResources: limits:1 cpu: 200m2 memory: 64Mi3 requests:4 cpu: 10m5 memory: 16Mi6 webhookConfig: overrideResources: limits:7 cpu: 200m8 memory: 64Mi9 requests:10 cpu: 10m11 memory: 16Mi12 cainjectorConfig: overrideResources: limits:13 cpu: 200m14 memory: 64Mi15 requests:16 cpu: 10m17 memory: 16Mi18 "- 1
- cert-manager 컨트롤러 Pod의 단일 컨테이너에서 요청할 수 있는 최대 CPU 및 메모리 양을 정의합니다.
- 2 5
- cert-manager 컨트롤러 Pod에서 요청할 수 있는 CPU 제한을 지정할 수 있습니다. 기본값은
10m입니다. - 3 6
- cert-manager 컨트롤러 Pod에서 요청할 수 있는 메모리 제한을 지정할 수 있습니다. 기본값은
32Mi입니다. - 4
- cert-manager 컨트롤러 Pod에 대한 스케줄러에서 설정한 CPU 및 메모리 양을 정의합니다.
- 7
- CA 인젝터 Pod의 단일 컨테이너에서 요청할 수 있는 최대 CPU 및 메모리 양을 정의합니다.
- 8 11
- CA 인젝터 Pod에서 요청할 수 있는 CPU 제한을 지정할 수 있습니다. 기본값은
10m입니다. - 9 12
- CA 인젝터 Pod에서 요청할 수 있는 메모리 제한을 지정할 수 있습니다. 기본값은
32Mi입니다. - 10
- CA 인젝터 Pod에 대한 스케줄러에서 설정한 CPU 및 메모리 양을 정의합니다.
- 13
- Webhook Pod의 단일 컨테이너에서 요청할 수 있는 최대 CPU 및 메모리 양을 정의합니다.
- 14 17
- Webhook Pod에서 요청할 수 있는 CPU 제한을 지정할 수 있습니다. 기본값은
10m입니다. - 15 18
- Webhook Pod에서 요청할 수 있는 메모리 제한을 지정할 수 있습니다. 기본값은
32Mi입니다. - 16
- Webhook Pod에 대한 스케줄러에서 설정한 CPU 및 메모리 양을 정의합니다.
출력 예
certmanager.operator.openshift.io/cluster patched
검증
cert-manager 구성 요소에 대해 CPU 및 메모리 제한이 업데이트되었는지 확인합니다.
$ oc get deployment -n cert-manager -o yaml출력 예
# ... metadata: name: cert-manager namespace: cert-manager # ... spec: template: spec: containers: - name: cert-manager-controller resources: limits: cpu: 200m memory: 64Mi requests: cpu: 10m memory: 16Mi # ... metadata: name: cert-manager-cainjector namespace: cert-manager # ... spec: template: spec: containers: - name: cert-manager-cainjector resources: limits: cpu: 200m memory: 64Mi requests: cpu: 10m memory: 16Mi # ... metadata: name: cert-manager-webhook namespace: cert-manager # ... spec: template: spec: containers: - name: cert-manager-webhook resources: limits: cpu: 200m memory: 64Mi requests: cpu: 10m memory: 16Mi # ...