9.5. cert-manager Operator API 필드 사용자 정의


환경 변수 및 인수를 재정의하여 Red Hat OpenShift API 필드에 대한 cert-manager Operator를 사용자 지정할 수 있습니다.

주의

지원되지 않는 인수를 재정의하려면 CertManager 리소스에 spec.unsupportedConfigOverrides 섹션을 추가할 수 있지만 spec.unsupportedConfigOverrides 를 사용하는 것은 지원되지 않습니다.

9.5.1. cert-manager Operator API에서 환경 변수를 재정의하여 cert-manager 사용자 정의

CertManager 리소스에 spec.controllerConfig 섹션을 추가하여 cert-manager Operator for Red Hat OpenShift에 대해 지원되는 환경 변수를 덮어쓸 수 있습니다.

사전 요구 사항

  • cluster-admin 역할의 사용자로 OpenShift Container Platform 클러스터에 액세스할 수 있습니다.

프로세스

  1. 다음 명령을 실행하여 CertManager 리소스를 편집합니다.

    $ oc edit certmanager cluster
  2. 다음 덮어쓰기 인수가 포함된 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
    1 2
    &lt ;proxy_url&gt;을 프록시 서버 URL로 바꿉니다.
    3
    & lt;ignore_proxy_domains&gt;를 쉼표로 구분된 도메인 목록으로 바꿉니다. 이러한 도메인은 프록시 서버에서 무시합니다.
  3. 변경 사항을 저장하고 텍스트 편집기를 종료하여 변경 사항을 적용합니다.

검증

  1. 다음 명령을 실행하여 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

  2. 다음 명령을 실행하여 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.5.2. cert-manager Operator API에서 인수를 재정의하여 cert-manager 사용자 정의

CertManager 리소스에 spec.controllerConfig 섹션을 추가하여 cert-manager Operator에 대해 지원되는 인수를 덮어쓸 수 있습니다.

사전 요구 사항

  • cluster-admin 역할의 사용자로 OpenShift Container Platform 클러스터에 액세스할 수 있습니다.

프로세스

  1. 다음 명령을 실행하여 CertManager 리소스를 편집합니다.

    $ oc edit certmanager cluster
  2. 다음 덮어쓰기 인수가 포함된 spec.controllerConfig 섹션을 추가합니다.

    apiVersion: operator.openshift.io/v1alpha1
    kind: CertManager
    metadata:
      name: cluster
      ...
    spec:
      ...
      controllerConfig:
        overrideArgs:
          - '--dns01-recursive-nameservers=<server_address>' 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 > (예: 1.1.1.1:53 )로 지정하거나 HTTPS(DoH)를 통해 DNS를 사용할 수 있습니다(예: https://1.1.1.1/dns-query ).
    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 인수를 사용해야 합니다.
    참고

    DoH(DNS over HTTPS)는 cert-manager Operator for Red Hat OpenShift 버전 1.13.0 이상에서만 지원됩니다.

  3. 변경 사항을 저장하고 텍스트 편집기를 종료하여 변경 사항을 적용합니다.

검증

  • 다음 명령을 실행하여 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.5.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 이상이 설치되어 있어야 합니다.

프로세스

  1. 다음 명령을 실행하여 Certificate 오브젝트 및 해당 시크릿을 사용할 수 있는지 확인합니다.

    $ oc get certificate

    출력 예

    NAME                                             READY   SECRET                                           AGE
    certificate-from-clusterissuer-route53-ambient   True    certificate-from-clusterissuer-route53-ambient   8h

  2. 다음 명령을 실행하여 CertManager 리소스를 편집합니다.

    $ oc edit certmanager cluster
  3. 다음 덮어쓰기 인수가 포함된 spec.controllerConfig 섹션을 추가합니다.

    apiVersion: operator.openshift.io/v1alpha1
    kind: CertManager
    metadata:
      name: cluster
    # ...
    spec:
    # ...
      controllerConfig:
        overrideArgs:
          - '--enable-certificate-owner-ref'
  4. 변경 사항을 저장하고 텍스트 편집기를 종료하여 변경 사항을 적용합니다.

검증

  • 다음 명령을 실행하여 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.5.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 이상이 설치되어 있어야 합니다.

프로세스

  1. 다음 명령을 입력하여 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           53m

  2. CPU 및 메모리 제한을 설정하기 전에 다음 명령을 입력하여 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
    # ...

    1 2 3
    spec.resources 필드는 기본적으로 비어 있습니다. cert-manager 구성 요소에는 CPU 및 메모리 제한이 없습니다.
  3. cert-manager 컨트롤러, CA 인젝터 및 Webhook에 대한 CPU 및 메모리 제한을 구성하려면 다음 명령을 입력합니다.

    $ oc patch certmanager.operator cluster --type=merge -p="
    spec:
      controllerConfig:
        overrideResources:
          limits: 1
            cpu: 200m 2
            memory: 64Mi 3
          requests: 4
            cpu: 10m 5
            memory: 16Mi 6
      webhookConfig:
        overrideResources:
          limits: 7
            cpu: 200m 8
            memory: 64Mi 9
          requests: 10
            cpu: 10m 11
            memory: 16Mi 12
      cainjectorConfig:
        overrideResources:
          limits: 13
            cpu: 200m 14
            memory: 64Mi 15
          requests: 16
            cpu: 10m 17
            memory: 16Mi 18
    "
    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

검증

  1. 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
    # ...

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.