2.9. Nutanix의 IAM 구성
클러스터를 설치하려면 CCO(Cloud Credential Operator)가 수동 모드에서 작동해야 합니다. 설치 프로그램은 수동 모드에 대한 CCO를 구성하는 동안 ID 및 액세스 관리 보안을 지정해야 합니다.
사전 요구 사항
-
ccoctl
바이너리를 구성했습니다. -
install-config.yaml
파일이 있습니다.
프로세스
다음 형식으로 자격 증명 데이터가 포함된 YAML 파일을 생성합니다.
인증 정보 데이터 형식
credentials: - type: basic_auth 1 data: prismCentral: 2 username: <username_for_prism_central> password: <password_for_prism_central> prismElements: 3 - name: <name_of_prism_element> username: <username_for_prism_element> password: <password_for_prism_element>
다음 명령을 실행하여 설치 파일의 릴리스 이미지로
$RELEASE_IMAGE
변수를 설정합니다.$ RELEASE_IMAGE=$(./openshift-install version | awk '/release image/ {print $3}')
다음 명령을 실행하여 OpenShift Container Platform 릴리스 이미지에서
CredentialsRequest
CR(사용자 정의 리소스) 목록을 추출합니다.$ oc adm release extract \ --from=$RELEASE_IMAGE \ --credentials-requests \ --cloud=nutanix \ --to=<path_to_directory_with_list_of_credentials_requests>/credrequests 1
- 1
- 구성 요소
CredentialsRequests
오브젝트의 파일이 포함된 디렉터리의 경로를 지정합니다. 지정된 디렉터리가 없으면 이 명령이 이를 생성합니다.
샘플
CredentialsRequest
개체apiVersion: cloudcredential.openshift.io/v1 kind: CredentialsRequest metadata: annotations: include.release.openshift.io/self-managed-high-availability: "true" labels: controller-tools.k8s.io: "1.0" name: openshift-machine-api-nutanix namespace: openshift-cloud-credential-operator spec: providerSpec: apiVersion: cloudcredential.openshift.io/v1 kind: NutanixProviderSpec secretRef: name: nutanix-credentials namespace: openshift-machine-api
클러스터에서 클러스터 기능을 사용하여 하나 이상의 선택적 구성 요소를 비활성화하는 경우 비활성화된 구성 요소에 대한
CredentialsRequest
사용자 정의 리소스를 삭제합니다.Nutanix의 OpenShift Container Platform 4.12의
credrequests
디렉터리 콘텐츠 예0000_30_machine-api-operator_00_credentials-request.yaml 1
- 1
- Machine API Operator CR이 필요합니다.
다음 명령을 실행하여
credrequests
디렉터리의 모든CredentialsRequest
오브젝트를 처리하려면ccoctl
툴을 사용합니다.$ ccoctl nutanix create-shared-secrets \ --credentials-requests-dir=<path_to_directory_with_list_of_credentials_requests>/credrequests \1 --output-dir=<ccoctl_output_dir> \2 --credentials-source-filepath=<path_to_credentials_file> 3
- 1
- 구성 요소
CredentialsRequests
오브젝트의 파일이 포함된 디렉터리의 경로를 지정합니다. - 2
- 구성 요소 인증 정보 시크릿의 파일이 포함된 디렉터리를
manifests
디렉터리 아래에 지정합니다. 기본적으로ccoctl
툴은 명령이 실행되는 디렉터리에 오브젝트를 생성합니다. 다른 디렉터리에 오브젝트를 생성하려면--output-dir
플래그를 사용합니다. - 3
- 선택 사항: 인증 정보 데이터 YAML 파일이 포함된 디렉터리를 지정합니다. 기본적으로
ccoctl
은 이 파일이 <home_directory>/.nutanix/credentials
에 있을 것으로 예상합니다. 다른 디렉터리를 지정하려면--credentials-source-filepath
플래그를 사용합니다.
credentialsMode
매개변수가Manual
로 설정되도록install-config.yaml
구성 파일을 편집합니다.install-config.yaml
설정 파일 예apiVersion: v1 baseDomain: cluster1.example.com credentialsMode: Manual 1 ...
- 1
- 이 행을 추가하여
credentialsMode
매개변수를Manual
로 설정합니다.
다음 명령을 실행하여 설치 매니페스트를 생성합니다.
$ openshift-install create manifests --dir <installation_directory> 1
- 1
- 클러스터의
install-config.yaml
파일이 포함된 디렉터리의 경로를 지정합니다.
다음 명령을 실행하여 생성된 인증 정보 파일을 대상 매니페스트 디렉터리에 복사합니다.
$ cp <ccoctl_output_dir>/manifests/*credentials.yaml ./<installation_directory>/manifests
검증
매니페스트
디렉터리에 적절한 시크릿이 있는지 확인합니다.$ ls ./<installation_directory>/manifests
출력 예
total 64 -rw-r----- 1 <user> <user> 2335 Jul 8 12:22 cluster-config.yaml -rw-r----- 1 <user> <user> 161 Jul 8 12:22 cluster-dns-02-config.yml -rw-r----- 1 <user> <user> 864 Jul 8 12:22 cluster-infrastructure-02-config.yml -rw-r----- 1 <user> <user> 191 Jul 8 12:22 cluster-ingress-02-config.yml -rw-r----- 1 <user> <user> 9607 Jul 8 12:22 cluster-network-01-crd.yml -rw-r----- 1 <user> <user> 272 Jul 8 12:22 cluster-network-02-config.yml -rw-r----- 1 <user> <user> 142 Jul 8 12:22 cluster-proxy-01-config.yaml -rw-r----- 1 <user> <user> 171 Jul 8 12:22 cluster-scheduler-02-config.yml -rw-r----- 1 <user> <user> 200 Jul 8 12:22 cvo-overrides.yaml -rw-r----- 1 <user> <user> 118 Jul 8 12:22 kube-cloud-config.yaml -rw-r----- 1 <user> <user> 1304 Jul 8 12:22 kube-system-configmap-root-ca.yaml -rw-r----- 1 <user> <user> 4090 Jul 8 12:22 machine-config-server-tls-secret.yaml -rw-r----- 1 <user> <user> 3961 Jul 8 12:22 openshift-config-secret-pull-secret.yaml -rw------- 1 <user> <user> 283 Jul 8 12:24 openshift-machine-api-nutanix-credentials-credentials.yaml