5.6. OpenStack 上の Hosted Control Plane の管理


Red Hat OpenStack Platform (RHOSP) エージェントマシンに Hosted Control Plane をデプロイした後、次のタスクを実行してホステッドクラスターを管理できます。

5.6.1. ホステッドクラスターへのアクセス

oc CLI を使用してリソースから kubeconfig シークレットを直接抽出することにより、Red Hat OpenStack Platform (RHOSP) 上のホステッドクラスターにアクセスできます。

ホステッドクラスター (ホスティング) のリソースとアクセスシークレットは、ホステッドクラスターの namespace に格納されます。Hosted Control Plane は、Hosted Control Plane の namespace で実行されます。

シークレット名の形式は次のとおりです。

  • kubeconfig シークレット: <hosted_cluster_namespace>-<name>-admin-kubeconfig.たとえば、clusters-hypershift-demo-admin-kubeconfig です。
  • kubeadmin パスワードシークレット: <hosted_cluster_namespace>-<name>-kubeadmin-password。たとえば、clusters-hypershift-demo-kubeadmin-password です。

kubeconfig シークレットには、Base64 でエンコードされた kubeconfig フィールドが含まれています。kubeadmin パスワードシークレットも Base64 でエンコードされています。これを抽出し、そのパスワードを使用して API サーバーまたはホステッドクラスターのコンソールにログインできます。

前提条件

  • oc CLI がインストールされている。

手順

  1. 次のコマンドを入力して、admin-kubeconfig シークレットを抽出します。

    $ oc extract -n <hosted_cluster_namespace> \
      secret/<hosted_cluster_name>-admin-kubeconfig \
      --to=./hostedcluster-secrets --confirm
    Copy to Clipboard Toggle word wrap

    出力例

    hostedcluster-secrets/kubeconfig
    Copy to Clipboard Toggle word wrap

  2. 次のコマンドを入力して、ホステッドクラスターのノードのリストを表示し、アクセスを検証します。

    $ oc --kubeconfig ./hostedcluster-secrets/kubeconfig get nodes
    Copy to Clipboard Toggle word wrap

5.6.2. ホステッドクラスターのノード自動スケーリングの有効化

Red Hat OpenStack Platform (RHOSP) 上のホステッドクラスターでさらに容量が必要になり、予備のエージェントが利用可能な場合は、自動スケーリングを有効にして新しいワーカーノードをインストールできます。

手順

  1. 自動スケーリングを有効にするには、次のコマンドを入力します。

    $ oc -n <hosted_cluster_namespace> patch nodepool <hosted_cluster_name> \
      --type=json \
      -p '[{"op": "remove", "path": "/spec/replicas"},{"op":"add", "path": "/spec/autoScaling", "value": { "max": 5, "min": 2 }}]'
    Copy to Clipboard Toggle word wrap
  2. 新しいノードを必要とするワークロードを作成します。

    1. 次の例を使用して、ワークロード設定を含む YAML ファイルを作成します。

      apiVersion: apps/v1
      kind: Deployment
      metadata:
        labels:
          app: reversewords
        name: reversewords
        namespace: default
      spec:
        replicas: 40
        selector:
          matchLabels:
            app: reversewords
        template:
          metadata:
            labels:
              app: reversewords
          spec:
            containers:
            - image: quay.io/mavazque/reversewords:latest
              name: reversewords
              resources:
                requests:
                  memory: 2Gi
      Copy to Clipboard Toggle word wrap
    2. ファイルを workload-config.yaml という名前で保存します。
    3. 以下のコマンドを入力して、YAML を適用します。

      $ oc apply -f workload-config.yaml
      Copy to Clipboard Toggle word wrap
  3. 次のコマンドを入力して、admin-kubeconfig シークレットを抽出します。

    $ oc extract -n <hosted_cluster_namespace> \
      secret/<hosted_cluster_name>-admin-kubeconfig \
      --to=./hostedcluster-secrets --confirm
    Copy to Clipboard Toggle word wrap

    出力例

    hostedcluster-secrets/kubeconfig
    Copy to Clipboard Toggle word wrap

  4. 次のコマンドを入力して、新しいノードが Ready ステータスであるかどうかを確認できます。

    $ oc --kubeconfig ./hostedcluster-secrets get nodes
    Copy to Clipboard Toggle word wrap
  5. ノードを削除するには、次のコマンドを入力してワークロードを削除します。

    $ oc --kubeconfig ./hostedcluster-secrets -n <namespace> \
      delete deployment <deployment_name>
    Copy to Clipboard Toggle word wrap
  6. 数分間待ちます。その間に、容量の追加が必要にならないようにします。次のコマンドを入力すると、ノードが削除されたことを確認できます。

    $ oc --kubeconfig ./hostedcluster-secrets get nodes
    Copy to Clipboard Toggle word wrap

