9.10. Red Hat OpenShift용 cert-manager Operator와 Istio-CSR 통합


cert-manager Operator for Red Hat OpenShift는 Red Hat OpenShift Service Mesh 또는 Istio에서 워크로드 및 컨트롤 플레인 구성 요소를 보호하기 위한 향상된 지원을 제공합니다. 여기에는 cert-manager 발행자를 사용하여 서명, 전달 및 갱신되는 상호 TLS(mTLS)를 활성화하는 인증서 지원이 포함됩니다. cert-manager Operator for Red Hat OpenShift 관리 Istio-CSR 에이전트를 사용하여 Istio 워크로드 및 컨트롤 플레인 구성 요소를 보호할 수 있습니다.

이 Istio-CSR 통합을 통해 Istio는 이제 Red Hat OpenShift용 cert-manager Operator에서 인증서를 가져와 보안 및 인증서 관리를 단순화할 수 있습니다.

9.10.1. cert-manager Operator for Red Hat OpenShift를 통해 Istio-CSR 에이전트 설치

9.10.1.1. Istio-CSR 에이전트에 대한 루트 CA 발행자 생성

이 절차를 사용하여 Istio-CSR 에이전트에 대한 루트 CA 발행자를 생성합니다.

참고

지원되지 않는 ACME 발행자를 제외하고 지원되는 다른 발급자를 사용할 수 있습니다. 자세한 내용은 "cert-manager Operator for Red Hat OpenShift issuer providers"를 참조하십시오.

프로세스

  1. IssuerCertificate 오브젝트를 정의하는 YAML 파일을 생성합니다.

    issuer.yaml 파일 예

    apiVersion: cert-manager.io/v1
    kind: Issuer 
    1
    
    metadata:
      name: selfsigned
      namespace: <istio_project_name> 
    2
    
    spec:
      selfSigned: {}
    ---
    apiVersion: cert-manager.io/v1
    kind: Certificate
    metadata:
      name: istio-ca
      namespace: <istio_project_name>
    spec:
      isCA: true
      duration: 87600h # 10 years
      secretName: istio-ca
      commonName: istio-ca
      privateKey:
        algorithm: ECDSA
        size: 256
      subject:
        organizations:
          - cluster.local
          - cert-manager
      issuerRef:
        name: selfsigned
        kind: Issuer 
    3
    
        group: cert-manager.io
    ---
    apiVersion: cert-manager.io/v1
    kind: Issuer 
    4
    
    metadata:
      name: istio-ca
      namespace: <istio_project_name> 
    5
    
    spec:
      ca:
        secretName: istio-ca

    1 3 4
    발급자 또는 Cluster Issuer 를 지정합니다.
    2 5
    Istio 프로젝트의 이름을 지정합니다.

검증

  • 다음 명령을 실행하여 Issuer가 생성되고 사용할 준비가 되었는지 확인합니다.

    $ oc get issuer istio-ca -n <istio_project_name>

    출력 예

    NAME       READY   AGE
    istio-ca   True    3m

9.10.1.2. IstioCSR 사용자 정의 리소스 생성

cert-manager Operator for Red Hat OpenShift를 통해 Istio-CSR 에이전트를 설치하려면 다음 절차를 사용하십시오.

사전 요구 사항

  • cluster-admin 권한이 있는 클러스터에 액세스할 수 있습니다.
  • Istio-CSR 기능을 활성화했습니다.
  • Istio-CSR 에이전트의 인증서를 생성하는 데 필요한 발급자 또는 Cluster Issuer 리소스를 생성했습니다.

    참고

    Issuer 리소스를 사용하는 경우 Red Hat OpenShift Service Mesh 또는 Istiod 네임스페이스에서 발급자 및 인증서 리소스를 생성합니다. 인증서 요청은 동일한 네임스페이스에 생성되고 이에 따라 RBAC(역할 기반 액세스 제어)가 구성됩니다.

프로세스

  1. 다음 명령을 실행하여 Istio-CSR을 설치하기 위한 새 프로젝트를 생성합니다. Istio-CSR을 설치하기 위한 기존 프로젝트가 있는 경우 이 단계를 건너뜁니다.

    $ oc new-project <istio_csr_project_name>
  2. IstioCSR 사용자 정의 리소스를 생성하여 Istio 워크로드 및 컨트롤 플레인 인증서 서명 요청을 처리하기 위해 cert-manager Operator for Red Hat OpenShift에서 관리하는 Istio-CSR 에이전트를 활성화합니다.

    참고

    한 번에 하나의 IstioCSR CR(사용자 정의 리소스)만 지원됩니다. 여러 IstioCSR CR이 생성되면 하나만 활성화됩니다. IstioCSRstatus 하위 리소스를 사용하여 리소스가 처리되지 않았는지 확인합니다.

    • 여러 IstioCSR CR이 동시에 생성되는 경우 처리되지 않습니다.
    • 여러 IstioCSR CR이 순차적으로 생성되는 경우 첫 번째 CSR CR만 처리됩니다.
    • 새 요청이 거부되지 않도록 하려면 처리되지 않은 IstioCSR CR을 삭제합니다.
    • Operator는 IstioCSR 용으로 생성된 오브젝트를 자동으로 제거하지 않습니다. 활성 IstioCSR 리소스가 삭제되고 이전 배포를 제거하지 않고 다른 네임스페이스에서 새 리소스가 생성되면 여러 istio-csr 배포가 활성 상태로 유지될 수 있습니다. 이 동작은 권장되지 않으며 지원되지 않습니다.
    1. IstioCSR 오브젝트를 정의하는 YAML 파일을 생성합니다.

      IstioCSR CR의 예

      apiVersion: operator.openshift.io/v1alpha1
      kind: IstioCSR
      metadata:
        name: default
        namespace: <istio_csr_project_name>
      spec:
        istioCSRConfig:
          certManager:
            issuerRef:
              name: istio-ca  
      1
      
              kind: Issuer 
      2
      
              group: cert-manager.io
          istiodTLSConfig:
            trustDomain: cluster.local
          istio:
            namespace: <istio_project_name>

      1
      발급자 또는 Cluster Issuer 이름을 지정합니다. issuer.yaml 파일에 정의된 CA 발행자와 동일해야 합니다.
      2
      발급자 또는 Cluster Issuer 유형을 지정합니다. issuer.yaml 파일에 정의된 CA 발행자와 동일해야 합니다.
    2. 다음 명령을 실행하여 IstioCSR 사용자 지정 리소스를 생성합니다.

      $ oc create -f IstioCSR.yaml

검증

  1. 다음 명령을 실행하여 Istio-CSR 배포가 준비되었는지 확인합니다.

    $ oc get deployment -n <istio_csr_project_name>

    출력 예

    NAME                     READY   UP-TO-DATE   AVAILABLE   AGE
    cert-manager-istio-csr   1/1     1            1           24s

  2. 다음 명령을 실행하여 Istio-CSR 포드가 실행 중인지 확인합니다.

    $ oc get pod -n <istio_csr_project_name>

    출력 예

    NAME                                  	 READY   STATUS	  RESTARTS    AGE
    cert-manager-istio-csr-5c979f9b7c-bv57w  1/1     Running  0           45s

    • 다음 명령을 실행하여 Istio-CSR Pod에서 로그에 오류를 보고하지 않는지 확인합니다.

      $ oc -n <istio_csr_project_name> logs <istio_csr_pod_name>
    • 다음 명령을 실행하여 cert-manager Operator for Red Hat OpenShift Pod가 오류를 보고하지 않는지 확인합니다.

      $ oc -n cert-manager-operator logs <cert_manager_operator_pod_name>

9.10.2. IstioCSR 사용자 정의 리소스 사용자 정의

IstioCSR CR(사용자 정의 리소스)을 수정하여 Istio 워크로드가 cert-manager Operator와 상호 작용하는 방식을 정의할 수 있습니다.

9.10.2.1. istio-csr 구성 요소의 로그 수준 설정

istio-csr 구성 요소의 로그 수준을 설정하여 로그 메시지의 상세 정보 표시 및 형식을 제어할 수 있습니다.

사전 요구 사항

  • cluster-admin 권한이 있는 클러스터에 액세스할 수 있습니다.
  • IstioCSR CR(사용자 정의 리소스)을 생성했습니다.

