10.5.5. Google Cloud のコントロールプレーン設定オプション
コントロールプレーンマシンセット仕様の値を編集することで、インフラストラクチャーや環境の変更を反映するようにコントロールプレーンマシンを更新できます。
コントロールプレーンマシンセットへの更新を保存すると、設定された更新ストラテジーに従って Control Plane Machine Set Operator がコントロールプレーンマシンを更新します。詳細は、制御プレーン設定の更新を参照してください。
次の YAML スニペットの例は、Google Cloud クラスターのプロバイダー仕様と障害ドメイン設定を示しています。
10.5.5.1. Google Cloud プロバイダーの仕様例 リンクのコピーリンクがクリップボードにコピーされました!
コントロールプレーンマシンセットプロバイダー仕様の値を編集することで、基盤となるインフラストラクチャーの変更を反映するようにコントロールプレーンマシンを更新できます。
以下の YAML の例は、Google Cloud クラスターの有効な設定を示しています。
既存のクラスター用のコントロールプレーンマシンセットを作成する場合、プロバイダーの仕様が、インストールプログラムによって作成されるコントロールプレーンマシンのカスタムリソース (CR) の providerSpec 設定と一致する必要があります。
CR の障害ドメインセクションで値が設定されているフィールドは省略できます。
以下の例では、OpenShift CLI (oc) を使用してクラスターの値の一部を取得できます。
- インフラストラクチャー ID
<cluster_id>文字列はインフラストラクチャー ID です。インフラストラクチャー ID は、インストールプログラムがクラスタープロビジョニング中に使用したクラスター ID と一致します。ocがインストールされている場合は、以下のコマンドを実行することでインフラストラクチャー ID を取得できます。$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster- イメージパス
<path_to_image>文字列は、ディスク上のソースイメージへのパスです。ocがインストールされている場合は、以下のコマンドを実行することでイメージへのパスを取得できます。$ oc -n openshift-machine-api \ -o jsonpath='{.spec.template.machines_v1beta1_machine_openshift_io.spec.providerSpec.value.disks[0].image}{"\n"}' \ get ControlPlaneMachineSet/cluster
Google Cloud providerSpec のサンプル値
apiVersion: machine.openshift.io/v1
kind: ControlPlaneMachineSet
metadata:
name: cluster
namespace: openshift-machine-api
spec:
# ...
template:
# ...
spec:
providerSpec:
value:
apiVersion: machine.openshift.io/v1beta1
canIPForward: false
credentialsSecret:
name: gcp-cloud-credentials
deletionProtection: false
disks:
- autoDelete: true
boot: true
image: <path_to_image>
labels: null
sizeGb: 200
type: pd-ssd
kind: GCPMachineProviderSpec
machineType: e2-standard-4
metadata:
creationTimestamp: null
metadataServiceOptions: {}
networkInterfaces:
- network: <cluster_id>-network
subnetwork: <cluster_id>-master-subnet
projectID: <project_name>
region: <region>
serviceAccounts:
- email: <cluster_id>-m@<project_name>.iam.gserviceaccount.com
scopes:
- https://www.googleapis.com/auth/cloud-platform
shieldedInstanceConfig: {}
tags:
- <cluster_id>-master
targetPools:
- <cluster_id>-api
userDataSecret:
name: master-user-data
zone: ""
ここでは、以下のようになります。
spec.template.spec.providerSpec.value.credentialsSecret.name- クラスターのシークレット名を指定します。この値は変更しないでください。
spec.template.spec.providerSpec.value.disk.imageディスクのソースイメージへのパスを指定します。
Google Cloud Marketplace イメージを使用するには、使用するサービスを指定します。
-
OpenShift Container Platform:
https://www.googleapis.com/compute/v1/projects/redhat-marketplace-public/global/images/redhat-coreos-ocp-413-x86-64-202305021736 -
OpenShift Platform Plus:
https://www.googleapis.com/compute/v1/projects/redhat-marketplace-public/global/images/redhat-coreos-opp-413-x86-64-202305021736 -
OpenShift Kubernetes Engine:
https://www.googleapis.com/compute/v1/projects/redhat-marketplace-public/global/images/redhat-coreos-oke-413-x86-64-202305021736
-
OpenShift Container Platform:
spec.template.spec.providerSpec.value.kind- クラウドプロバイダープラットフォームのタイプを指定します。この値は変更しないでください。
spec.template.spec.providerSpec.value.projectID- クラスターに使用する Google Cloud プロジェクトの名前を指定します。
spec.template.spec.providerSpec.value.projectID.region- クラスターの Google Cloud リージョンを指定します。
spec.template.spec.providerSpec.value.serviceAccounts- 単一のサービスアカウントを指定します。複数のサービスアカウントを指定することはサポートされていません。
spec.template.spec.providerSpec.value.userDataSecret- コントロールプレーンのユーザーデータシークレットを指定します。この値は変更しないでください。
spec.template.spec.providerSpec.value.zoneこのパラメーターは障害ドメイン設定に含まれており、ここでは空の値になっています。
クラスターが障害ドメインを使用する場合は、障害ドメインでこのパラメーターを設定します。障害ドメインを使用する際にプロバイダー仕様でこの値を指定した場合、Control Plane Machine Set Operator はその値を無視し、障害ドメイン内の値を使用します。