5.6.3. アベイラビリティーゾーンのノードプールの設定

複数の Red Hat OpenStack Platform (RHOSP) Nova アベイラビリティーゾーンにノードプールを分散させると、ホステッドクラスターの高可用性を向上できます。

注記

アベイラビリティーゾーンは必ずしも障害ドメインに対応するわけではなく、本質的に高可用性の利点を提供するものではありません。

前提条件

  • ホステッドクラスターを作成した。
  • 管理クラスターにアクセスできる。
  • hcp および oc CLI がインストールされている。

手順

  1. ニーズに合わせて適切な環境変数を設定します。たとえば、az1 アベイラビリティーゾーンに 2 台の追加マシンを作成する場合は、次のように入力します。

    $ export NODEPOOL_NAME="${CLUSTER_NAME}-az1" \
      && export WORKER_COUNT="2" \
      && export FLAVOR="m1.xlarge" \
      && export AZ="az1"
    Copy to Clipboard Toggle word wrap
  2. 次のコマンドを入力して、環境変数を使用してノードプールを作成します。

    $ hcp create nodepool openstack \
      --cluster-name <cluster_name> \
      --name $NODEPOOL_NAME \
      --replicas $WORKER_COUNT \
      --openstack-node-flavor $FLAVOR \
      --openstack-node-availability-zone $AZ
    Copy to Clipboard Toggle word wrap

    ここでは、以下のようになります。

    <cluster_name>
    ホステッドクラスターの名前を指定します。
  3. 次のコマンドを実行して、クラスターの namespace 内の nodepool リソースをリスト表示し、ノードプールのステータスを確認します。

    $ oc get nodepools --namespace clusters
    Copy to Clipboard Toggle word wrap

    出力例

    NAME                      CLUSTER         DESIRED NODES   CURRENT NODES   AUTOSCALING   AUTOREPAIR   VERSION   UPDATINGVERSION   UPDATINGCONFIG   MESSAGE
    example                   example         5               5               False         False        4.17.0
    example-az1               example         2                               False         False                  True              True             Minimum availability requires 2 replicas, current 0 available
    Copy to Clipboard Toggle word wrap

  4. 次のコマンドを実行して、ホステッドクラスターでノードが起動するのを確認します。

    $ oc --kubeconfig $CLUSTER_NAME-kubeconfig get nodes
    Copy to Clipboard Toggle word wrap

    出力例

    NAME                      STATUS   ROLES    AGE     VERSION
    ...
    example-extra-az-zh9l5    Ready    worker   2m6s    v1.27.4+18eadca
    example-extra-az-zr8mj    Ready    worker   102s    v1.27.4+18eadca
    ...
    Copy to Clipboard Toggle word wrap

  5. 次のコマンドを実行して、ノードプールが作成されたことを確認します。

    $ oc get nodepools --namespace clusters
    Copy to Clipboard Toggle word wrap

    出力例

    NAME              CLUSTER         DESIRED   CURRENT   AVAILABLE   PROGRESSING   MESSAGE
    <node_pool_name>  <cluster_name>  2         2         2           False         All replicas are available
    Copy to Clipboard Toggle word wrap