프로세스

  1. 다음 명령을 실행하여 IstioCSR CR을 편집합니다.

    oc edit istiocsrs.operator.openshift.io default -n <istio_csr_project_name> 
    1
    1
    & lt;istio_csr_project_name >을 IstioCSR CR을 생성한 네임스페이스로 바꿉니다.
  2. spec.istioCSRConfig 섹션에서 로그 수준 및 형식을 구성합니다.

    로그 수준을 설정하기 위한 샘플 IstioCSR CR 구성

    apiVersion: operator.openshift.io/v1alpha1
    kind: IstioCSR
    ...
    spec:
      istioCSRConfig:
        logFormat: text 
    1
    
        logLevel: 2 
    2
    
    # ...

    1
    로그 출력 형식을 지정합니다. 이 필드를 text 또는 json 으로 설정할 수 있습니다.
    2
    로그 수준을 설정합니다. 지원되는 값은 Kubernetes 로깅 지침에 정의된 대로 1~5 범위에 있습니다. 기본값은 1 입니다.
  3. 편집기를 저장하고 종료하여 변경 사항을 적용합니다. 변경 사항이 적용되면 cert-manager Operator에서 istio-csr 피연산자의 로그 구성을 업데이트합니다.

9.10.2.2. CA 번들 배포를 위한 네임스페이스 선택기 구성

Istio-CSR 에이전트는 CA 번들이 포함된 istio-ca-root-cert ConfigMap 을 생성하고 업데이트합니다. 서비스 메시의 워크로드는 이 CA 번들을 사용하여 Istio 컨트롤 플레인에 대한 연결을 검증합니다. Istio-CSR 에이전트가 이 ConfigMap 을 생성하는 네임스페이스를 지정하도록 네임스페이스 선택기를 구성할 수 있습니다. 선택기를 구성하지 않으면 Istio-CSR 에이전트가 모든 네임스페이스에 ConfigMap 을 생성합니다.

사전 요구 사항

  • cluster-admin 권한이 있는 클러스터에 액세스할 수 있습니다.
  • IstioCSR CR(사용자 정의 리소스)을 생성했습니다.

프로세스

  1. 다음 명령을 실행하여 IstioCSR CR을 편집합니다.

    oc edit istiocsrs.operator.openshift.io default -n <istio_csr_project_name> 
    1
    1
    & lt;istio_csr_project_name >을 IstioCSR CR을 생성한 네임스페이스로 바꿉니다.
  2. spec.istioCSRConfig.istioDataPlaneNamespaceSelector 섹션을 구성하여 네임스페이스 선택기를 설정합니다.

    네임스페이스 선택기를 사용한 IstioCSR CR 구성 샘플

    apiVersion: operator.openshift.io/v1alpha1
    kind: IstioCSR
    ...
    spec:
      istioCSRConfig:
        istioDataPlaneNamespaceSelector: maistra.io/member-of=istio-system 
    1
    
    # ...

    1
    maistra.io/member-of=istio-system 을 서비스 메시의 네임스페이스를 식별하는 라벨 키와 값으로 교체합니다. < key>=<value& gt; 형식을 사용합니다.
    참고

    istio-csr 구성 요소는 구성된 선택기와 일치하지 않는 네임스페이스에서 ConfigMap 오브젝트를 삭제하거나 관리하지 않습니다. IstioCSR CR을 배포한 후 선택기를 생성하거나 업데이트하거나 네임스페이스에서 레이블을 제거하는 경우 충돌을 방지하기 위해 이러한 ConfigMap 오브젝트를 수동으로 삭제해야 합니다.

    다음 명령을 실행하여 선택기와 일치하는 네임스페이스에 없는 ConfigMap 오브젝트를 나열할 수 있습니다. 이 예에서 선택기는 maistra.io/member-of=istio-system:입니다.

    printf "%-25s %10s\n" "ConfigMap" "Namespace"; \
    for ns in $(oc get namespaces -l "maistra.io/member-of!=istio-system" -o=jsonpath='{.items[*].metadata.name}'); do \
      oc get configmaps -l "istio.io/config=true" -n $ns --no-headers -o jsonpath='{.items[*].metadata.name}{"\t"}{.items[*].metadata.namespace}{"\n"}' --ignore-not-found; \
    done
  3. 편집기를 저장하고 종료하여 변경 사항을 적용합니다. 변경 사항을 적용한 후 cert-manager Operator for Red Hat OpenShift는 istio-csr 피연산자의 네임스페이스 선택기 구성을 업데이트합니다.

9.10.2.3. Istio 서버의 CA 인증서 구성

Istio 워크로드에서 Istio 서버 인증서를 확인하는 데 사용하는 CA 번들이 포함된 ConfigMap 을 구성할 수 있습니다. 구성되지 않은 경우 cert-manager Operator for Red Hat OpenShift는 구성된 발행자 및 Istio 인증서가 포함된 Kubernetes Secret에서 CA 인증서를 찾습니다.

