11.6. linuxptp サービスを通常のクロックとして設定
PTP Operator は PtpConfig.ptp.openshift.io カスタムリソース定義 (CRD) を OpenShift Container Platform に追加します。PtpConfig カスタムリソース (CR) オブジェクトを作成して、linuxptp サービス (ptp4l、phc2sys) を設定できます。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-admin権限を持つユーザーとしてログインしている。 - PTP Operator をインストールします。
手順
以下の
PtpConfigCR を作成してから、YAML をordinary-clock-ptp-config.yamlファイルに保存します。apiVersion: ptp.openshift.io/v1 kind: PtpConfig metadata: name: ordinary-clock-ptp-config1 namespace: openshift-ptp spec: profile:2 - name: "profile1"3 interface: "ens787f1"4 ptp4lOpts: "-s -2"5 phc2sysOpts: "-a -r"6 ptp4lConf: ""7 ptpSchedulingPolicy: SCHED_OTHER8 ptpSchedulingPriority: 109 recommend:10 - profile: "profile1"11 priority: 1012 match:13 - nodeLabel: "node-role.kubernetes.io/worker"14 nodeName: "compute-0.example.com"15 - 1
PtpConfigCR の名前。- 2
- 1 つ以上の
profileオブジェクトの配列を指定します。 - 3
- プロファイルオブジェクトを一意に識別するプロファイルオブジェクトの名前を指定します。
- 4
ptp4lサービスで使用するネットワークインターフェイス名を指定します (例:ens787f1)。- 5
ptp4lサービスのシステム設定オプションを指定します。たとえば、-2で IEEE 802.3 ネットワークトランスポートを選択します。ネットワークインターフェイス名とサービス設定ファイルが自動的に追加されるため、オプションには、ネットワークインターフェイス名-i <interface>およびサービス設定ファイル-f /etc/ptp4l.confを含めないでください。- 6
phc2sysサービスのシステム設定オプション (例:-a -r) を指定します。このフィールドが空の場合、PTP Operator はphc2sysサービスを開始しません。- 7
- デフォルトの
/etc/ptp4l.confファイルを置き換える設定が含まれる文字列を指定します。デフォルト設定を使用するには、フィールドを空のままにします。 - 8
ptp4lとphc2sysプロセスのスケジューリングポリシー。デフォルト値はSCHED_OTHERです。FIFO スケジューリングをサポートするシステムでは、SCHED_FIFOを使用してください。- 9
ptp SchedulingPolicyがSCHED_FIFOに設定されている場合に、ptp4lおよびphc2sysプロセスの FIFO の優先度を設定するために使用される 1-65 の整数値。ptpSchedulingPriorityフィールドは、ptpSchedulingPolicyがSCHED_OTHERに設定されている場合は使用されません。- 10
profileがノードに適用される方法を定義する 1 つ以上のrecommendオブジェクトの配列を指定します。- 11
profileセクションに定義されるprofileオブジェクト名を指定します。- 12
0から99までの整数値でpriorityを指定します。数値が大きいほど優先度が低くなるため、99の優先度は10よりも低くなります。ノードがmatchフィールドで定義されるルールに基づいて複数のプロファイルに一致する場合、優先順位の高いプロファイルがそのノードに適用されます。- 13
matchルールを、nodeLabelまたはnodeNameで指定します。- 14
oc get nodes --show-labelsコマンドを使用して、ノードオブジェクトのnode.LabelsのkeyでnodeLabelを指定します。- 15
oc get nodesコマンドを使用して、ノードオブジェクトのnode.NameでnodeNameを指定します。
以下のコマンドを実行して CR を作成します。
$ oc create -f ordinary-clock-ptp-config.yaml
検証手順
PtpConfigプロファイルがノードに適用されていることを確認します。以下のコマンドを実行して、
openshift-ptpnamespace の Pod の一覧を取得します。$ oc get pods -n openshift-ptp -o wide出力例
NAME READY STATUS RESTARTS AGE IP NODE linuxptp-daemon-4xkbb 1/1 Running 0 43m 10.1.196.24 compute-0.example.com linuxptp-daemon-tdspf 1/1 Running 0 43m 10.1.196.25 compute-1.example.com ptp-operator-657bbb64c8-2f8sj 1/1 Running 0 43m 10.129.0.61 control-plane-1.example.comプロファイルが正しいことを確認します。
PtpConfigプロファイルで指定したノードに対応するlinuxptpデーモンのログを検査します。以下のコマンドを実行します。$ oc logs linuxptp-daemon-4xkbb -n openshift-ptp -c linuxptp-daemon-container出力例
I1115 09:41:17.117596 4143292 daemon.go:107] in applyNodePTPProfile I1115 09:41:17.117604 4143292 daemon.go:109] updating NodePTPProfile to: I1115 09:41:17.117607 4143292 daemon.go:110] ------------------------------------ I1115 09:41:17.117612 4143292 daemon.go:102] Profile Name: profile1 I1115 09:41:17.117616 4143292 daemon.go:102] Interface: ens787f1 I1115 09:41:17.117620 4143292 daemon.go:102] Ptp4lOpts: -s -2 I1115 09:41:17.117623 4143292 daemon.go:102] Phc2sysOpts: -a -r I1115 09:41:17.117626 4143292 daemon.go:116] ------------------------------------