6.8. kube-system 프로젝트에 관리자 수준 시크릿을 저장하는 대안
기본적으로 관리자 시크릿은 kube-system 프로젝트에 저장됩니다. install-config.yaml 파일에서 credentialsMode 매개변수를 Manual 로 구성한 경우 다음 대안 중 하나를 사용해야 합니다.
- 장기 클라우드 인증 정보를 수동으로 관리하려면 수동으로 장기 인증 정보를 생성하는 절차를 따르십시오.
- 개별 구성 요소의 클러스터 외부에서 관리되는 단기 인증 정보를 구현하려면 AWS 클러스터 구성 절차에 따라 단기 인증 정보를 사용합니다.
6.8.1. 수동으로 장기 인증 정보 생성 링크 복사링크가 클립보드에 복사되었습니다!
Cloud Credential Operator (CCO)는 클라우드 아이덴티티 및 액세스 관리 (IAM) API에 연결할 수 없는 환경에서 설치하기 전에 수동 모드로 전환할 수 있습니다. 또는 관리자가 클러스터 kube-system 네임 스페이스에 관리자 수준의 인증 정보 시크릿을 저장하지 않도록 합니다.
프로세스
install-config.yaml구성 파일의credentialsMode매개변수를Manual로 설정하지 않은 경우 다음과 같이 값을 수정합니다.구성 파일 스니펫 샘플
apiVersion: v1 baseDomain: example.com credentialsMode: Manual # ...이전에 설치 매니페스트 파일을 생성하지 않은 경우 다음 명령을 실행하여 수행합니다.
$ openshift-install create manifests --dir <installation_directory>여기서
<installation_directory>는 설치 프로그램이 파일을 생성하는 디렉터리입니다.다음 명령을 실행하여 설치 파일의 릴리스 이미지로
$RELEASE_IMAGE변수를 설정합니다.$ RELEASE_IMAGE=$(./openshift-install version | awk '/release image/ {print $3}')다음 명령을 실행하여 OpenShift Container Platform 릴리스 이미지에서
CredentialsRequestCR(사용자 정의 리소스) 목록을 추출합니다.$ oc adm release extract \ --from=$RELEASE_IMAGE \ --credentials-requests \ --included \1 --install-config=<path_to_directory_with_installation_configuration>/install-config.yaml \2 --to=<path_to_directory_for_credentials_requests>3 - 1
--included매개변수에는 특정 클러스터 구성에 필요한 매니페스트만 포함됩니다.- 2
install-config.yaml파일의 위치를 지정합니다.- 3
CredentialsRequest오브젝트를 저장할 디렉터리의 경로를 지정합니다. 지정된 디렉터리가 없으면 이 명령이 이를 생성합니다.이 명령을 수행하면 각
CredentialsRequest오브젝트에 대해 YAML 파일이 생성됩니다.샘플
CredentialsRequest개체apiVersion: cloudcredential.openshift.io/v1 kind: CredentialsRequest metadata: name: <component_credentials_request> namespace: openshift-cloud-credential-operator ... spec: providerSpec: apiVersion: cloudcredential.openshift.io/v1 kind: AWSProviderSpec statementEntries: - effect: Allow action: - iam:GetUser - iam:GetUserPolicy - iam:ListAccessKeys resource: "*" ...
이전에 생성한
openshift-install매니페스트 디렉터리에 시크릿 YAML 파일을 만듭니다. 시크릿은 각CredentialsRequest오브젝트의spec.secretRef에 정의된 네임 스페이스 및 시크릿 이름을 사용하여 저장해야 합니다.보안이 포함된 샘플
CredentialsRequest오브젝트apiVersion: cloudcredential.openshift.io/v1 kind: CredentialsRequest metadata: name: <component_credentials_request> namespace: openshift-cloud-credential-operator ... spec: providerSpec: apiVersion: cloudcredential.openshift.io/v1 kind: AWSProviderSpec statementEntries: - effect: Allow action: - s3:CreateBucket - s3:DeleteBucket resource: "*" ... secretRef: name: <component_secret> namespace: <component_namespace> ...샘플
Secret오브젝트apiVersion: v1 kind: Secret metadata: name: <component_secret> namespace: <component_namespace> data: aws_access_key_id: <base64_encoded_aws_access_key_id> aws_secret_access_key: <base64_encoded_aws_secret_access_key>
수동으로 유지 관리되는 인증 정보를 사용하는 클러스터를 업그레이드하기 전에 CCO가 업그레이드 가능한 상태인지 확인해야 합니다.