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,然后在ordinary-clock-ptp-config.yaml文件中保存 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
- 指定包括一个或多个
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
- 当
ptpSchedulingPolicy设置为SCHED_FIFO时,用于为ptp4l和phc2sys进程设置 FIFO 优先级的整数值(1 到 65)。当ptpSchedulingPolicy设置为SCHED_OTHER时,不使用ptpSchedulingPriority字段。 - 10
- 指定包括一个或多个
recommend对象的数组,该数组定义了如何将配置集应用到节点的规则。 - 11
- 指定
profile部分中定义的profile对象名称。 - 12
- 使用
0到99之间的一个整数值指定priority。大数值的优先级较低,因此优先级99低于优先级10。如果节点可以根据match字段中定义的规则与多个配置集匹配,则优先级较高的配置集会应用到该节点。 - 13
- 使用
nodeLabel或nodeName指定match规则。 - 14
- 指定
nodeLabel,它带有来自节点对象的node.Labels的key(可以通过运行oc get nodes --show-labels命令找出这些信息)。 - 15
- 指定
nodeName,它带有来自节点对象的node.Name(可以通过运行oc get nodes命令找到这些信息)。
运行以下命令来创建 CR:
$ oc create -f ordinary-clock-ptp-config.yaml
验证步骤
检查
PtpConfig配置集是否已应用到节点。运行以下命令,获取
openshift-ptp命名空间中的 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] ------------------------------------