10.5. コントロールプレーンマシンの設定オプション
10.5.1. Amazon Web Services のコントロールプレーン設定オプション リンクのコピーリンクがクリップボードにコピーされました!
コントロールプレーンマシンセット仕様の値を編集することで、インフラストラクチャーや環境の変更を反映するようにコントロールプレーンマシンを更新できます。
コントロールプレーンマシンセットへの更新を保存すると、設定された更新ストラテジーに従って Control Plane Machine Set Operator がコントロールプレーンマシンを更新します。詳細は、制御プレーン設定の更新を参照してください。
次の YAML スニペットの例は、AWS クラスターのプロバイダーの仕様と障害ドメインの設定を示しています。
10.5.1.1. AWS プロバイダーの仕様例 リンクのコピーリンクがクリップボードにコピーされました!
コントロールプレーンマシンセットプロバイダー仕様の値を編集することで、基盤となるインフラストラクチャーの変更を反映するようにコントロールプレーンマシンを更新できます。
以下の YAML の例は、Amazon Web Services (AWS) クラスターの有効な設定を示しています。
既存のクラスター用のコントロールプレーンマシンセットを作成する場合、プロバイダーの仕様が、インストールプログラムによって作成されるコントロールプレーンマシンのカスタムリソース (CR) の providerSpec 設定と一致する必要があります。
CR の障害ドメインセクションで値が設定されているフィールドは省略できます。
以下の例では、<cluster_id> という文字列はインフラストラクチャー ID です。インフラストラクチャー ID は、インストールプログラムがクラスタープロビジョニング中に使用したクラスター ID と一致します。OpenShift CLI (oc) がインストールされている場合は、以下のコマンドを実行してインフラストラクチャー ID を取得できます。
$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
AWS providerSpec の値の例
apiVersion: machine.openshift.io/v1
kind: ControlPlaneMachineSet
metadata:
name: cluster
namespace: openshift-machine-api
spec:
# ...
template:
# ...
spec:
providerSpec:
value:
ami:
id: ami-<ami_id_string>
apiVersion: machine.openshift.io/v1beta1
blockDevices:
- ebs:
encrypted: true
iops: 0
kmsKey:
arn: ""
volumeSize: 120
volumeType: gp3
credentialsSecret:
name: aws-cloud-credentials
deviceIndex: 0
iamInstanceProfile:
id: <cluster_id>-master-profile
instanceType: m6i.xlarge
kind: AWSMachineProviderConfig
loadBalancers:
- name: <cluster_id>-int
type: network
- name: <cluster_id>-ext
type: network
metadata:
creationTimestamp: null
metadataServiceOptions: {}
placement:
region: <region>
availabilityZone: ""
tenancy:
securityGroups:
- filters:
- name: tag:Name
values:
- <cluster_id>-node
- filters:
- name: tag:Name
values:
- <cluster_id>-lb
- filters:
- name: tag:Name
values:
- <cluster_id>-controlplane
subnet: {}
userDataSecret:
name: master-user-data
ここでは、以下のようになります。
<ami_id_string>- クラスターの Red Hat Enterprise Linux CoreOS (RHCOS) Amazon Machine Image (AMI) ID を指定します。AMI はクラスターと同じリージョンに属する必要があります。AWS Marketplace イメージを使用する場合は、AWS Marketplace から OpenShift Container Platform サブスクリプションを完了して、リージョンの AMI ID を取得する必要があります。
spec.template.spec.providerSpec.value.blockDevices.ebs- 暗号化された Amazon Elastic Block Store (Amazon EBS) ボリュームの設定を指定します。
spec.template.spec.providerSpec.value.credentialsSecret.name- クラスターのシークレット名を指定します。この値は変更しないでください。
spec.template.spec.providerSpec.value.iamInstanceProfile- AWS Identity and Access Management (IAM) インスタンスプロファイルを指定します。この値は変更しないでください。
spec.template.spec.providerSpec.value.instanceType- コントロールプレーンの AWS インスタンスタイプを指定します。
spec.template.spec.providerSpec.value.kind- クラウドプロバイダープラットフォームのタイプを指定します。この値は変更しないでください。
spec.template.spec.providerSpec.value.loadBalancersクラスターの内部 (
int) および外部 (ext) ロードバランサーを指定します。注記プライベート OpenShift Container Platform クラスターでは、外部 (
ext) ロードバランサーパラメーターを省略できます。spec.template.spec.providerSpec.value.placementAWS でコントロールプレーンインスタンスを作成する場所を指定します。この節の以下のキーは、追加の詳細情報を示しています。
region- クラスターの AWS リージョンを指定します。
availabilityZone- このパラメーターは障害ドメイン設定に含まれており、ここでは空の値になっています。
クラスターが障害ドメインを使用する場合は、障害ドメインでこのパラメーターを設定します。障害ドメインを使用する際にプロバイダー仕様でこの値を指定した場合、Control Plane Machine Set Operator はその値を無視し、障害ドメイン内の値を使用します。
賃貸借コントロールプレーンの AWS Dedicated Instance 設定を指定します。詳細は、Dedicated Instance に関する AWS ドキュメントを参照してください。次の値が有効です。
-
default: Dedicated Instance は共有ハードウェア上で実行されます。 -
dedicated: Dedicated Instance はシングルテナントのハードウェア上で実行されます。 -
host: Dedicated Instance は Dedicated Host (設定を制御できる分離されたサーバー) 上で実行されます。
-
spec.template.spec.providerSpec.value.securityGroups- コントロールプレーンマシンのセキュリティーグループを指定します。
spec.template.spec.providerSpec.value.subnetこのパラメーターは障害ドメイン設定に含まれており、ここでは空の値になっています。
クラスターが障害ドメインを使用する場合は、障害ドメインでこのパラメーターを設定します。障害ドメインを使用する際にプロバイダー仕様でこの値を指定した場合、Control Plane Machine Set Operator はその値を無視し、障害ドメイン内の値を使用します。
注記障害ドメイン設定で値が指定されていない場合、制御プレーンマシンはプロバイダー仕様の値を使用します。
spec.template.spec.providerSpec.value.userDataSecret- コントロールプレーンのユーザーデータシークレットを指定します。この値は変更しないでください。
10.5.1.2. AWS 障害ドメインの設定例 リンクのコピーリンクがクリップボードにコピーされました!
単一の Amazon Web Services (AWS) リージョンの障害によってアプリケーションがダウンするのを防ぐには、コントロールプレーンマシンセットで障害ドメインを設定できます。障害ドメインを使用するには、ControlPlaneMachineSet カスタムリソース (CR) の failureDomains セクションで適切な値を設定します。
コントロールプレーンマシンセットの障害ドメインの概念は、AWS の アベイラビリティーゾーン (AZ) の概念に類似している。ControlPlaneMachineSet CR は、可能な場合は制御プレーンマシンを複数の障害ドメインに分散させます。
コントロールプレーンマシンセットで AWS 障害ドメインを設定するときは、使用するアベイラビリティゾーン名とサブネットを指定する必要があります。
AWS 障害ドメインの値の例
apiVersion: machine.openshift.io/v1
kind: ControlPlaneMachineSet
metadata:
name: cluster
namespace: openshift-machine-api
spec:
# ...
template:
# ...
machines_v1beta1_machine_openshift_io:
failureDomains:
aws:
- placement:
availabilityZone: <aws_zone_a>
subnet:
filters:
- name: tag:Name
values:
- <cluster_id>-subnet-private-<aws_zone_a>
type: Filters
- placement:
availabilityZone: <aws_zone_b>
subnet:
filters:
- name: tag:Name
values:
- <cluster_id>-subnet-private-<aws_zone_b>
type: Filters
platform: AWS
# ...
ここでは、以下のようになります。
spec.template.machines_v1beta1_machine_openshift_io.failureDomains.aws.placement.availabilityZone: <aws_zone_a>- 最初の障害ドメインの AWS アベイラビリティゾーンを指定します。
spec.template.machines_v1beta1_machine_openshift_io.failureDomains.aws.subnet-
サブネット設定を指定します。この例では、サブネットタイプが
Filtersであるため、filtersスタンザがあります。 spec.template.machines_v1beta1_machine_openshift_io.failureDomains.aws.subnet.filters.values: <cluster_id>-subnet-private-<aws_zone_a>- インフラストラクチャー ID と AWS アベイラビリティゾーンを使用して、最初の障害ドメインのサブネット名を指定します。
spec.template.machines_v1beta1_machine_openshift_io.failureDomains.aws.subnet.type-
サブネットタイプを指定します。以下の値が有効です:
ARN、フィルター、ID。デフォルト値はFiltersです。 spec.template.machines_v1beta1_machine_openshift_io.failureDomains.aws.placement.availabilityZone: <aws_zone_b>- 追加の障害ドメイン用に AWS アベイラビリティーゾーンを指定します。
spec.template.machines_v1beta1_machine_openshift_io.failureDomains.aws.subnet.filters.values: <cluster_id>-subnet-private-<aws_zone_b>- インフラストラクチャー ID と AWS アベイラビリティーゾーンを使用して、追加の障害ドメインのサブネット名を指定します。
spec.template.machines_v1beta1_machine_openshift_io.failureDomains.platform- クラウドプロバイダーのプラットフォーム名を指定します。この値は変更しないでください。