7.3. 推奨されるクラスター設定が適用されていることの確認
クラスターが正しい設定で実行されていることを確認できます。以下の手順では、OpenShift Container Platform 4.17 クラスターに DU アプリケーションをデプロイするために必要なさまざまな設定を確認する方法を説明します。
前提条件
- クラスターをデプロイし、vDU ワークロード用に調整している。
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
権限を持つユーザーとしてログインしている。
手順
デフォルトの OperatorHub ソースが無効になっていることを確認します。以下のコマンドを実行します。
oc get operatorhub cluster -o yaml
$ oc get operatorhub cluster -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
spec: disableAllDefaultSources: true
spec: disableAllDefaultSources: true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、必要なすべての
CatalogSource
リソースにワークロードのパーティショニング (PreferredDuringScheduling
) のアノテーションが付けられていることを確認します。oc get catalogsource -A -o jsonpath='{range .items[*]}{.metadata.name}{" -- "}{.metadata.annotations.target\.workload\.openshift\.io/management}{"\n"}{end}'
$ oc get catalogsource -A -o jsonpath='{range .items[*]}{.metadata.name}{" -- "}{.metadata.annotations.target\.workload\.openshift\.io/management}{"\n"}{end}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
certified-operators -- {"effect": "PreferredDuringScheduling"} community-operators -- {"effect": "PreferredDuringScheduling"} ran-operators redhat-marketplace -- {"effect": "PreferredDuringScheduling"} redhat-operators -- {"effect": "PreferredDuringScheduling"}
certified-operators -- {"effect": "PreferredDuringScheduling"} community-operators -- {"effect": "PreferredDuringScheduling"} ran-operators
1 redhat-marketplace -- {"effect": "PreferredDuringScheduling"} redhat-operators -- {"effect": "PreferredDuringScheduling"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- アノテーションが付けられていない
CatalogSource
リソースも返されます。この例では、ran-operators
CatalogSource
リソースにはアノテーションが付けられておらず、PreferredDuringScheduling
アノテーションがありません。
注記適切に設定された vDU クラスターでは、単一のアノテーション付きカタログソースのみがリスト表示されます。
該当するすべての OpenShift Container Platform Operator の namespace がワークロードのパーティショニング用にアノテーションされていることを確認します。これには、コア OpenShift Container Platform とともにインストールされたすべての Operator と、参照 DU チューニング設定に含まれる追加の Operator のセットが含まれます。以下のコマンドを実行します。
oc get namespaces -A -o jsonpath='{range .items[*]}{.metadata.name}{" -- "}{.metadata.annotations.workload\.openshift\.io/allowed}{"\n"}{end}'
$ oc get namespaces -A -o jsonpath='{range .items[*]}{.metadata.name}{" -- "}{.metadata.annotations.workload\.openshift\.io/allowed}{"\n"}{end}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
default -- openshift-apiserver -- management openshift-apiserver-operator -- management openshift-authentication -- management openshift-authentication-operator -- management
default -- openshift-apiserver -- management openshift-apiserver-operator -- management openshift-authentication -- management openshift-authentication-operator -- management
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要追加の Operator は、ワークロードパーティショニングのためにアノテーションを付けてはなりません。前のコマンドからの出力では、追加の Operator が
--
セパレーターの右側に値なしでリストされている必要があります。ClusterLogging
設定が正しいことを確認してください。以下のコマンドを実行します。適切な入力ログと出力ログが設定されていることを確認します。
oc get -n openshift-logging ClusterLogForwarder instance -o yaml
$ oc get -n openshift-logging ClusterLogForwarder instance -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow キュレーションスケジュールがアプリケーションに適していることを確認します。
oc get -n openshift-logging clusterloggings.logging.openshift.io instance -o yaml
$ oc get -n openshift-logging clusterloggings.logging.openshift.io instance -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
次のコマンドを実行して、Web コンソールが無効になっている (
managementState: Removed
) ことを確認します。oc get consoles.operator.openshift.io cluster -o jsonpath="{ .spec.managementState }"
$ oc get consoles.operator.openshift.io cluster -o jsonpath="{ .spec.managementState }"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Removed
Removed
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、クラスターノードで
chronyd
が無効になっていることを確認します。oc debug node/<node_name>
$ oc debug node/<node_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードで
chronyd
のステータスを確認します。chroot /host
sh-4.4# chroot /host
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl status chronyd
sh-4.4# systemctl status chronyd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
● chronyd.service - NTP client/server Loaded: loaded (/usr/lib/systemd/system/chronyd.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:chronyd(8) man:chrony.conf(5)
● chronyd.service - NTP client/server Loaded: loaded (/usr/lib/systemd/system/chronyd.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:chronyd(8) man:chrony.conf(5)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow linuxptp-daemon
コンテナーへのリモートシェル接続と PTP Management Client (pmc
) ツールを使用して、PTP インターフェイスがプライマリークロックに正常に同期されていることを確認します。次のコマンドを実行して、
$PTP_POD_NAME
変数にlinuxptp-daemon
Pod の名前を設定します。PTP_POD_NAME=$(oc get pods -n openshift-ptp -l app=linuxptp-daemon -o name)
$ PTP_POD_NAME=$(oc get pods -n openshift-ptp -l app=linuxptp-daemon -o name)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、PTP デバイスの同期ステータスを確認します。
oc -n openshift-ptp rsh -c linuxptp-daemon-container ${PTP_POD_NAME} pmc -u -f /var/run/ptp4l.0.config -b 0 'GET PORT_DATA_SET'
$ oc -n openshift-ptp rsh -c linuxptp-daemon-container ${PTP_POD_NAME} pmc -u -f /var/run/ptp4l.0.config -b 0 'GET PORT_DATA_SET'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の
pmc
コマンドを実行して、PTP クロックのステータスを確認します。oc -n openshift-ptp rsh -c linuxptp-daemon-container ${PTP_POD_NAME} pmc -u -f /var/run/ptp4l.0.config -b 0 'GET TIME_STATUS_NP'
$ oc -n openshift-ptp rsh -c linuxptp-daemon-container ${PTP_POD_NAME} pmc -u -f /var/run/ptp4l.0.config -b 0 'GET TIME_STATUS_NP'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /var/run/ptp4l.0.config
の値に対応する予期されるmaster offset
値がlinuxptp-daemon-container
ログにあることを確認します。oc logs $PTP_POD_NAME -n openshift-ptp -c linuxptp-daemon-container
$ oc logs $PTP_POD_NAME -n openshift-ptp -c linuxptp-daemon-container
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
phc2sys[56020.341]: [ptp4l.1.config] CLOCK_REALTIME phc offset -1731092 s2 freq -1546242 delay 497 ptp4l[56020.390]: [ptp4l.1.config] master offset -2 s2 freq -5863 path delay 541 ptp4l[56020.390]: [ptp4l.0.config] master offset -8 s2 freq -10699 path delay 533
phc2sys[56020.341]: [ptp4l.1.config] CLOCK_REALTIME phc offset -1731092 s2 freq -1546242 delay 497 ptp4l[56020.390]: [ptp4l.1.config] master offset -2 s2 freq -5863 path delay 541 ptp4l[56020.390]: [ptp4l.0.config] master offset -8 s2 freq -10699 path delay 533
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
次のコマンドを実行して、SR-IOV 設定が正しいことを確認します。
SriovOperatorConfig
リソースのdisableDrain
値がtrue
に設定されていることを確認します。oc get sriovoperatorconfig -n openshift-sriov-network-operator default -o jsonpath="{.spec.disableDrain}{'\n'}"
$ oc get sriovoperatorconfig -n openshift-sriov-network-operator default -o jsonpath="{.spec.disableDrain}{'\n'}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
true
true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
SriovNetworkNodeState
同期ステータスがSucceeded
であることを確認します。oc get SriovNetworkNodeStates -n openshift-sriov-network-operator -o jsonpath="{.items[*].status.syncStatus}{'\n'}"
$ oc get SriovNetworkNodeStates -n openshift-sriov-network-operator -o jsonpath="{.items[*].status.syncStatus}{'\n'}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Succeeded
Succeeded
Copy to Clipboard Copied! Toggle word wrap Toggle overflow SR-IOV 用に設定された各インターフェイスの下の仮想機能 (
Vfs
) の予想される数と設定が、.status.interfaces
フィールドに存在し、正しいことを確認します。以下に例を示します。oc get SriovNetworkNodeStates -n openshift-sriov-network-operator -o yaml
$ oc get SriovNetworkNodeStates -n openshift-sriov-network-operator -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
クラスターパフォーマンスプロファイルが正しいことを確認します。
cpu
セクションとhugepages
セクションは、ハードウェア設定によって異なります。以下のコマンドを実行します。oc get PerformanceProfile openshift-node-performance-profile -o yaml
$ oc get PerformanceProfile openshift-node-performance-profile -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記CPU 設定は、サーバーで使用可能なコアの数に依存し、ワークロードパーティショニングの設定に合わせる必要があります。
hugepages
の設定は、サーバーとアプリケーションに依存します。次のコマンドを実行して、
PerformanceProfile
がクラスターに正常に適用されたことを確認します。oc get performanceprofile openshift-node-performance-profile -o jsonpath="{range .status.conditions[*]}{ @.type }{' -- '}{@.status}{'\n'}{end}"
$ oc get performanceprofile openshift-node-performance-profile -o jsonpath="{range .status.conditions[*]}{ @.type }{' -- '}{@.status}{'\n'}{end}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Available -- True Upgradeable -- True Progressing -- False Degraded -- False
Available -- True Upgradeable -- True Progressing -- False Degraded -- False
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
Tuned
パフォーマンスパッチの設定を確認します。oc get tuneds.tuned.openshift.io -n openshift-cluster-node-tuning-operator performance-patch -o yaml
$ oc get tuneds.tuned.openshift.io -n openshift-cluster-node-tuning-operator performance-patch -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
cmdline=nohz_full=
の cpu リストは、ハードウェア設定によって異なります。
次のコマンドを実行して、クラスターネットワーク診断が無効になっていることを確認します。
oc get networks.operator.openshift.io cluster -o jsonpath='{.spec.disableNetworkDiagnostics}'
$ oc get networks.operator.openshift.io cluster -o jsonpath='{.spec.disableNetworkDiagnostics}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
true
true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Kubelet
のハウスキーピング間隔が、遅い速度に調整されていることを確認します。これは、containerMountNS
マシン設定で設定されます。以下のコマンドを実行します。oc describe machineconfig container-mount-namespace-and-kubelet-conf-master | grep OPENSHIFT_MAX_HOUSEKEEPING_INTERVAL_DURATION
$ oc describe machineconfig container-mount-namespace-and-kubelet-conf-master | grep OPENSHIFT_MAX_HOUSEKEEPING_INTERVAL_DURATION
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Environment="OPENSHIFT_MAX_HOUSEKEEPING_INTERVAL_DURATION=60s"
Environment="OPENSHIFT_MAX_HOUSEKEEPING_INTERVAL_DURATION=60s"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、Grafana と
alertManagerMain
が無効になっていること、および Prometheus の保持期間が 24 時間に設定されていることを確認します。oc get configmap cluster-monitoring-config -n openshift-monitoring -o jsonpath="{ .data.config\.yaml }"
$ oc get configmap cluster-monitoring-config -n openshift-monitoring -o jsonpath="{ .data.config\.yaml }"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを使用して、Grafana および
alertManagerMain
ルートがクラスター内に見つからないことを確認します。oc get route -n openshift-monitoring alertmanager-main
$ oc get route -n openshift-monitoring alertmanager-main
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get route -n openshift-monitoring grafana
$ oc get route -n openshift-monitoring grafana
Copy to Clipboard Copied! Toggle word wrap Toggle overflow どちらのクエリーも
Error from server (NotFound)
メッセージを返す必要があります。
次のコマンドを実行して、
PerformanceProfile
、Tuned
performance-patch、ワークロードパーティショニング、およびカーネルコマンドライン引数のそれぞれにreserved
として割り当てられた CPU が少なくとも 4 つあることを確認します。oc get performanceprofile -o jsonpath="{ .items[0].spec.cpu.reserved }"
$ oc get performanceprofile -o jsonpath="{ .items[0].spec.cpu.reserved }"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
0-3
0-3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記ワークロードの要件によっては、追加の予約済み CPU の割り当てが必要になる場合があります。