5.6.4. ノードプールの追加ポートの設定

SR-IOV や複数のネットワークなどの高度なネットワーク環境をサポートするために、ノードプールに追加ポートを設定できます。

5.6.4.1. ノードプールの追加ポートの使用例

ノードプールに追加ポートを設定する一般的な理由は次のとおりです。

SR-IOV (Single Root I/O Virtualization)
1 つの物理ネットワークデバイスを、複数の Virtual Function (VF) として見せかけることを可能にします。追加のポートをノードプールに割り当てることで、ワークロードで SR-IOV インターフェイスを使用して、低レイテンシーで高パフォーマンスのネットワークを実現できます。
DPDK (Data Plane Development Kit)
カーネルを迂回して、ユーザー空間で高速なパケット処理を提供します。追加ポートが割り当てられたノードプールは、DPDK を使用してネットワークパフォーマンスを向上させるワークロード用に、インターフェイスを公開できます。
NFS 上の Manila RWX ボリューム
NFS 上の ReadWriteMany (RWX) ボリュームをサポートし、複数のノードが共有ストレージにアクセスできるようにします。ノードプールに追加ポートを割り当てると、ワークロードが Manila によって使用される NFS ネットワークに到達できるようになります。
Multus CNI
Pod が複数のネットワークインターフェイスに接続できるようにします。追加ポートが割り当てられたノードプールは、デュアルスタック接続やトラフィック分離など、セカンダリーネットワークインターフェイスを必要とするユースケースに対応します。

5.6.4.2. ノードプールの追加ポートのオプション

--openstack-node-additional-port フラグを使用して、OpenStack 上のホステッドクラスター内のノードに追加ポートを割り当てることができます。このフラグは、パラメーターのコンマ区切りリストを受け取ります。パラメーターを複数回使用すると、複数の追加ポートをノードに割り当てることができます。

パラメーターは以下のとおりです。

Expand
パラメーター説明必須デフォルト

network-id

ノードに割り当てるネットワークの ID。

はい

該当なし

vnic-type

ポートに使用する VNIC タイプ。指定されていない場合、Neutron によってデフォルトのタイプ normal が使用されます。

いいえ

該当なし

disable-port-security

ポートのポートセキュリティーを無効にするかどうか。指定されていない場合、ネットワークレベルでポートセキュリティーが明示的に無効にされていない限り、Neutron によってセキュリティーが有効化されます。

いいえ

該当なし

address-pairs

ポートに割り当てる IP アドレスペアのリスト。形式は ip_address=mac_address です。ハイフン (-) で区切って複数のペアを指定できます。mac_address の部分は任意です。

いいえ

該当なし

5.6.4.3. ノードプールの追加ポートの作成

Red Hat OpenStack Platform (RHOSP) 上で動作するホステッドクラスター用のノードプールに追加ポートを設定できます。

前提条件

  • ホステッドクラスターを作成した。
  • 管理クラスターにアクセスできる。
  • hcp CLI がインストールされている。
  • 追加のネットワークが RHOSP に作成されている。
  • ホステッドクラスターによって使用されるプロジェクトが、追加のネットワークにアクセスできる。
  • 「ノードプールの追加ポートのオプション」に記載されているオプションを確認した。

