6.3. Cloud Credential Operator 유틸리티를 사용하여 클라우드 공급자 리소스 업데이트
CCO 유틸리티(ccoctl
)를 사용하여 구성된 OpenShift Container Platform 클러스터를 업그레이드하는 프로세스는 설치 중에 클라우드 공급자 리소스를 생성하는 것과 유사합니다.
기본적으로 ccoctl
은 명령이 실행되는 디렉터리에 오브젝트를 생성합니다. 다른 디렉터리에 오브젝트를 생성하려면 --output-dir
플래그를 사용합니다. 이 절차에서는 & lt;path_to_ccoctl_output_dir
>을 사용하여 이 디렉터리를 참조합니다.
AWS 클러스터에서 일부 ccoctl
명령은 AWS API를 호출하여 AWS 리소스를 생성하거나 수정합니다. --dry-run
플래그를 사용하여 API 호출을 방지할 수 있습니다. 이 플래그를 사용하면 로컬 파일 시스템에 JSON 파일이 생성됩니다. JSON 파일을 검토 및 수정한 다음 --cli-input-json
매개변수를 사용하여 AWS CLI 툴로 적용할 수 있습니다.
전제 조건
- 업그레이드할 버전의 OpenShift Container Platform 릴리스 이미지를 가져옵니다.
-
릴리스 이미지에서
ccoctl
바이너리를 추출하고 준비합니다.
프로세스
다음 명령을 실행하여 OpenShift Container Platform 릴리스 이미지에서
CredentialsRequest
CR(사용자 정의 리소스) 목록을 추출합니다.$ oc adm release extract --credentials-requests \ --cloud=<provider_type> \ --to=<path_to_directory_with_list_of_credentials_requests>/credrequests \ quay.io/<path_to>/ocp-release:<version>
다음과 같습니다.
-
<provider_type
>은 클라우드 공급자의 값입니다. 유효한 값은alibabacloud
,aws
,gcp
,ibmcloud
,nutanix
입니다. -
credrequests
는CredentialsRequest
오브젝트 목록이 저장되는 디렉터리입니다. 이 명령은 디렉터리가 없는 경우 해당 디렉터리를 생성합니다.
-
릴리스 이미지의 각
CredentialsRequest
CR에 대해spec.secretRef.namespace
필드의 텍스트와 일치하는 네임스페이스가 클러스터에 있는지 확인합니다. 이 필드에는 인증 정보 구성을 보유하는 생성된 시크릿이 저장됩니다.샘플 AWS
CredentialsRequest
오브젝트apiVersion: cloudcredential.openshift.io/v1 kind: CredentialsRequest metadata: name: cloud-credential-operator-iam-ro 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: "*" secretRef: name: cloud-credential-operator-iam-ro-creds namespace: openshift-cloud-credential-operator 1
- 1
- 이 필드는 생성된 시크릿을 보유하기 위해 존재해야 하는 네임스페이스를 나타냅니다.
다른 플랫폼의
CredentialsRequest
CR에는 다른 플랫폼별 값이 있는 유사한 형식이 있습니다.클러스터에
spec.secretRef.namespace
에 지정된 이름이 있는 네임스페이스가 아직 없는CredentialsRequest
CR에 대해 다음 명령을 실행하여 네임스페이스를 생성합니다.$ oc create namespace <component_namespace>
ccoctl
툴을 사용하여 클라우드 공급자에 대한 명령을 실행하여credrequests
디렉터리의 모든CredentialsRequest
오브젝트를 처리합니다. 다음 명령은CredentialsRequest
오브젝트를 처리합니다.-
CloudEvent Cloud:
ccoctl alibabacloud create-ram-users
-
Amazon Web Services (AWS):
ccoctl aws create-iam-roles
-
GCP(Google Cloud Platform):
ccoctl gcp create-all
-
IBM Cloud:
ccoctl ibmcloud create-service-id
-
Nutanix:
ccoctl nutanix create-shared-secrets
중요필요한 인수 및 특수 고려 사항에 대한 중요한 플랫폼별 세부 사항은 클라우드 공급자의 설치 콘텐츠의
ccoctl
유틸리티 지침을 참조하십시오.각
CredentialsRequest
오브젝트에 대해ccoctl
은 OpenShift Container Platform 릴리스 이미지의 각CredentialsRequest
오브젝트에 정의된 대로 필요한 공급자 리소스 및 권한 정책을 생성합니다.-
CloudEvent Cloud:
다음 명령을 실행하여 클러스터에 보안을 적용합니다.
$ ls <path_to_ccoctl_output_dir>/manifests/*-credentials.yaml | xargs -I{} oc apply -f {}
검증
클라우드 공급자를 쿼리하여 필요한 공급자 리소스 및 권한 정책이 생성되었는지 확인할 수 있습니다. 자세한 내용은 역할 또는 서비스 계정 나열에 대한 클라우드 공급자 설명서를 참조하십시오.
다음 단계
-
upgradeable-to
주석을 업데이트하여 클러스터를 업그레이드할 준비가 되었음을 나타냅니다.