9.7. Red Hat OpenShift용 cert-manager Operator와 Istio-CSR 통합
cert-manager Operator for Red Hat OpenShift에 대한 Istio-CSR 통합은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
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.7.1. cert-manager Operator for Red Hat OpenShift를 통해 Istio-CSR 에이전트 설치
9.7.1.1. Istio-CSR 기능 활성화
cert-manager Operator for Red Hat OpenShift에서 Istio-CSR 기능을 활성화하려면 다음 절차를 사용하십시오.
사전 요구 사항
-
cluster-admin
역할의 사용자로 클러스터에 액세스할 수 있어야 합니다.
프로세스
다음 명령을 실행하여 Red Hat OpenShift용 cert-manager Operator 배포를 업데이트하여 구성 맵을 사용합니다.
$ oc -n cert-manager-operator patch subscription openshift-cert-manager-operator --type='merge' -p '{"spec":{"config":{"env":[{"name":"UNSUPPORTED_ADDON_FEATURES","value":"IstioCSR=true"}]}}}'
검증
다음 명령을 실행하여 배포 롤아웃이 완료되었는지 확인합니다.
$ oc rollout status deployment/cert-manager-operator-controller-manager -n cert-manager-operator
출력 예
deployment "cert-manager-operator-controller-manager" successfully rolled out
9.7.1.2. Istio-CSR 에이전트에 대한 루트 CA 발행자 생성
이 절차를 사용하여 Istio-CSR 에이전트에 대한 루트 CA 발행자를 생성합니다.
지원되지 않는 ACME 발행자를 제외하고 지원되는 다른 발급자를 사용할 수 있습니다. 자세한 내용은 "cert-manager Operator for Red Hat OpenShift issuer providers"를 참조하십시오.
Issuer
및Certificate
오브젝트를 정의하는 YAML 파일(예:issuer.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 --- kind: Issuer metadata: name: istio-ca namespace: <istio_project_name> 4 spec: ca: secretName: istio-ca
검증
다음 명령을 실행하여 Issuer가 생성되고 사용할 준비가 되었는지 확인합니다.
$ oc get issuer istio-ca -n <istio_project_name>
출력 예
NAME READY AGE istio-ca True 3m
9.7.1.3. IstioCSR
사용자 정의 리소스 생성
cert-manager Operator for Red Hat OpenShift를 통해 Istio-CSR 에이전트를 설치하려면 다음 절차를 사용하십시오.
사전 요구 사항
-
cluster-admin
권한이 있는 클러스터에 액세스할 수 있습니다. - Istio-CSR 기능을 활성화했습니다.
Istio-CSR 에이전트의 인증서를 생성하는 데 필요한 발급자 또는
Cluster
리소스를 생성했습니다.Issuer
참고Issuer
Istiod
네임스페이스에서 발급자 및인증서
리소스를 생성합니다. 인증서 요청은 동일한 네임스페이스에 생성되고 이에 따라 RBAC(역할 기반 액세스 제어)가 구성됩니다.
프로세스
다음 명령을 실행하여 Istio-CSR을 설치하기 위한 새 프로젝트를 생성합니다. 기존 프로젝트를 사용하여 이 단계를 건너뛸 수 있습니다.
$ oc new-project <istio_csr_project_name>
IstioCSR
사용자 정의 리소스를 생성하여 Istio 워크로드 및 컨트롤 플레인 인증서 서명 요청을 처리하기 위해 cert-manager Operator for Red Hat OpenShift에서 관리하는 Istio-CSR 에이전트를 활성화합니다.참고한 번에 하나의
IstioCSR
CR(사용자 정의 리소스)만 지원됩니다. 여러IstioCSR
CR이 생성되면 하나만 활성화됩니다.IstioCSR
의status
하위 리소스를 사용하여 리소스가 처리되지 않았는지 확인합니다.-
여러
IstioCSR
CR이 동시에 생성되는 경우 처리되지 않습니다. -
여러
IstioCSR
CR이 순차적으로 생성되는 경우 첫 번째 CSR CR만 처리됩니다. -
새 요청이 거부되지 않도록 하려면 처리되지 않은
IstioCSR
CR을 삭제합니다. -
Operator는
IstioCSR
용으로 생성된 오브젝트를 자동으로 제거하지 않습니다. 활성IstioCSR
리소스가 삭제되고 이전 배포를 제거하지 않고 다른 네임스페이스에서 새 리소스가 생성되면 여러istio-csr
배포가 활성 상태로 유지될 수 있습니다. 이 동작은 권장되지 않으며 지원되지 않습니다.
IstioCSR
오브젝트를 정의하는 YAML 파일(예:istiocsr.yaml
)을 생성합니다.IstioCSR.yaml
파일 예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-system
다음 명령을 실행하여
IstioCSR
사용자 지정 리소스를 생성합니다.$ oc create -f IstioCSR.yaml
-
여러
검증
다음 명령을 실행하여 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
다음 명령을 실행하여 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.7.2. cert-manager Operator for Red Hat OpenShift에서 관리하는 Istio-CSR 에이전트 설치 제거
cert-manager Operator for Red Hat OpenShift에서 관리하는 Istio-CSR 에이전트를 제거하려면 다음 절차를 사용하십시오.
사전 요구 사항
-
cluster-admin
권한이 있는 클러스터에 액세스할 수 있습니다. - Istio-CSR 기능을 활성화했습니다.
-
IstioCSR
사용자 정의 리소스를 생성했습니다.
프로세스
다음 명령을 실행하여
IstioCSR
사용자 정의 리소스를 제거합니다.$ oc -n <istio-csr_project_name> delete istiocsrs.operator.openshift.io default
관련 리소스를 제거합니다.
중요Red Hat OpenShift Service Mesh 또는 Istio 구성 요소가 중단되지 않도록 하려면 다음 리소스를 제거하기 전에 Istio-CSR 서비스 또는 Istio에 발행된 인증서를 참조하는 구성 요소가 없는지 확인합니다.
다음 명령을 실행하여 클러스터 scoped-resources를 나열하고 나중에 참조할 수 있도록 나열된 리소스의 이름을 저장합니다.
$ oc get clusterrolebindings,clusterroles -l "app=cert-manager-istio-csr,app.kubernetes.io/name=cert-manager-istio-csr"
다음 명령을 실행하여 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>
다음 명령을 실행하고 나중에 참조할 수 있도록 나열된 리소스의 이름을 저장하여 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>
이전 단계에서 나열된 각 리소스에 대해 다음 명령을 실행하여 리소스를 삭제합니다.
$ oc -n <istio_csr_project_name> delete <resource_type>/<resource_name>
관련 리소스가 모두 삭제될 때까지 이 프로세스를 반복합니다.
9.7.3. Istio-CSR 기능이 활성화된 cert-manager Operator for Red Hat OpenShift 업그레이드
Istio-CSR TechPreview 기능 게이트가 활성화되면 Operator를 업그레이드할 수 없습니다. 사용 가능한 다음 버전에 사용하려면 cert-manager Operator for Red Hat OpenShift를 제거하고 모든 Istio-CSR 리소스를 다시 설치해야 합니다.