9.6. cert-manager Operator for Red Hat OpenShift 인증
클라우드 인증 정보를 구성하여 클러스터에서 cert-manager Operator for Red Hat OpenShift를 인증할 수 있습니다.
9.6.1. AWS에서 인증 링크 복사링크가 클립보드에 복사되었습니다!
사전 요구 사항
- Red Hat OpenShift용 cert-manager Operator 버전 1.11.1 이상이 설치되어 있어야 합니다.
- mint 또는 passthrough 모드에서 작동하도록 Cloud Credential Operator를 구성했습니다.
프로세스
다음과 같이
CredentialsRequest
리소스 YAML 파일을 생성합니다(예:sample-credential-request.yaml
).Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
CredentialsRequest
리소스를 생성합니다.oc create -f sample-credential-request.yaml
$ oc create -f sample-credential-request.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 cert-manager Operator for Red Hat OpenShift의 서브스크립션 오브젝트를 업데이트합니다.
oc -n cert-manager-operator patch subscription openshift-cert-manager-operator --type=merge -p '{"spec":{"config":{"env":[{"name":"CLOUD_CREDENTIALS_SECRET_NAME","value":"aws-creds"}]}}}'
$ oc -n cert-manager-operator patch subscription openshift-cert-manager-operator --type=merge -p '{"spec":{"config":{"env":[{"name":"CLOUD_CREDENTIALS_SECRET_NAME","value":"aws-creds"}]}}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 실행하여 재배포된 cert-manager 컨트롤러 Pod의 이름을 가져옵니다.
oc get pods -l app.kubernetes.io/name=cert-manager -n cert-manager
$ oc get pods -l app.kubernetes.io/name=cert-manager -n cert-manager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE cert-manager-bd7fbb9fc-wvbbt 1/1 Running 0 15m39s
NAME READY STATUS RESTARTS AGE cert-manager-bd7fbb9fc-wvbbt 1/1 Running 0 15m39s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 cert-manager 컨트롤러 Pod가
mountPath
에 지정된 경로에 마운트된 AWS 인증 정보 볼륨으로 업데이트되었는지 확인합니다.oc get -n cert-manager pod/<cert-manager_controller_pod_name> -o yaml
$ oc get -n cert-manager pod/<cert-manager_controller_pod_name> -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.6.2. AWS 보안 토큰 서비스로 인증 링크 복사링크가 클립보드에 복사되었습니다!
사전 요구 사항
-
ccoctl
바이너리를 추출하여 준비했습니다. - 수동 모드에서 Cloud Credential Operator를 사용하여 AWS STS를 사용하여 OpenShift Container Platform 클러스터를 구성했습니다.
프로세스
다음 명령을 실행하여
CredentialsRequest
리소스 YAML 파일을 저장할 디렉터리를 생성합니다.mkdir credentials-request
$ mkdir credentials-request
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 yaml을 적용하여
credentials-request
디렉터리(예:sample-credential-request.yaml
)에CredentialsRequest
리소스 YAML 파일을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow ccoctl
툴을 사용하여 다음 명령을 실행하여CredentialsRequest
오브젝트를 처리합니다.ccoctl aws create-iam-roles \ --name <user_defined_name> --region=<aws_region> \ --credentials-requests-dir=<path_to_credrequests_dir> \ --identity-provider-arn <oidc_provider_arn> --output-dir=<path_to_output_dir>
$ ccoctl aws create-iam-roles \ --name <user_defined_name> --region=<aws_region> \ --credentials-requests-dir=<path_to_credrequests_dir> \ --identity-provider-arn <oidc_provider_arn> --output-dir=<path_to_output_dir>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
2023/05/15 18:10:34 Role arn:aws:iam::XXXXXXXXXXXX:role/<user_defined_name>-cert-manager-aws-creds created 2023/05/15 18:10:34 Saved credentials configuration to: <path_to_output_dir>/manifests/cert-manager-aws-creds-credentials.yaml 2023/05/15 18:10:35 Updated Role policy for Role <user_defined_name>-cert-manager-aws-creds
2023/05/15 18:10:34 Role arn:aws:iam::XXXXXXXXXXXX:role/<user_defined_name>-cert-manager-aws-creds created 2023/05/15 18:10:34 Saved credentials configuration to: <path_to_output_dir>/manifests/cert-manager-aws-creds-credentials.yaml 2023/05/15 18:10:35 Updated Role policy for Role <user_defined_name>-cert-manager-aws-creds
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 단계에서 사용할 출력에서 <
aws_role_arn
>을 복사합니다. For example,"arn:aws:iam::XXXXXXXXXXXX:role/<user_defined_name>-cert-manager-aws-creds"
다음 명령을 실행하여
eks.amazonaws.com/role-arn="<aws_role_arn>"
주석을 서비스 계정에 추가합니다.oc -n cert-manager annotate serviceaccount cert-manager eks.amazonaws.com/role-arn="<aws_role_arn>"
$ oc -n cert-manager annotate serviceaccount cert-manager eks.amazonaws.com/role-arn="<aws_role_arn>"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 새 Pod를 생성하려면 다음 명령을 실행하여 기존 cert-manager 컨트롤러 Pod를 삭제합니다.
oc delete pods -l app.kubernetes.io/name=cert-manager -n cert-manager
$ oc delete pods -l app.kubernetes.io/name=cert-manager -n cert-manager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow AWS 인증 정보는 1분 이내에 새 cert-manager 컨트롤러 Pod에 적용됩니다.
검증
다음 명령을 실행하여 업데이트된 cert-manager 컨트롤러 Pod의 이름을 가져옵니다.
oc get pods -l app.kubernetes.io/name=cert-manager -n cert-manager
$ oc get pods -l app.kubernetes.io/name=cert-manager -n cert-manager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE cert-manager-bd7fbb9fc-wvbbt 1/1 Running 0 39s
NAME READY STATUS RESTARTS AGE cert-manager-bd7fbb9fc-wvbbt 1/1 Running 0 39s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 AWS 인증 정보가 업데이트되었는지 확인합니다.
oc set env -n cert-manager po/<cert_manager_controller_pod_name> --list
$ oc set env -n cert-manager po/<cert_manager_controller_pod_name> --list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
pods/cert-manager-57f9555c54-vbcpg, container cert-manager-controller POD_NAMESPACE from field path metadata.namespace
# pods/cert-manager-57f9555c54-vbcpg, container cert-manager-controller # POD_NAMESPACE from field path metadata.namespace AWS_ROLE_ARN=XXXXXXXXXXXX AWS_WEB_IDENTITY_TOKEN_FILE=/var/run/secrets/eks.amazonaws.com/serviceaccount/token
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.6.3. GCP에서 인증 링크 복사링크가 클립보드에 복사되었습니다!
사전 요구 사항
- Red Hat OpenShift용 cert-manager Operator 버전 1.11.1 이상이 설치되어 있어야 합니다.
- mint 또는 passthrough 모드에서 작동하도록 Cloud Credential Operator를 구성했습니다.
프로세스
다음 yaml을 적용하여
sample-credential-request.yaml
과 같은CredentialsRequest
리소스 YAML 파일을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고dns.admin
역할은 Google Cloud DNS 리소스를 관리하기 위해 서비스 계정에 대한 관리자 권한을 제공합니다. cert-manager가 최소 권한이 있는 서비스 계정으로 실행되도록 다음 권한을 사용하여 사용자 지정 역할을 생성할 수 있습니다.-
dns.resourceRecordSets.*
-
dns.changes.*
-
dns.managedZones.list
-
다음 명령을 실행하여
CredentialsRequest
리소스를 생성합니다.oc create -f sample-credential-request.yaml
$ oc create -f sample-credential-request.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 cert-manager Operator for Red Hat OpenShift의 서브스크립션 오브젝트를 업데이트합니다.
oc -n cert-manager-operator patch subscription openshift-cert-manager-operator --type=merge -p '{"spec":{"config":{"env":[{"name":"CLOUD_CREDENTIALS_SECRET_NAME","value":"gcp-credentials"}]}}}'
$ oc -n cert-manager-operator patch subscription openshift-cert-manager-operator --type=merge -p '{"spec":{"config":{"env":[{"name":"CLOUD_CREDENTIALS_SECRET_NAME","value":"gcp-credentials"}]}}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 실행하여 재배포된 cert-manager 컨트롤러 Pod의 이름을 가져옵니다.
oc get pods -l app.kubernetes.io/name=cert-manager -n cert-manager
$ oc get pods -l app.kubernetes.io/name=cert-manager -n cert-manager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE cert-manager-bd7fbb9fc-wvbbt 1/1 Running 0 15m39s
NAME READY STATUS RESTARTS AGE cert-manager-bd7fbb9fc-wvbbt 1/1 Running 0 15m39s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 cert-manager 컨트롤러 Pod가
mountPath
에 지정된 경로에 마운트된 GCP 인증 정보 볼륨으로 업데이트되었는지 확인합니다.oc get -n cert-manager pod/<cert-manager_controller_pod_name> -o yaml
$ oc get -n cert-manager pod/<cert-manager_controller_pod_name> -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.6.4. GCP 워크로드 ID로 인증 링크 복사링크가 클립보드에 복사되었습니다!
사전 요구 사항
-
ccoctl
바이너리를 추출하여 준비합니다. - Red Hat OpenShift용 cert-manager Operator 버전 1.11.1 이상이 설치되어 있어야 합니다.
- 수동 모드에서 Cloud Credential Operator를 사용하여 GCP 워크로드 ID로 OpenShift Container Platform 클러스터를 구성했습니다.
프로세스
다음 명령을 실행하여
CredentialsRequest
리소스 YAML 파일을 저장할 디렉터리를 생성합니다.mkdir credentials-request
$ mkdir credentials-request
Copy to Clipboard Copied! Toggle word wrap Toggle overflow credentials-request
디렉터리에서 다음CredentialsRequest
매니페스트가 포함된 YAML 파일을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고dns.admin
역할은 Google Cloud DNS 리소스를 관리하기 위해 서비스 계정에 대한 관리자 권한을 제공합니다. cert-manager가 최소 권한이 있는 서비스 계정으로 실행되도록 다음 권한을 사용하여 사용자 지정 역할을 생성할 수 있습니다.-
dns.resourceRecordSets.*
-
dns.changes.*
-
dns.managedZones.list
-
ccoctl
툴을 사용하여 다음 명령을 실행하여CredentialsRequest
오브젝트를 처리합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 명령 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 클러스터의 매니페스트 디렉터리에 생성된 보안을 적용합니다.
ls <path_to_output_dir>/manifests/*-credentials.yaml | xargs -I{} oc apply -f {}
$ ls <path_to_output_dir>/manifests/*-credentials.yaml | xargs -I{} oc apply -f {}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 cert-manager Operator for Red Hat OpenShift의 서브스크립션 오브젝트를 업데이트합니다.
oc -n cert-manager-operator patch subscription openshift-cert-manager-operator --type=merge -p '{"spec":{"config":{"env":[{"name":"CLOUD_CREDENTIALS_SECRET_NAME","value":"gcp-credentials"}]}}}'
$ oc -n cert-manager-operator patch subscription openshift-cert-manager-operator --type=merge -p '{"spec":{"config":{"env":[{"name":"CLOUD_CREDENTIALS_SECRET_NAME","value":"gcp-credentials"}]}}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 실행하여 재배포된 cert-manager 컨트롤러 Pod의 이름을 가져옵니다.
oc get pods -l app.kubernetes.io/name=cert-manager -n cert-manager
$ oc get pods -l app.kubernetes.io/name=cert-manager -n cert-manager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE cert-manager-bd7fbb9fc-wvbbt 1/1 Running 0 15m39s
NAME READY STATUS RESTARTS AGE cert-manager-bd7fbb9fc-wvbbt 1/1 Running 0 15m39s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 cert-manager 컨트롤러 Pod가
mountPath
에 지정된 경로에 마운트된 GCP 워크로드 ID 인증 정보 볼륨으로 업데이트되었는지 확인합니다.oc get -n cert-manager pod/<cert-manager_controller_pod_name> -o yaml
$ oc get -n cert-manager pod/<cert-manager_controller_pod_name> -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow