|Index|SUSE Telco Cloud ドキュメント|完全自動化されたダイレクトネットワークプロビジョニング|高度なネットワーク設定
適用項目 SUSE Telco Cloud 3.6

53 高度なネットワーク設定

ダイレクトネットワークプロビジョニングワークフローにより、静的IP、ボンディング、VLAN、IPv6など、ダウンストリームクラスターでの特定のネットワーク設定が可能になります。

以下のセクションでは、高度なネットワーク設定を使用してダウンストリームクラスターのプロビジョニングを有効にするために必要な追加手順について説明します。

要件

設定

先に進む前に、ホストの登録とプロビジョニングに必要な手順のガイダンスについて、以下のいずれかのセクションを参照してください。

高度なネットワーク設定は、`BareMetalHost`ホスト定義と、`nmstate`形式の`networkData`ブロックを含む関連付けられたシークレットを通じて、登録時に適用する必要があります。次の例のファイルは、ダウンストリームクラスターホストの静的`IP`および`VLAN`を要求する必要な`networkData`を含むシークレットを定義しています。

apiVersion: v1
kind: Secret
metadata:
  name: controlplane-0-networkdata
type: Opaque
stringData:
  networkData: |
    interfaces:
    - name: ${CONTROLPLANE_INTERFACE}
      type: ethernet
      state: up
      mtu: 1500
      identifier: mac-address
      mac-address: "${CONTROLPLANE_MAC}"
      ipv4:
        address:
        - ip:  "${CONTROLPLANE_IP}"
          prefix-length: "${CONTROLPLANE_PREFIX}"
        enabled: true
        dhcp: false
    - name: floating
      type: vlan
      state: up
      vlan:
        base-iface: ${CONTROLPLANE_INTERFACE}
        id: ${VLAN_ID}
    dns-resolver:
      config:
        server:
        - "${DNS_SERVER}"
    routes:
      config:
      - destination: 0.0.0.0/0
        next-hop-address: "${CONTROLPLANE_GATEWAY}"
        next-hop-interface: ${CONTROLPLANE_INTERFACE}

ご覧のとおり、この例では、インフラストラクチャに応じて以下の変数を実際の値に置き換えた後、静的IPでインターフェイスを有効にする設定と、ベースインターフェイスを使用してVLANを有効にする設定を示しています。

  • ${CONTROLPLANE_INTERFACE} — ダウンストリームクラスターに使用するコントロールプレーンインターフェイス(例: eth0)。`identifier: mac-address`を含め、命名はMACアドレスによって自動的に検査されるため、任意のインターフェイス名を使用できます。

  • ${CONTROLPLANE_IP} — ダウンストリームクラスターのエンドポイントとして使用するIPアドレス(kubeapi-serverエンドポイントと一致する必要があります)。

  • ${CONTROLPLANE_PREFIX} — ダウンストリームクラスターに使用するCIDR(例: /24`または`255.255.255.0`が必要な場合は`24)。

  • ${CONTROLPLANE_GATEWAY} — ダウンストリームクラスターに使用するゲートウェイ(例: 192.168.100.1)。

  • ${CONTROLPLANE_MAC} — コントロールプレーンインターフェイスに使用するMACアドレス(例: 00:0c:29:3e:3e:3e)。

  • ${DNS_SERVER} — ダウンストリームクラスターに使用するDNS(例: 192.168.100.2)。

  • ${VLAN_ID} — ダウンストリームクラスターに使用するVLAN ID(例: 100)。

特定の要件に合わせてダウンストリームクラスターのネットワークを構成するために、他の`nmstate`準拠の定義を使用することもできます。例えば、静的デュアルスタック構成を指定することも可能です。

apiVersion: v1
kind: Secret
metadata:
  name: controlplane-0-networkdata
type: Opaque
stringData:
  networkData: |
    interfaces:
    - name: ${CONTROLPLANE_INTERFACE}
      type: ethernet
      state: up
      mac-address: ${CONTROLPLANE_MAC}
      ipv4:
        enabled: true
        dhcp: false
        address:
        - ip: ${CONTROLPLANE_IP_V4}
          prefix-length: ${CONTROLPLANE_PREFIX_V4}
      ipv6:
        enabled: true
        dhcp: false
        autoconf: false
        address:
        - ip: ${CONTROLPLANE_IP_V6}
          prefix-length: ${CONTROLPLANE_PREFIX_V6}
    routes:
      config:
      - destination: 0.0.0.0/0
        next-hop-address: ${CONTROLPLANE_GATEWAY_V4}
        next-hop-interface: ${CONTROLPLANE_INTERFACE}
      - destination: ::/0
        next-hop-address: ${CONTROLPLANE_GATEWAY_V6}
        next-hop-interface: ${CONTROLPLANE_INTERFACE}
    dns-resolver:
      config:
        server:
        - ${DNS_SERVER_V4}
        - ${DNS_SERVER_V6}

前の例と同様に、インフラストラクチャに合わせて以下の変数を実際の値に置き換えてください。

  • ${CONTROLPLANE_IP_V4} - ホストに割り当てるIPv4アドレス

  • ${CONTROLPLANE_PREFIX_V4} - ホストIPが属するネットワークのIPv4プレフィックス

  • ${CONTROLPLANE_IP_V6} - ホストに割り当てるIPv6アドレス

  • ${CONTROLPLANE_PREFIX_V6} - ホストIPが属するネットワークのIPv6プレフィックス

  • ${CONTROLPLANE_GATEWAY_V4} - デフォルトルートに一致するトラフィックのゲートウェイのIPv4アドレス

  • ${CONTROLPLANE_GATEWAY_V6} - デフォルトルートに一致するトラフィックのゲートウェイのIPv6アドレス

  • ${CONTROLPLANE_INTERFACE} - アドレスを割り当て、IPv4およびIPv6の両方でデフォルトルートに一致するエグレストラフィックに使用するインターフェイス名

  • ${DNS_SERVER_V4}`または${DNS_SERVER_V6}` - 使用するDNSサーバーのIPアドレス(単一または複数のエントリとして指定できます)。IPv4およびIPv6の両方のアドレスがサポートされます。

注記
注記
  • IPv6のみやデュアルスタック構成など、より複雑な例については、 SUSE Telco Cloud examples repoを参照してください。

  • シングルスタックIPv6デプロイメントは技術プレビュー段階であり、正式にはまだサポートされていません。

最後に、ネットワーク構成の詳細に関わらず、ホストを管理クラスターに正常に登録するには、`preprovisioningNetworkDataName`を`BaremetalHost`オブジェクトに追加してシークレットが参照されるようにしてください。

apiVersion: v1
kind: Secret
metadata:
  name: example-demo-credentials
type: Opaque
data:
  username: ${BMC_USERNAME}
  password: ${BMC_PASSWORD}
---
apiVersion: metal3.io/v1alpha1
kind: BareMetalHost
metadata:
  name: example-demo
  labels:
    cluster-role: control-plane
spec:
  architecture: x86_64
  online: true
  bootMACAddress: ${BMC_MAC}
  rootDeviceHints:
    deviceName: /dev/nvme0n1
  bmc:
    address: ${BMC_ADDRESS}
    disableCertificateVerification: true
    credentialsName: example-demo-credentials
  preprovisioningNetworkDataName: controlplane-0-networkdata
注記
注記
  • マルチノードクラスターをデプロイする必要がある場合は、各ノードに対して同じプロセスを実行する必要があります。

  • Metal3DataTemplate、networkData、および`Metal3 IPAM`は現在サポートされていません。静的シークレットによる構成のみが完全にサポートされています。

  • アーキテクチャは、登録するベアメタルホストのアーキテクチャに応じて、`x86_64`または`aarch64`のいずれかである必要があります。