19.3. passthrough 모드 사용
Pssthrough 모드는 AWS(Amazon Web Services), Microsoft Azure, GCP(Google Cloud Platform), RHOSP(Red Hat OpenStack Platform), RHV(Red Hat Virtualization) 및 VMware vSphere에서 지원됩니다.
Passthrough 모드에서 CCO(Cloud Credential Operator)는 제공된 클라우드 인증 정보를 클라우드 인증 정보를 요청하는 구성 요소에 전달합니다. 인증 정보에는 설치를 수행하고 클러스터의 구성 요소에 필요한 작업을 완료할 수 있는 권한이 있어야 하지만 새 인증 정보를 생성할 필요가 없습니다. CCO는 passthrough 모드로 추가 제한된 범위 인증 정보를 생성하지 않습니다.
수동 모드는 Microsoft Azure Stack Hub에서 지원되는 유일한 CCO 구성입니다.
19.3.1. Passthrough 모드 권한 요구사항
Passthrough 모드에서 CCO를 사용하는 경우 제공한 인증 정보가 OpenShift Container Platform을 실행 중이거나 설치하는 클라우드의 요구 사항을 충족하는지 확인하십시오. 제공된 인증 정보에서 CCO가 CredentialsRequest
CR을 생성하는 구성 요소에 충분하지 않으면 구성 요소가 권한이 없는 API를 호출하려고 할 때 오류를 보고합니다.
19.3.1.1. AWS(Amazon Web Services) 권한
AWS에서 passthrough 모드로 제공하는 인증 정보에는 실행 또는 설치 중인 OpenShift Container Platform 버전에 필요한 모든 CredentialsRequest
CR에 대한 요청된 권한이 있어야 합니다.
필요한 CredentialsRequest
CR을 찾으려면 AWS용 IAM을 수동으로 생성을 참조하십시오.
19.3.1.2. Microsoft Azure 권한
Azure에서 passthrough 모드에 제공하는 인증 정보에는 실행 중 또는 설치 중인 OpenShift Container Platform 버전에 필요한 모든 CredentialsRequest
CR에 대한 요청된 권한이 있어야 합니다.
필요한 CredentialsRequest
CR을 찾으려면 Azure용 IAM을 수동으로 생성을 참조하십시오.
19.3.1.3. GCP(Google Cloud Platform) 권한
GCP에서 passthrough 모드로 제공하는 인증 정보에는 실행 중 또는 설치 중인 OpenShift Container Platform 버전에 필요한 모든 CredentialsRequest
CR에 대한 요청된 권한이 있어야 합니다.
필요한 CredentialsRequest
CR을 찾으려면 GCP용 IAM을 수동으로 생성을 참조하십시오.
19.3.1.4. RHOSP(Red Hat OpenStack Platform) 권한
RHOSP에 OpenShift Container Platform 클러스터를 설치하려면 CCO에 member
사용자 역할의 권한이 있는 인증 정보가 필요합니다.
19.3.1.5. RHV(Red Hat Virtualization) 권한
RHV에 OpenShift Container Platform 클러스터를 설치하려면 CCO에 다음 권한이 있는 인증 정보가 필요합니다.
-
DiskOperator
-
DiskCreator
-
UserTemplateBasedVm
-
TemplateOwner
-
TemplateCreator
-
OpenShift Container Platform 배포를 대상으로 하는 특정 클러스터의
ClusterAdmin
19.3.1.6. VMware vSphere 권한
VMware vSphere에 OpenShift Container Platform 클러스터를 설치하려면 CCO에 다음 vSphere 권한이 있는 인증 정보가 필요합니다.
카테고리 | 권한 |
---|---|
데이터 저장소 | 공간 할당 |
폴더 | 폴더 생성, 폴더 삭제 |
vSphere 태그 지정 | 모든 권한 |
네트워크 | 네트워크 할당 |
리소스 이름 | 리소스 풀에 가상 머신 할당 |
프로필 중심 스토리지 | 모든 권한 |
vApp | 모든 권한 |
가상 머신 | 모든 권한 |
19.3.2. 관리자 인증 정보 루트 시크릿 형식
각 클라우드 공급자는 규칙에 따라 kube-system
네임 스페이스의 인증 정보 루트 시크릿을 사용하며, 이를 통해 모든 인증 정보 요청을 충족하고 해당 암호를 만드는 데 사용됩니다. 이 작업은 mint 모드를 사용하여 새 인증 정보를 생성하거나 패스스루 모드를 사용하여 인증 정보 루트 시크릿을 복사하여 수행됩니다.
시크릿의 형식은 클라우드에 따라 다르며 각 CredentialsRequest
시크릿에도 사용됩니다.
Amazon Web Services (AWS) 시크릿 형식
apiVersion: v1 kind: Secret metadata: namespace: kube-system name: aws-creds stringData: aws_access_key_id: <base64-encoded_access_key_id> aws_secret_access_key: <base64-encoded_secret_access_key>
Microsoft Azure 시크릿 형식
apiVersion: v1 kind: Secret metadata: namespace: kube-system name: azure-credentials stringData: azure_subscription_id: <base64-encoded_subscription_id> azure_client_id: <base64-encoded_client_id> azure_client_secret: <base64-encoded_client_secret> azure_tenant_id: <base64-encoded_tenant_id> azure_resource_prefix: <base64-encoded_resource_prefix> azure_resourcegroup: <base64-encoded_resource_group> azure_region: <base64-encoded_region>
Microsoft Azure에서 인증 정보 시크릿 형식에는 각 클러스터 설치에 대해 임의로 생성된 클러스터의 인프라 ID를 포함해야 하는 두 가지 속성이 포함되어 있습니다. 이 값은 매니페스트 생성을 실행한 후에 찾을 수 있습니다.
$ cat .openshift_install_state.json | jq '."*installconfig.ClusterID".InfraID' -r
출력 예
mycluster-2mpcn
이 값은 다음과 같이 시크릿 데이터에 사용됩니다.
azure_resource_prefix: mycluster-2mpcn azure_resourcegroup: mycluster-2mpcn-rg
Google Cloud Platform (GCP) 시크릿 형식
apiVersion: v1 kind: Secret metadata: namespace: kube-system name: gcp-credentials stringData: service_account.json: <base64-encoded_service_account>
RHOSP(Red Hat OpenStack Platform) 시크릿 형식
apiVersion: v1 kind: Secret metadata: namespace: kube-system name: openstack-credentials data: clouds.yaml: <base64-encoded_cloud_creds> clouds.conf: <base64-encoded_cloud_creds_init>
RHV(Red Hat Virtualization) 시크릿 형식
apiVersion: v1 kind: Secret metadata: namespace: kube-system name: ovirt-credentials data: ovirt_url: <base64-encoded_url> ovirt_username: <base64-encoded_username> ovirt_password: <base64-encoded_password> ovirt_insecure: <base64-encoded_insecure> ovirt_ca_bundle: <base64-encoded_ca_bundle>
VMware vSphere 시크릿 형식
apiVersion: v1 kind: Secret metadata: namespace: kube-system name: vsphere-creds data: vsphere.openshift.example.com.username: <base64-encoded_username> vsphere.openshift.example.com.password: <base64-encoded_password>
19.3.3. Passthrough 모드 인증 정보 유지 관리
클러스터가 업그레이드되어 CredentialsRequest
CR이 시간이 지남에 따라 변경되는 경우 요구사항을 충족하도록 passthrough 모드 인증 정보를 수동으로 업데이트해야 합니다. 업그레이드 중 인증 정보 문제가 발생하지 않도록 하려면 업그레이드 전에 새 OpenShift Container Platform 버전에 대해 릴리스 이미지의 CredentialsRequest
CR을 확인하십시오. 클라우드 공급자에 필요한 CredentialsRequest
CR을 찾으려면 AWS,Azure 또는 GCP 용 IAM 수동 생성을 참조하십시오.
19.3.3.1. 클라우드 공급자 인증 정보를 수동으로 교체
어떠한 이유로 클라우드 공급자 인증 정보가 변경되면 CCO(Cloud Credential Operator)에서 클라우드 공급자 인증 정보를 관리하기 위해 사용하는 시크릿을 수동으로 업데이트해야 합니다.
클라우드 인증 정보를 교체하는 프로세스는 CCO가 사용하도록 구성된 모드에 따라 달라집니다. Mint 모드를 사용하는 클러스터의 인증 정보를 교체한 후 삭제된 인증 정보를 통해 생성된 구성 요소 인증 정보를 수동으로 제거해야 합니다.
사전 요구 사항
클러스터는 다음을 사용하는 CCO 모드로 클라우드 인증 정보 교체를 수동으로 지원하는 플랫폼에 설치됩니다.
- Passthrough 모드의 경우 AWS(Amazon Web Services), Microsoft Azure, GCP(Google Cloud Platform), RHOSP(Red Hat OpenStack Platform), RHV(Red Hat Virtualization) 및 VMware vSphere가 지원됩니다.
- 클라우드 공급자와 인터페이스에 사용되는 인증 정보를 변경했습니다.
- 새 인증 정보에는 클러스터에서 사용할 수 있도록 구성된 모드 CCO에 대한 충분한 권한이 있습니다.
절차
-
웹 콘솔의 Administrator 모드에서 Workloads
Secrets로 이동합니다. Secrets 페이지의 표에서 클라우드 공급자의 루트 시크릿을 찾습니다.
플랫폼 시크릿 이름 AWS
aws-creds
Azure
azure-credentials
GCP
gcp-credentials
RHOSP
openstack-credentials
RHV
ovirt-credentials
VMware vSphere
vsphere-creds
- 시크릿과 동일한 행에서 옵션 메뉴 를 클릭하고 시크릿 편집을 선택합니다.
- Value 필드의 내용을 기록합니다. 이 정보를 사용하여 인증서를 업데이트한 후 값이 다른지 확인할 수 있습니다.
- 클라우드 공급자에 대한 새로운 인증 정보를 사용하여 Value 필드의 텍스트를 업데이트한 다음 저장을 클릭합니다.
vSphere CSI Driver Operator가 활성화되어 있지 않은 vSphere 클러스터의 인증 정보를 업데이트하는 경우 Kubernetes 컨트롤러 관리자의 롤아웃을 강제 적용하여 업데이트된 인증 정보를 적용해야 합니다.
참고vSphere CSI Driver Operator가 활성화된 경우 이 단계가 필요하지 않습니다.
업데이트된 vSphere 인증 정보를 적용하려면 OpenShift Container Platform CLI에
cluster-admin
역할의 사용자로 로그인하고 다음 명령을 실행합니다.$ oc patch kubecontrollermanager cluster \ -p='{"spec": {"forceRedeploymentReason": "recovery-'"$( date )"'"}}' \ --type=merge
인증 정보가 출시되는 동안 Kubernetes Controller Manager Operator의 상태는
Progressing=true
로 보고합니다. 상태를 보려면 다음 명령을 실행합니다.$ oc get co kube-controller-manager
검증
인증 정보가 변경되었는지 확인하려면 다음을 수행하십시오.
-
웹 콘솔의 Administrator 모드에서 Workloads
Secrets로 이동합니다. - Value 필드의 내용이 변경되었는지 확인합니다.
추가 리소스
19.3.4. 설치 후 권한 감소
passthrough 모드를 사용할 때 각 구성 요소에는 다른 모든 구성 요소가 사용하는 것과 동일한 권한이 있습니다. 설치 후 권한을 줄이지 않으면 모든 구성 요소에 설치 프로그램 실행에 필요한 광범위한 권한이 있습니다.
설치 후 사용 중인 OpenShift Container Platform 버전에 대한 릴리스 이미지의 CredentialsRequest
CR에 정의된 대로 인증 정보의 권한을 클러스터를 실행하는 데 필요한 권한으로만 줄일 수 있습니다.
AWS, Azure 또는 GCP에 필요한 CredentialsRequest
CR을 찾고 CCO가 사용하는 권한을 변경하는 방법을 알아보려면 AWS,Azure 또는 GCP 용 IAM 수동 생성을 참조하십시오.