6.3. Azure Stack Hub의 IAM 수동 생성
클라우드 ID 및 액세스 관리(IAM) API에 연결할 수 없는 환경에서는 클러스터를 설치하기 전에 CCO(Cloud Credential Operator)를 수동 모드로 설정해야 합니다.
6.3.1. kube-system 프로젝트에 관리자 수준 시크릿을 저장하는 대안
CCO(Cloud Credential Operator)는 클라우드 공급자 인증 정보를 Kubernetes CRD(사용자 지정 리소스 정의)로 관리합니다. install-config.yaml
파일에서 credentialsMode
매개변수의 다른 값을 설정하여 조직의 보안 요구 사항에 맞게 CCO를 구성할 수 있습니다.
추가 리소스
- 사용 가능한 모든 CCO 인증 정보 모드 및 지원되는 플랫폼에 대한 자세한 내용은 Cloud Credential Operator 정보를 참조하십시오.
6.3.2. 수동으로 IAM 생성
CCO(Cloud Credential Operator)는 수동 모드에서만 클라우드 공급자를 지원합니다. 따라서 클라우드 공급자에 대한 IAM(ID 및 액세스 관리) 보안을 지정해야 합니다.
절차
설치 프로그램이 포함된 디렉터리로 변경하고 다음 명령을 실행하여
install-config.yaml
파일을 생성합니다.$ openshift-install create install-config --dir <installation_directory>
여기서
<installation_directory>
는 설치 프로그램이 파일을 생성하는 디렉터리입니다.install-config.yaml
구성 파일을 편집하여credentialsMode
매개 변수가Manual
로 설정되도록 합니다.install-config.yaml
설정 파일 예apiVersion: v1 baseDomain: cluster1.example.com credentialsMode: Manual 1 compute: - architecture: amd64 hyperthreading: Enabled ...
- 1
- 이 행은
credentialsMode
매개변수를Manual
로 설정하기 위해 추가됩니다.
매니페스트를 생성하려면 설치 프로그램이 포함된 디렉터리에서 다음 명령을 실행합니다.
$ openshift-install create manifests --dir <installation_directory>
여기서
<installation_directory>
는 설치 프로그램이 파일을 생성하는 디렉터리입니다.설치 프로그램이 포함된 디렉터리에서 다음 명령을 실행하여
openshift-install
바이너리가 사용하도록 빌드된 OpenShift Container Platform 릴리스 이미지에 대한 세부 정보를 가져옵니다.$ openshift-install version
출력 예
release image quay.io/openshift-release-dev/ocp-release:4.y.z-x86_64
다음 명령을 실행하여 배포 중인 클라우드를 대상으로 하는 이 릴리스 이미지에서 모든
CredentialsRequest
오브젝트를 찾습니다.$ oc adm release extract quay.io/openshift-release-dev/ocp-release:4.y.z-x86_64 \ --credentials-requests \ --cloud=azure
이 명령을 수행하면 각
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: AzureProviderSpec roleBindings: - role: Contributor ...
이전에 생성한
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: AzureProviderSpec roleBindings: - role: Contributor ... secretRef: name: <component-secret> namespace: <component-namespace> ...
샘플
Secret
오브젝트apiVersion: v1 kind: Secret metadata: name: <component-secret> namespace: <component-namespace> data: azure_subscription_id: <base64_encoded_azure_subscription_id> azure_client_id: <base64_encoded_azure_client_id> azure_client_secret: <base64_encoded_azure_client_secret> azure_tenant_id: <base64_encoded_azure_tenant_id> azure_resource_prefix: <base64_encoded_azure_resource_prefix> azure_resourcegroup: <base64_encoded_azure_resourcegroup> azure_region: <base64_encoded_azure_region>
수동으로 유지 관리되는 인증 정보를 사용하는 클러스터를 업그레이드하기 전에 CCO가 업그레이드 가능한 상태인지 확인해야 합니다. 자세한 내용은 클라우드 공급자에 대한 설치 콘텐츠의 "수동으로 유지 관리되는 인증 정보를 사용하여 클러스터 업그레이드" 섹션을 참조하십시오.
6.3.3. 수동으로 유지 관리되는 인증 정보로 클러스터 업그레이드
CCO(Cloud Credential Operator) 수동으로 유지 관리되는 인증 정보가 있는 클러스터의 Upgradable
상태는 기본적으로 False
입니다.
-
마이너 릴리스(예: 4.8에서 4.9로)의 경우 이 상태는 업데이트된 권한을 처리하고
CloudCredential
리소스에 주석을 달아 권한이 다음 버전에 필요에 따라 업데이트되었음을 나타낼 때까지 업그레이드되지 않도록 합니다. 이 주석은Upgradable
상태를True
로 변경합니다. - 예를 들어 4.9.0에서 4.9.1으로 z-stream 릴리스의 경우 권한이 추가되거나 변경되지 않으므로 업그레이드가 차단되지 않습니다.
수동으로 유지 관리되는 인증 정보로 클러스터를 업그레이드하기 전에 업그레이드할 릴리스 이미지에 대한 새 인증 정보를 생성해야 합니다. 또한 기존 인증 정보에 필요한 권한을 검토하고 해당 구성 요소에 대한 새 릴리스에 새 권한 요구 사항을 수용해야 합니다.
프로세스
새 릴리스에 대한
CredentialsRequest
사용자 지정 리소스를 추출하고 검사합니다.클라우드 공급자용 설치 콘텐츠의 "수동으로 IAM 생성" 섹션에서는 클라우드에 필요한 인증 정보를 획득하고 사용하는 방법을 설명합니다.
클러스터에서 수동으로 유지 관리되는 인증 정보를 업데이트합니다.
-
새 릴리스 이미지에서 추가한
CredentialsRequest
사용자 정의 리소스에 대한 새 시크릿을 생성합니다. -
시크릿에 저장된 기존 인증 정보에 대한
CredentialsRequest
사용자 정의 리소스가 권한 요구 사항이 변경된 경우 필요에 따라 권한을 업데이트합니다.
-
새 릴리스 이미지에서 추가한
모든 보안이 새 릴리스에 대해 올바른 경우 클러스터를 업그레이드할 준비가 되었음을 나타냅니다.
-
cluster-admin
역할의 사용자로 OpenShift Container Platform CLI에 로그인합니다. CloudCredential
리소스를 편집하여metadata
필드 내에upgradeable-to
주석을 추가합니다.$ oc edit cloudcredential cluster
추가할 텍스트
... metadata: annotations: cloudcredential.openshift.io/upgradeable-to: <version_number> ...
여기서
<version_number>
는x.y.z
형식으로 업그레이드할 버전입니다. 예를 들어 OpenShift Container Platform 4.8.2 의 경우4.8.2
입니다.주석을 추가한 후 업그레이드 가능 상태가 변경되는 데 몇 분이 소요될 수 있습니다.
-
CCO를 업그레이드할 수 있는지 확인합니다.
-
웹 콘솔의 관리자 화면에서 관리자
클러스터 설정으로 이동합니다. - CCO 상태 세부 정보를 보려면 Cluster Operators 목록에서 cloud-credential을 클릭합니다.
-
Conditions 섹션의 Upgradeable 상태가 False인 경우
upgradeable-to 주석
에 오타 오류가 없는지 확인합니다.
-
웹 콘솔의 관리자 화면에서 관리자
Conditions 섹션의 Upgradeable 상태가 True 이면 OpenShift Container Platform 업그레이드를 시작할 수 있습니다.
6.3.4. 다음 단계
- ARM 템플릿을 사용하여 Azure Stack Hub에 클러스터 설치에 따라 사용자 프로비저닝 인프라가 있는 Azure Stack Hub에 OpenShift Container Platform 클러스터를 설치합니다.