手順

  • hcp create nodepool openstack コマンドに --openstack-node-additional-port オプションを付けて実行し、追加ポートが割り当てられたホステッドクラスターを作成します。以下に例を示します。

    $ hcp create nodepool openstack \
      --cluster-name <cluster_name> \
      --name <nodepool_name> \
      --replicas <replica_count> \
      --openstack-node-flavor <flavor> \
      --openstack-node-additional-port "network-id=<sriov_net_id>,vnic-type=direct,disable-port-security=true" \
      --openstack-node-additional-port "network-id=<lb_net_id>,address-pairs:192.168.0.1-192.168.0.2"
    Copy to Clipboard Toggle word wrap

    ここでは、以下のようになります。

    <cluster_name>
    ホステッドクラスターの名前を指定します。
    <nodepool_name>
    ノードプールの名前を指定します。
    <replica_count>
    必要なレプリカの数を指定します。
    <flavor>
    使用する RHOSP フレーバーを指定します。
    <sriov_net_id>
    SR-IOV ネットワーク ID を指定します。
    <lb_net_id>
    ロードバランサーのネットワーク ID を指定します。

5.6.5. ノードプールの追加ポートの設定

クラウドネイティブネットワーク機能 (CNF) などの高パフォーマンスワークロード向けに、RHOSP 上のホステッドクラスターノードのパフォーマンスをチューニングできます。パフォーマンスチューニングには、RHOSP リソースの設定、パフォーマンスプロファイルの作成、チューニング済みの NodePool リソースのデプロイ、SR-IOV デバイスサポートの有効化が含まれます。

CNF はクラウドネイティブ環境で動作するように設計されています。CNF は、ルーティング、ファイアウォール、負荷分散などのネットワークサービスを提供できます。CNF を実行するために、高性能なコンピューティングおよびネットワークデバイスを使用してノードプールを設定できます。

5.6.5.1. ホステッドクラスターノードのパフォーマンスチューニング

パフォーマンスプロファイルを作成し、チューニング済みの NodePool リソースをデプロイして、Red Hat OpenStack Platform (RHOSP) Hosted Control Plane で高パフォーマンスワークロードを実行します。

前提条件

  • 専用の CPU、メモリー、ホストアグリゲートに関する情報など、ワークロードを実行するのに必要なリソースを含む RHOSP フレーバーがある。
  • SR-IOV または DPDK 対応 NIC に割り当てられた RHOSP ネットワークがある。ホステッドクラスターによって使用されるプロジェクトでネットワークが利用可能である必要があります。

