14.2. CLI를 사용한 vSphere 설치 후 구성
플랫폼 통합 기능이 활성화된 vSphere의 지원 설치 관리자를 사용하여 OpenShift Container Platform 클러스터를 설치한 후 다음 vSphere 구성 설정을 수동으로 업데이트해야 합니다.
- vCenter 사용자 이름
- vCenter 암호
- vCenter 주소
- vCenter 클러스터
- 데이터 센터
- 데이터 저장소
- folder
사전 요구 사항
- 지원 설치 관리자에서 클러스터 설치를 성공적으로 완료했습니다.
- 클러스터가 console.redhat.com 에 연결되어 있습니다.
프로세스
vCenter의 base64로 인코딩된 사용자 이름 및 암호를 생성합니다.
$ echo -n "<vcenter_username>" | base64 -w0
<
;vcenter_username>
;을 vCenter 사용자 이름으로 바꿉니다.$ echo -n "<vcenter_password>" | base64 -w0
&
lt;vcenter_password>
;를 vCenter 암호로 바꿉니다.vSphere 인증 정보를 백업합니다.
$ oc get secret vsphere-creds -o yaml -n kube-system > creds_backup.yaml
vSphere 인증 정보를 편집합니다.
$ cp creds_backup.yaml vsphere-creds.yaml
$ vi vsphere-creds.yaml
apiVersion: v1 data: <vcenter_address>.username: <vcenter_username_encoded> <vcenter_address>.password: <vcenter_password_encoded> kind: Secret metadata: annotations: cloudcredential.openshift.io/mode: passthrough creationTimestamp: "2022-01-25T17:39:50Z" name: vsphere-creds namespace: kube-system resourceVersion: "2437" uid: 06971978-e3a5-4741-87f9-2ca3602f2658 type: Opaque
&
lt;vcenter_address>
;를 vCenter 주소로 바꿉니다. <vcenter_username_encoded&
gt;를 vSphere 사용자 이름의 base64 인코딩 버전으로 바꿉니다. <vcenter_password_encoded&
gt;를 vSphere 암호의 base64 인코딩 버전으로 바꿉니다.vSphere 인증 정보를 교체합니다.
$ oc replace -f vsphere-creds.yaml
kube-controller-manager Pod를 재배포합니다.
$ oc patch kubecontrollermanager cluster -p='{"spec": {"forceRedeploymentReason": "recovery-'"$( date --rfc-3339=ns )"'"}}' --type=merge
vSphere 클라우드 공급자 구성을 백업합니다.
$ oc get cm cloud-provider-config -o yaml -n openshift-config > cloud-provider-config_backup.yaml
클라우드 공급자 구성을 편집합니다.
$ cloud-provider-config_backup.yaml cloud-provider-config.yaml
$ vi cloud-provider-config.yaml
apiVersion: v1 data: config: | [Global] secret-name = "vsphere-creds" secret-namespace = "kube-system" insecure-flag = "1" [Workspace] server = "<vcenter_address>" datacenter = "<datacenter>" default-datastore = "<datastore>" folder = "/<datacenter>/vm/<folder>" [VirtualCenter "<vcenter_address>"] datacenters = "<datacenter>" kind: ConfigMap metadata: creationTimestamp: "2022-01-25T17:40:49Z" name: cloud-provider-config namespace: openshift-config resourceVersion: "2070" uid: 80bb8618-bf25-442b-b023-b31311918507
&
lt;vcenter_address>
;를 vCenter 주소로 바꿉니다. <datacenter
>를 데이터 센터 이름으로 바꿉니다. <datastore
>를 데이터 저장소 이름으로 바꿉니다. <folder&
gt;를 클러스터 VM이 포함된 폴더로 바꿉니다.클라우드 공급자 구성을 적용합니다.
$ oc apply -f cloud-provider-config.yaml
초기화되지 않은
테인트가 있는 노드에 테인트를 적용합니다.중요OpenShift Container Platform 4.13 이상을 설치하는 경우 9~12단계를 따르십시오.
테인트할 노드를 식별합니다.
$ oc get nodes
각 노드에 대해 다음 명령을 실행합니다.
$ oc adm taint node <node_name> node.cloudprovider.kubernetes.io/uninitialized=true:NoSchedule
&
lt;node_name
>을 노드 이름으로 바꿉니다.
예제
$ oc get nodes NAME STATUS ROLES AGE VERSION master-0 Ready control-plane,master 45h v1.26.3+379cd9f master-1 Ready control-plane,master 45h v1.26.3+379cd9f worker-0 Ready worker 45h v1.26.3+379cd9f worker-1 Ready worker 45h v1.26.3+379cd9f master-2 Ready control-plane,master 45h v1.26.3+379cd9f $ oc adm taint node master-0 node.cloudprovider.kubernetes.io/uninitialized=true:NoSchedule $ oc adm taint node master-1 node.cloudprovider.kubernetes.io/uninitialized=true:NoSchedule $ oc adm taint node master-2 node.cloudprovider.kubernetes.io/uninitialized=true:NoSchedule $ oc adm taint node worker-0 node.cloudprovider.kubernetes.io/uninitialized=true:NoSchedule $ oc adm taint node worker-1 node.cloudprovider.kubernetes.io/uninitialized=true:NoSchedule
인프라 구성을 백업합니다.
$ oc get infrastructures.config.openshift.io -o yaml > infrastructures.config.openshift.io.yaml.backup
인프라 구성을 편집합니다.
$ cp infrastructures.config.openshift.io.yaml.backup infrastructures.config.openshift.io.yaml
$ vi infrastructures.config.openshift.io.yaml
apiVersion: v1 items: - apiVersion: config.openshift.io/v1 kind: Infrastructure metadata: creationTimestamp: "2022-05-07T10:19:55Z" generation: 1 name: cluster resourceVersion: "536" uid: e8a5742c-6d15-44e6-8a9e-064b26ab347d spec: cloudConfig: key: config name: cloud-provider-config platformSpec: type: VSphere vsphere: failureDomains: - name: assisted-generated-failure-domain region: assisted-generated-region server: <vcenter_address> topology: computeCluster: /<data_center>/host/<vcenter_cluster> datacenter: <data_center> datastore: /<data_center>/datastore/<datastore> folder: "/<data_center>/path/to/folder" networks: - "VM Network" resourcePool: /<data_center>/host/<vcenter_cluster>/Resources zone: assisted-generated-zone nodeNetworking: external: {} internal: {} vcenters: - datacenters: - <data_center> server: <vcenter_address> kind: List metadata: resourceVersion: ""
&
lt;vcenter_address>
;를 vCenter 주소로 바꿉니다. <datacenter
>를 vCenter 데이터 센터의 이름으로 바꿉니다. <datastore&
gt;를 vCenter 데이터 저장소의 이름으로 바꿉니다. <folder&
gt;를 클러스터 VM이 포함된 폴더로 바꿉니다. <vcenter_cluster&
gt;를 OpenShift Container Platform이 설치된 vSphere vCenter 클러스터로 바꿉니다.인프라 구성을 적용합니다.
$ oc apply -f infrastructures.config.openshift.io.yaml --overwrite=true