11.4. 配置 Linuxptp 服务


PTP Operator 将 PtpConfig.ptp.openshift.io 自定义资源定义 (CRD) 添加至 OpenShift Container Platform。您可以通过创建 PtpConfig 自定义资源(CR)对象来配置 Linuxptp 服务(ptp4l、phc2sys)。

先决条件

  • 安装 OpenShift CLI(oc)。
  • 以具有 cluster-admin 特权的用户身份登录。
  • 已安装了 PTP Operator。

流程

  1. 创建以下 PtpConfig CR,然后在 <name>-ptp-config.yaml 文件中保存 YAML。使用配置的实际名称替换 <name>

    apiVersion: ptp.openshift.io/v1
    kind: PtpConfig
    metadata:
      name: <name> 1
      namespace: openshift-ptp 2
    spec:
      profile: 3
      - name: "profile1" 4
        interface: "ens787f1" 5
        ptp4lOpts: "-s -2" 6
        phc2sysOpts: "-a -r" 7
        ptp4lConf: "" 8
      recommend: 9
      - profile: "profile1" 10
        priority: 10 11
        match: 12
        - nodeLabel: "node-role.kubernetes.io/worker" 13
          nodeName: "dev-worker-0" 14
    1
    PtpConfig CR 指定名称。
    2
    指定安装 PTP Operator 的命名空间。
    3
    指定包括一个或多个 profile 的数组。
    4
    指定用于唯一标识配置集(profile)对象的配置集对象名称。
    5
    指定 ptp4l 服务要使用的网络接口名称,如 ens787f1
    6
    ptp4l 服务指定系统配置选项,如 -s -2。这不应该包含接口名称 -i <interface> 和服务配置文件 -f /etc/ptp4l.conf ,因为这些文件会被自动附加。
    7
    phc2sys 服务指定系统配置选项,如 -a -r
    8
    指定一个字符串,其中包含要替换默认的 /etc/ptp4l.conf 文件的配置。要使用默认配置,请将字段留空。
    9
    指定包括一个或多个 recommend 对象的数组,该数组定义了如何将配置集应用到节点的规则。
    10
    指定 profile 部分中定义的 profile 对象名称。
    11
    使用 099 之间的一个整数值指定 priority。大数值的优先级较低,因此优先级 99 低于优先级 10。如果根据 match 项中定义的规则,节点可以与多个配置集相匹配,具有最高优先级的配置集将被应用到那个节点。
    12
    使用 nodeLabelnodeName 指定 match 规则。
    13
    指定 nodeLabel,它带有来自节点对象的 node.Labelskey(可以通过运行 oc get nodes --show-labels 命令找出这些信息)。
    14
    指定 nodeName,它带有来自节点对象的 node.Name(可以通过运行 oc get nodes 命令找到这些信息)。
  2. 运行以下命令来创建 CR:

    $ oc create -f <filename> 1
    1
    <filename> 替换为您在上一步中创建的文件的名称。
  3. 可选:检查 PtpConfig 配置集是否应用到与 nodeLabelnodeName 匹配的节点。

    $ oc get pods -n openshift-ptp -o wide

    输出示例

    NAME                            READY   STATUS    RESTARTS   AGE   IP               NODE           NOMINATED NODE   READINESS GATES
    linuxptp-daemon-4xkbb           1/1     Running   0          43m   192.168.111.15   dev-worker-0   <none>           <none>
    linuxptp-daemon-tdspf           1/1     Running   0          43m   192.168.111.11   dev-master-0   <none>           <none>
    ptp-operator-657bbb64c8-2f8sj   1/1     Running   0          43m   10.128.0.116     dev-master-0   <none>           <none>
    
    $ oc logs linuxptp-daemon-4xkbb -n openshift-ptp
    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 1
    I1115 09:41:17.117616 4143292 daemon.go:102] Interface: ens787f1    2
    I1115 09:41:17.117620 4143292 daemon.go:102] Ptp4lOpts: -s -2       3
    I1115 09:41:17.117623 4143292 daemon.go:102] Phc2sysOpts: -a -r     4
    I1115 09:41:17.117626 4143292 daemon.go:116] ------------------------------------
    I1115 09:41:18.117934 4143292 daemon.go:186] Starting phc2sys...
    I1115 09:41:18.117985 4143292 daemon.go:187] phc2sys cmd: &{Path:/usr/sbin/phc2sys Args:[/usr/sbin/phc2sys -a -r] Env:[] Dir: Stdin:<nil> Stdout:<nil> Stderr:<nil> ExtraFiles:[] SysProcAttr:<nil> Process:<nil> ProcessState:<nil> ctx:<nil> lookPathErr:<nil> finished:false childFiles:[] closeAfterStart:[] closeAfterWait:[] goroutine:[] errch:<nil> waitDone:<nil>}
    I1115 09:41:19.118175 4143292 daemon.go:186] Starting ptp4l...
    I1115 09:41:19.118209 4143292 daemon.go:187] ptp4l cmd: &{Path:/usr/sbin/ptp4l Args:[/usr/sbin/ptp4l -m -f /etc/ptp4l.conf -i ens787f1 -s -2] Env:[] Dir: Stdin:<nil> Stdout:<nil> Stderr:<nil> ExtraFiles:[] SysProcAttr:<nil> Process:<nil> ProcessState:<nil> ctx:<nil> lookPathErr:<nil> finished:false childFiles:[] closeAfterStart:[] closeAfterWait:[] goroutine:[] errch:<nil> waitDone:<nil>}
    ptp4l[102189.864]: selected /dev/ptp5 as PTP clock
    ptp4l[102189.886]: port 1: INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[102189.886]: port 0: INITIALIZING to LISTENING on INIT_COMPLETE

    1
    Profile Name 是应用到 dev-worker-0 节点的名称。
    2
    Interface 是在 profile1 的 interface 项中指定的 PTP 设备。在这个接口中运行的 ptp4l 服务。
    3
    ptp4lOptsprofile1 中的 ptp4lOpts 项指定的 ptp4l sysconfig 选项。
    4
    Phc2sysOptsprofile1 中的 Phc2sysOpts 项指定的 phc2sys sysconfig 选项。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.