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 ネットワークがある。ホステッドクラスターによって使用されるプロジェクトでネットワークが利用可能である必要があります。
手順
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重要HyperShift Operator の namespace、分離された CPU と予約済み CPU、および huge page 数の環境変数がまだ設定されていない場合は、パフォーマンスプロファイルを適用する前に環境変数を作成してください。
次のコマンドを実行して、パフォーマンスプロファイル設定を適用します。
$ oc apply -f perfprof.yaml-
クラスターの名前に
CLUSTER_NAME環境変数がまだ設定されていない場合は、これを定義します。 次のコマンドを実行して、ノードプール名の環境変数を設定します。
$ export NODEPOOL_NAME=$CLUSTER_NAME-cnf次のコマンドを実行して、フレーバーの環境変数を設定します。
$ export FLAVOR="m1.xlarge.nfv"次のコマンドを実行して、パフォーマンスプロファイルを使用するノードプールを作成します。
$ hcp create nodepool openstack \ --cluster-name $CLUSTER_NAME \ --name $NODEPOOL_NAME \ --node-count 0 \ --openstack-node-flavor $FLAVOR次のコマンドを実行して、
PerformanceProfileリソースを参照するようにノードプールにパッチを適用します。$ oc patch nodepool -n ${HYPERSHIFT_NAMESPACE} ${CLUSTER_NAME} \ -p '{"spec":{"tuningConfig":[{"name":"cnf-performanceprofile"}]}}' --type=merge次のコマンドを実行してノードプールをスケーリングします。
$ oc scale nodepool/$CLUSTER_NAME --namespace ${HYPERSHIFT_NAMESPACE} --replicas=1ノードの準備が完了するまで待ちます。
次のコマンドを実行して、ノードの準備が完了するまで待ちます。
$ oc wait --for=condition=UpdatingConfig=True nodepool \ -n ${HYPERSHIFT_NAMESPACE} ${CLUSTER_NAME} \ --timeout=5m次のコマンドを実行して、設定の更新が完了するまで待ちます。
$ oc wait --for=condition=UpdatingConfig=False nodepool \ -n ${HYPERSHIFT_NAMESPACE} ${CLUSTER_NAME} \ --timeout=30m次のコマンドを実行して、すべてのノードが正常になるまで待ちます。
$ oc wait --for=condition=AllNodesHealthy nodepool \ -n ${HYPERSHIFT_NAMESPACE} ${CLUSTER_NAME} \ --timeout=5m
ノードに SSH 接続するか、oc debug コマンドを使用すると、パフォーマンス設定を確認できます。