사전 요구 사항

  • cluster-admin 권한이 있는 클러스터에 액세스할 수 있습니다.
  • IstioCSR CR(사용자 정의 리소스)을 생성했습니다.

프로세스

  1. 다음 명령을 실행하여 IstioCSR CR을 편집합니다.

    oc edit istiocsrs.operator.openshift.io default -n <istio_csr_project_name> 
    1
    1
    & lt;istio_csr_project_name >을 IstioCSR CR을 생성한 네임스페이스로 바꿉니다.
  2. spec.istioCSRConfig.certManager 섹션을 편집하여 CA 번들을 구성합니다.

    CA 번들 구성이 포함된 샘플 IstioCSR CR

    apiVersion: operator.openshift.io/v1alpha1
    kind: IstioCSR
    ...
    spec:
      istioCSRConfig:
        certManager:
          istioCACertificate:
            key: <key_in_the_configmap> 
    1
    
            name: <configmap_name> 
    2
    
            namespace: <configmap_namespace> 
    3

    1
    CA 번들이 포함된 ConfigMap 에 키 이름을 지정합니다.
    2
    ConfigMap 의 이름을 지정합니다. 이 필드를 업데이트하기 전에 참조된 ConfigMap 및 키가 있는지 확인합니다.
    3
    선택 사항: ConfigMap 이 존재하는 네임스페이스를 지정합니다. 이 필드를 설정하지 않으면 cert-manager Operator for Red Hat OpenShift는 IstioCSR CR을 설치한 네임스페이스에서 ConfigMap 을 검색합니다.
    참고

    CA 인증서가 교체될 때마다 최신 인증서로 ConfigMap 을 수동으로 업데이트해야 합니다.

  3. 편집기를 저장하고 종료하여 변경 사항을 적용합니다. 변경 사항이 적용되면 cert-manager Operator에서 istio-csr 피연산자의 CA 번들을 업데이트합니다.

cert-manager Operator for Red Hat OpenShift에서 관리하는 Istio-CSR 에이전트를 제거하려면 다음 절차를 사용하십시오.

사전 요구 사항

  • cluster-admin 권한이 있는 클러스터에 액세스할 수 있습니다.
  • Istio-CSR 기능을 활성화했습니다.
  • IstioCSR 사용자 정의 리소스를 생성했습니다.

프로세스

  1. 다음 명령을 실행하여 IstioCSR 사용자 정의 리소스를 제거합니다.

    $ oc -n <istio_csr_project_name> delete istiocsrs.operator.openshift.io default
  2. 관련 리소스를 제거합니다.

    중요

    Red Hat OpenShift Service Mesh 또는 Istio 구성 요소가 중단되지 않도록 하려면 다음 리소스를 제거하기 전에 Istio-CSR 서비스 또는 Istio에 발행된 인증서를 참조하는 구성 요소가 없는지 확인합니다.

    1. 다음 명령을 실행하여 클러스터 scoped-resources를 나열하고 나중에 참조할 수 있도록 나열된 리소스의 이름을 저장합니다.

      $ oc get clusterrolebindings,clusterroles -l "app=cert-manager-istio-csr,app.kubernetes.io/name=cert-manager-istio-csr"
    2. 다음 명령을 실행하여 Istio-csr 배포된 네임스페이스의 리소스를 나열하고 나중에 참조할 수 있도록 나열된 리소스의 이름을 저장합니다.

      $ oc get certificate,deployments,services,serviceaccounts -l "app=cert-manager-istio-csr,app.kubernetes.io/name=cert-manager-istio-csr" -n <istio_csr_project_name>
    3. 다음 명령을 실행하고 나중에 참조할 수 있도록 나열된 리소스의 이름을 저장하여 Red Hat OpenShift Service Mesh 또는 Istio 배포된 네임스페이스의 리소스를 나열합니다.

      $ oc get roles,rolebindings -l "app=cert-manager-istio-csr,app.kubernetes.io/name=cert-manager-istio-csr" -n <istio_csr_project_name>
    4. 이전 단계에서 나열된 각 리소스에 대해 다음 명령을 실행하여 리소스를 삭제합니다.

      $ oc -n <istio_csr_project_name> delete <resource_type>/<resource_name>

      관련 리소스가 모두 삭제될 때까지 이 프로세스를 반복합니다.

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동