8.7. cert-manager Operator for Red Hat OpenShift에 대한 송신 프록시 구성
클러스터 전체 송신 프록시가 OpenShift Container Platform에 구성된 경우 OLM(Operator Lifecycle Manager)은 클러스터 전체 프록시로 관리하는 Operator를 자동으로 구성합니다. OLM은 HTTP_PROXY
,HTTPS_PROXY
,NO_PROXY
환경 변수를 사용하여 모든 Operator의 배포를 자동으로 업데이트합니다.
cert-manager Operator for Red Hat OpenShift에 HTTPS 연결을 프록시하는 데 필요한 모든 CA 인증서를 삽입할 수 있습니다.
8.7.1. cert-manager Operator for Red Hat OpenShift용 사용자 정의 CA 인증서 삽입
OpenShift Container Platform 클러스터에 클러스터 전체 프록시가 활성화된 경우 cert-manager Operator for Red Hat OpenShift에 HTTPS 연결을 프록시하는 데 필요한 CA 인증서를 삽입할 수 있습니다.
사전 요구 사항
-
cluster-admin
역할의 사용자로 클러스터에 액세스할 수 있어야 합니다. - OpenShift Container Platform에 대해 클러스터 전체 프록시를 활성화했습니다.
프로세스
다음 명령을 실행하여
cert-manager
네임스페이스에 구성 맵을 생성합니다.$ oc create configmap trusted-ca -n cert-manager
다음 명령을 실행하여 OpenShift Container Platform에서 신뢰하는 CA 번들을 구성 맵에 삽입합니다.
$ oc label cm trusted-ca config.openshift.io/inject-trusted-cabundle=true -n cert-manager
다음 명령을 실행하여 Red Hat OpenShift용 cert-manager Operator 배포를 업데이트하여 구성 맵을 사용합니다.
$ oc -n cert-manager-operator patch subscription openshift-cert-manager-operator --type='merge' -p '{"spec":{"config":{"env":[{"name":"TRUSTED_CA_CONFIGMAP_NAME","value":"trusted-ca"}]}}}'
검증
다음 명령을 실행하여 배포 롤아웃이 완료되었는지 확인합니다.
$ oc rollout status deployment/cert-manager-operator-controller-manager -n cert-manager-operator && \ oc rollout status deployment/cert-manager -n cert-manager && \ oc rollout status deployment/cert-manager-webhook -n cert-manager && \ oc rollout status deployment/cert-manager-cainjector -n cert-manager
출력 예
deployment "cert-manager-operator-controller-manager" successfully rolled out deployment "cert-manager" successfully rolled out deployment "cert-manager-webhook" successfully rolled out deployment "cert-manager-cainjector" successfully rolled out
다음 명령을 실행하여 CA 번들이 볼륨으로 마운트되었는지 확인합니다.
$ oc get deployment cert-manager -n cert-manager -o=jsonpath={.spec.template.spec.'containers[0].volumeMounts'}
출력 예
[{"mountPath":"/etc/pki/tls/certs/cert-manager-tls-ca-bundle.crt","name":"trusted-ca","subPath":"ca-bundle.crt"}]
다음 명령을 실행하여 CA 번들의 소스가
trusted-ca
구성 맵인지 확인합니다.$ oc get deployment cert-manager -n cert-manager -o=jsonpath={.spec.template.spec.volumes}
출력 예
[{"configMap":{"defaultMode":420,"name":"trusted-ca"},"name":"trusted-ca"}]