14.2. CLI を使用した vSphere のインストール後の設定
プラットフォーム統合機能を有効にして、vSphere で Assisted Installer を使用して OpenShift Container Platform クラスターをインストールした後、以下の vSphere 設定を手動で更新する必要があります。
- vCenter ユーザー名
- vCenter パスワード
- vCenter アドレス
- vCenter クラスター
- datacenter
- datastore
- folder
前提条件
- Assisted Installer によってクラスターが正常にインストールされている。
- クラスターが console.redhat.com に接続されている。
手順
vCenter 用の base64 でエンコードされたユーザー名とパスワードを生成します。
$ echo -n "<vcenter_username>" | base64 -w0
<vcenter_username>
を vCenter ユーザー名に置き換えます。$ echo -n "<vcenter_password>" | base64 -w0
<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
<vcenter_address>
を vCenter アドレスに置き換えます。<vcenter_username_encoded>
を base64 でエンコードされたバージョンの vSphere ユーザー名に置き換えます。<vcenter_password_encoded>
を base64 でエンコードされたバージョンの vSphere パスワードに置き換えます。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
<vcenter_address>
を vCenter アドレスに置き換えます。<datacenter>
をデータセンターの名前に置き換えます。<datastore>
をデータストアの名前に置き換えます。<folder>
をクラスターの仮想マシンを含むフォルダーに置き換えます。クラウドプロバイダーの設定を適用します。
$ oc apply -f cloud-provider-config.yaml
uninitialized
テイントでノードをテイントします。重要OpenShift Container Platform 4.13 以降をインストールする場合は、ステップ 9 から 12 に従います。
テイントするノードを特定します。
$ oc get nodes
ノードごとに以下のコマンドを実行します。
$ oc adm taint node <node_name> node.cloudprovider.kubernetes.io/uninitialized=true:NoSchedule
<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: ""
<vcenter_address>
を vCenter アドレスに置き換えます。<datacenter>
を vCenter データセンターの名前に置き換えます。<datastore>
を vCenter データストアの名前に置き換えます。<folder>
をクラスターの仮想マシンを含むフォルダーに置き換えます。<vcenter_cluster>
を、OpenShift Container Platform がインストールされている vSphere vCenter クラスターに置き換えます。インフラストラクチャー設定を適用します。
$ oc apply -f infrastructures.config.openshift.io.yaml --overwrite=true