検索

8.16. 静的 IP アドレスを使用したマシンのスケーリング

download PDF

静的 IP アドレスを持つノードを実行するようにクラスターをデプロイした後、これらの静的 IP アドレスのいずれかを使用するようにマシンまたはマシンセットのインスタンスをスケーリングできます。

8.16.1. 静的 IP アドレスを使用するようにマシンをスケーリングする

追加のマシンセットを拡張して、クラスター上で事前定義された静的 IP アドレスを使用できます。この設定では、マシンリソース YAML ファイルを作成し、このファイルに静的 IP アドレスを定義する必要があります。

前提条件

  • 設定された静的 IP アドレスを持つ少なくとも 1 つのノードを実行するクラスターをデプロイしました。

手順

  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.1 1
              ipAddrs:
              - 192.168.204.8/24 2
              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

8.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 アドレスを適用します。

8.16.3. マシンセットを使用して設定された静的 IP アドレスを持つマシンをスケールする

マシンセットを使用して、設定された静的 IP アドレスを持つマシンをスケールすることができます。

この手順の例では、マシンセット内のマシンをスケーリングするためのコントローラーの使用方法を示します。

前提条件

  • 設定された静的 IP アドレスを持つ少なくとも 1 つのノードを実行するクラスターをデプロイしました。

手順

  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 アドレスを受け取るノードにはネームサーバーを指定する必要があります。
  2. oc CLI で次のコマンドを入力して、マシンセットをスケールします。

    $ oc scale --replicas=2 machineset <machineset> -n openshift-machine-api

    または、以下を実行します。

    $ oc edit machineset <machineset> -n openshift-machine-api

    各マシンがスケールアップされた後、マシンコントローラーは IPAddresssClaim リソースを作成します。

  3. オプション: 次のコマンドを入力して、IPAddressClaim リソースが openshift-machine-api namespace に存在することを確認します。

    $ oc get ipaddressclaims.ipam.cluster.x-k8s.io -n openshift-machine-api

    openshift-machine-api namespace にリストされている 2 つの IP プールをリストする oc CLI 出力の例

    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

  4. 次のコマンドを入力して、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
    1
    ターゲットの IPAddressClaim リソースの名前。
    2
    ノードからの静的 IP アドレスに関する詳細情報。
    注記

    デフォルトでは、外部コントローラーはマシンセット内のリソースを自動的にスキャンして、認識可能なアドレスプールタイプを探します。外部コントローラーが IPAddress リソースで定義された kind: IPPool を見つけると、コントローラーは静的 IP アドレスを IPAddressClaim リソースにバインドします。

  5. 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
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.