手順

  1. perfprofile.yaml という名前のファイルに、要件を満たすパフォーマンスプロファイルを作成します。以下に例を示します。

    config map のパフォーマンスプロファイルの例

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: perfprof-1
      namespace: clusters
    data:
      tuning: |
        apiVersion: v1
        kind: ConfigMap
        metadata:
          name: cnf-performanceprofile
          namespace: "${HYPERSHIFT_NAMESPACE}"
        data:
          tuning: |
            apiVersion: performance.openshift.io/v2
            kind: PerformanceProfile
            metadata:
              name: cnf-performanceprofile
            spec:
              additionalKernelArgs:
                - nmi_watchdog=0
                - audit=0
                - mce=off
                - processor.max_cstate=1
                - idle=poll
                - intel_idle.max_cstate=0
                - amd_iommu=on
              cpu:
                isolated: "${CPU_ISOLATED}"
                reserved: "${CPU_RESERVED}"
              hugepages:
                defaultHugepagesSize: "1G"
                pages:
                  - count: ${HUGEPAGES}
                    node: 0
                    size: 1G
              nodeSelector:
                node-role.kubernetes.io/worker: ''
              realTimeKernel:
                enabled: false
              globallyDisableIrqLoadBalancing: true
    Copy to Clipboard Toggle word wrap

    重要

    HyperShift Operator の namespace、分離された CPU と予約済み CPU、および huge page 数の環境変数がまだ設定されていない場合は、パフォーマンスプロファイルを適用する前に環境変数を作成してください。

  2. 次のコマンドを実行して、パフォーマンスプロファイル設定を適用します。

    $ oc apply -f perfprof.yaml
    Copy to Clipboard Toggle word wrap
  3. クラスターの名前に CLUSTER_NAME 環境変数がまだ設定されていない場合は、これを定義します。
  4. 次のコマンドを実行して、ノードプール名の環境変数を設定します。

    $ export NODEPOOL_NAME=$CLUSTER_NAME-cnf
    Copy to Clipboard Toggle word wrap
  5. 次のコマンドを実行して、フレーバーの環境変数を設定します。

    $ export FLAVOR="m1.xlarge.nfv"
    Copy to Clipboard Toggle word wrap
  6. 次のコマンドを実行して、パフォーマンスプロファイルを使用するノードプールを作成します。

    $ hcp create nodepool openstack \
      --cluster-name $CLUSTER_NAME \
      --name $NODEPOOL_NAME \
      --node-count 0 \
      --openstack-node-flavor $FLAVOR
    Copy to Clipboard Toggle word wrap
  7. 次のコマンドを実行して、PerformanceProfile リソースを参照するようにノードプールにパッチを適用します。

    $ oc patch nodepool -n ${HYPERSHIFT_NAMESPACE} ${CLUSTER_NAME} \
      -p '{"spec":{"tuningConfig":[{"name":"cnf-performanceprofile"}]}}' --type=merge
    Copy to Clipboard Toggle word wrap
  8. 次のコマンドを実行してノードプールをスケーリングします。

    $ oc scale nodepool/$CLUSTER_NAME --namespace ${HYPERSHIFT_NAMESPACE} --replicas=1
    Copy to Clipboard Toggle word wrap
  9. ノードの準備が完了するまで待ちます。

    1. 次のコマンドを実行して、ノードの準備が完了するまで待ちます。

      $ oc wait --for=condition=UpdatingConfig=True nodepool \
        -n ${HYPERSHIFT_NAMESPACE} ${CLUSTER_NAME} \
        --timeout=5m
      Copy to Clipboard Toggle word wrap
    2. 次のコマンドを実行して、設定の更新が完了するまで待ちます。

      $ oc wait --for=condition=UpdatingConfig=False nodepool \
        -n ${HYPERSHIFT_NAMESPACE} ${CLUSTER_NAME} \
        --timeout=30m
      Copy to Clipboard Toggle word wrap
    3. 次のコマンドを実行して、すべてのノードが正常になるまで待ちます。

      $ oc wait --for=condition=AllNodesHealthy nodepool \
        -n ${HYPERSHIFT_NAMESPACE} ${CLUSTER_NAME} \
        --timeout=5m
      Copy to Clipboard Toggle word wrap
注記

ノードに SSH 接続するか、oc debug コマンドを使用すると、パフォーマンス設定を確認できます。

5.6.5.2. ホステッドクラスターでの SR-IOV Network Operator の有効化

SR-IOV Network Operator を有効にして、NodePool リソースによってデプロイされたノード上の SR-IOV 対応デバイスを管理できます。この Operator はホステッドクラスターで実行され、ラベル付きのワーカーノードを必要とします。

手順

  1. 次のコマンドを実行して、ホステッドクラスター用の kubeconfig ファイルを生成します。

    $ hcp create kubeconfig --name $CLUSTER_NAME > $CLUSTER_NAME-kubeconfig
    Copy to Clipboard Toggle word wrap
  2. 次のコマンドを実行して、kubeconfig リソースの環境変数を作成します。

    $ export KUBECONFIG=$CLUSTER_NAME-kubeconfig
    Copy to Clipboard Toggle word wrap
  3. 次のコマンドを実行して、各ワーカーノードに SR-IOV 機能を示すラベルを付けます。

    $ oc label node <worker_node_name> feature.node.kubernetes.io/network-sriov.capable=true
    Copy to Clipboard Toggle word wrap

    ここでは、以下のようになります。

    <worker_node_name>
    ホステッドクラスター内のワーカーノードの名前を指定します。
  4. 「SR-IOV Network Operator のインストール」の手順に従って、ホステッドクラスターに SR-IOV Network Operator をインストールします。
  5. インストール後、スタンドアロンクラスターと同じプロセスを使用して、ホステッドクラスターで SR-IOV ワークロードを設定します。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat