5.16. 静的 IP アドレスを使用したマシンのスケーリング
静的 IP アドレスを持つノードを実行するようにクラスターをデプロイした後、これらの静的 IP アドレスのいずれかを使用するようにマシンまたはマシンセットのインスタンスをスケーリングできます。
5.16.1. 静的 IP アドレスを使用するようにマシンをスケーリングする リンクのコピーリンクがクリップボードにコピーされました!
追加のマシンセットを拡張して、クラスター上で事前定義された静的 IP アドレスを使用できます。この設定では、マシンリソース YAML ファイルを作成し、このファイルに静的 IP アドレスを定義する必要があります。
前提条件
- 設定された静的 IP アドレスを持つ少なくとも 1 つのノードを実行するクラスターをデプロイしました。
手順
マシンリソースの YAML ファイルを作成し、
networkパラメーターに静的 IP アドレスのネットワーク情報を定義します。networkパラメーターで定義された静的 IP アドレス情報を含むマシンリソース YAML ファイルの例。apiVersion: machine.openshift.io/v1beta1 kind: Machine metadata: creationTimestamp: null labels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> machine.openshift.io/cluster-api-machine-role: <role> machine.openshift.io/cluster-api-machine-type: <role> machine.openshift.io/cluster-api-machineset: <infrastructure_id>-<role> name: <infrastructure_id>-<role> namespace: openshift-machine-api spec: lifecycleHooks: {} metadata: {} providerSpec: value: apiVersion: machine.openshift.io/v1beta1 credentialsSecret: name: vsphere-cloud-credentials diskGiB: 120 kind: VSphereMachineProviderSpec memoryMiB: 8192 metadata: creationTimestamp: null network: devices: - gateway: 192.168.204.11 ipAddrs: - 192.168.204.8/242 nameservers:3 - 192.168.204.1 networkName: qe-segment-204 numCPUs: 4 numCoresPerSocket: 2 snapshot: "" template: <vm_template_name> userDataSecret: name: worker-user-data workspace: datacenter: <vcenter_data_center_name> datastore: <vcenter_datastore_name> folder: <vcenter_vm_folder_path> resourcepool: <vsphere_resource_pool> server: <vcenter_server_ip> status: {}- 1
- ネットワークインターフェイスのデフォルトゲートウェイの IP アドレス。
- 2
- インストールプログラムがネットワークインターフェイスに渡す IPv4、IPv6、またはその両方の IP アドレスをリストします。どちらの IP ファミリーも、デフォルトネットワークに同じネットワークインターフェイスを使用する必要があります。
- 3
- DNS ネームサーバーをリストします。最大 3 つの DNS ネームサーバーを定義できます。1 つの DNS ネームサーバーが到達不能になった場合に、DNS 解決を利用できるように、複数の DNS ネームサーバーを定義することを検討してください。
ターミナルに次のコマンドを入力して、
machineのカスタムリソース (CR) を作成します。$ oc create -f <file_name>.yaml
5.16.2. 静的 IP アドレスが設定されたマシンのマシンセットスケーリング リンクのコピーリンクがクリップボードにコピーされました!
マシンセットを使用して、設定された静的 IP アドレスを持つマシンをスケールすることができます。
マシンの静的 IP アドレスを要求するようにマシンセットを設定した後、マシンコントローラーは openshift-machine-api namespace に IPAddressClaim リソースを作成します。次に、外部コントローラーは IPAddress リソースを作成し、静的 IP アドレスを IPAddressClaim リソースにバインドします。
組織では、さまざまな種類の IP アドレス管理 (IPAM) サービスを使用している場合があります。OpenShift Container Platform で特定の IPAM サービスを有効にする場合は、YAML 定義で IPAddressClaim リソースを手動で作成し、oc CLI で次のコマンドを入力してこのリソースに静的 IP アドレスをバインドしないといけない場合があります。
$ oc create -f <ipaddressclaim_filename>
次に、IPAddressClaim リソースの例を示します。
kind: IPAddressClaim
metadata:
finalizers:
- machine.openshift.io/ip-claim-protection
name: cluster-dev-9n5wg-worker-0-m7529-claim-0-0
namespace: openshift-machine-api
spec:
poolRef:
apiGroup: ipamcontroller.example.io
kind: IPPool
name: static-ci-pool
status: {}
マシンコントローラーはマシンを IPAddressClaimed のステータスで更新し、静的 IP アドレスが IPAddressClaim リソースに正常にバインドされたことを示します。マシンコントローラーは、バインドされた静的 IP アドレスをそれぞれに含む複数の IPAddressClaim リソースを持つマシンに同じステータスを適用します。その後、マシンコントローラーは仮想マシンを作成し、マシンの設定の providerSpec にリストされているすべてのノードに静的 IP アドレスを適用します。
5.16.3. マシンセットを使用して設定された静的 IP アドレスを持つマシンをスケールする リンクのコピーリンクがクリップボードにコピーされました!
マシンセットを使用して、設定された静的 IP アドレスを持つマシンをスケールすることができます。
この手順の例では、マシンセット内のマシンをスケーリングするためのコントローラーの使用方法を示します。
前提条件
- 設定された静的 IP アドレスを持つ少なくとも 1 つのノードを実行するクラスターをデプロイしました。
手順
マシンセットの YAML ファイルの
network.devices.addressesFromPoolsスキーマに IP プール情報を指定して、マシンセットを設定します。apiVersion: machine.openshift.io/v1beta1 kind: MachineSet metadata: annotations: machine.openshift.io/memoryMb: "8192" machine.openshift.io/vCPU: "4" labels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> name: <infrastructure_id>-<role> namespace: openshift-machine-api spec: replicas: 0 selector: matchLabels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> machine.openshift.io/cluster-api-machineset: <infrastructure_id>-<role> template: metadata: labels: ipam: "true" machine.openshift.io/cluster-api-cluster: <infrastructure_id> machine.openshift.io/cluster-api-machine-role: worker machine.openshift.io/cluster-api-machine-type: worker machine.openshift.io/cluster-api-machineset: <infrastructure_id>-<role> spec: lifecycleHooks: {} metadata: {} providerSpec: value: apiVersion: machine.openshift.io/v1beta1 credentialsSecret: name: vsphere-cloud-credentials diskGiB: 120 kind: VSphereMachineProviderSpec memoryMiB: 8192 metadata: {} network: devices: - addressesFromPools:1 - group: ipamcontroller.example.io name: static-ci-pool resource: IPPool nameservers: - "192.168.204.1"2 networkName: qe-segment-204 numCPUs: 4 numCoresPerSocket: 2 snapshot: "" template: rvanderp4-dev-9n5wg-rhcos-generated-region-generated-zone userDataSecret: name: worker-user-data workspace: datacenter: IBMCdatacenter datastore: /IBMCdatacenter/datastore/vsanDatastore folder: /IBMCdatacenter/vm/rvanderp4-dev-9n5wg resourcePool: /IBMCdatacenter/host/IBMCcluster//Resources server: vcenter.ibmc.devcluster.openshift.com- 1
- 静的 IP アドレスまたは静的 IP アドレスの範囲をリストする IP プールを指定します。IP プールは、カスタムリソース定義 (CRD) への参照、または
IPAddressClaimsリソースハンドラーによってサポートされるリソースのいずれかになります。マシンコントローラーは、マシンセットの設定にリストされている静的 IP アドレスにアクセスし、各アドレスを各マシンに割り当てます。 - 2
- ネームサーバーをリストします。Dynamic Host Configuration Protocol (DHCP) ネットワーク設定は静的 IP アドレスをサポートしていないため、静的 IP アドレスを受け取るノードにはネームサーバーを指定する必要があります。
ocCLI で次のコマンドを入力して、マシンセットをスケールします。$ oc scale --replicas=2 machineset <machineset> -n openshift-machine-apiまたは、以下を実行します。
$ oc edit machineset <machineset> -n openshift-machine-api各マシンがスケールアップされた後、マシンコントローラーが
IPAddressClaimリソースを作成します。オプション: 次のコマンドを入力して、
IPAddressClaimリソースがopenshift-machine-apinamespace に存在することを確認します。$ oc get ipaddressclaims.ipam.cluster.x-k8s.io -n openshift-machine-apiopenshift-machine-apinamespace にリストされている 2 つの IP プールをリストするocCLI 出力の例NAME POOL NAME POOL KIND cluster-dev-9n5wg-worker-0-m7529-claim-0-0 static-ci-pool IPPool cluster-dev-9n5wg-worker-0-wdqkt-claim-0-0 static-ci-pool IPPool次のコマンドを入力して、
IPAddressリソースを作成します。$ oc create -f ipaddress.yaml次の例は、定義されたネットワーク設定情報と 1 つの静的 IP アドレスが定義された
IPAddressリソースを示しています。apiVersion: ipam.cluster.x-k8s.io/v1alpha1 kind: IPAddress metadata: name: cluster-dev-9n5wg-worker-0-m7529-ipaddress-0-0 namespace: openshift-machine-api spec: address: 192.168.204.129 claimRef:1 name: cluster-dev-9n5wg-worker-0-m7529-claim-0-0 gateway: 192.168.204.1 poolRef:2 apiGroup: ipamcontroller.example.io kind: IPPool name: static-ci-pool prefix: 23注記デフォルトでは、外部コントローラーはマシンセット内のリソースを自動的にスキャンして、認識可能なアドレスプールタイプを探します。外部コントローラーが
IPAddressリソースで定義されたkind: IPPoolを見つけると、コントローラーは静的 IP アドレスをIPAddressClaimリソースにバインドします。IPAddressリソースへの参照を使用してIPAddressClaimステータスを更新します。$ oc --type=merge patch IPAddressClaim cluster-dev-9n5wg-worker-0-m7529-claim-0-0 -p='{"status":{"addressRef": {"name": "cluster-dev-9n5wg-worker-0-m7529-ipaddress-0-0"}}}' -n openshift-machine-api --subresource=status