搜索

11.6. 将 linuxptp 服务配置为普通时钟

download PDF

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,然后在 ordinary-clock-ptp-config.yaml 文件中保存 YAML。

    apiVersion: ptp.openshift.io/v1
    kind: PtpConfig
    metadata:
      name: ordinary-clock-ptp-config 1
      namespace: openshift-ptp
    spec:
      profile: 2
      - name: "profile1" 3
        interface: "ens787f1" 4
        ptp4lOpts: "-s -2" 5
        phc2sysOpts: "-a -r" 6
        ptp4lConf: "" 7
        ptpSchedulingPolicy: SCHED_OTHER 8
        ptpSchedulingPriority: 10 9
      recommend: 10
      - profile: "profile1" 11
        priority: 10 12
        match: 13
        - nodeLabel: "node-role.kubernetes.io/worker" 14
          nodeName: "compute-0.example.com" 15
    1
    PtpConfig CR 的名称。
    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
    ptp4lphc2sys 进程的调度策略。默认值为 SCHED_OTHER。在支持 FIFO 调度的系统上使用 SCHED_FIFO
    9
    ptpSchedulingPolicy 设置为 SCHED_FIFO 时,用于为 ptp4lphc2sys 进程设置 FIFO 优先级的整数值(1 到 65)。当 ptpSchedulingPolicy 设置为 SCHED_OTHER 时,不使用 ptpSchedulingPriority 字段。
    10
    指定包括一个或多个 recommend 对象的数组,该数组定义了如何将配置集应用到节点的规则。
    11
    指定 profile 部分中定义的 profile 对象名称。
    12
    使用 099 之间的一个整数值指定 priority。大数值的优先级较低,因此优先级 99 低于优先级 10。如果节点可以根据 match 字段中定义的规则与多个配置集匹配,则优先级较高的配置集会应用到该节点。
    13
    使用 nodeLabelnodeName 指定 match 规则。
    14
    指定 nodeLabel,它带有来自节点对象的 node.Labelskey(可以通过运行 oc get nodes --show-labels 命令找出这些信息)。
    15
    指定 nodeName,它带有来自节点对象的 node.Name(可以通过运行 oc get nodes 命令找到这些信息)。
  2. 运行以下命令来创建 CR:

    $ oc create -f ordinary-clock-ptp-config.yaml

验证步骤

  1. 检查 PtpConfig 配置集是否已应用到节点。

    1. 运行以下命令,获取 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

    2. 检查配置集是否正确。检查与 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] ------------------------------------

其他资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.