11.5. 为托管集群配置 NTP 服务器


您可以使用 Butane 为托管集群配置网络时间协议(NTP)服务器。

流程

  1. 创建一个 Butane 配置文件 99-worker-chrony.bu,其中包含 chrony.conf 文件的内容。有关 Butane 的更多信息,请参阅"使用 Butane 创建机器配置"。

    99-worker-chrony.bu 配置示例

    # ...
    variant: openshift
    version: 4.19.0
    metadata:
      name: 99-worker-chrony
      labels:
        machineconfiguration.openshift.io/role: worker
    storage:
      files:
      - path: /etc/chrony.conf
        mode: 0644  
    1
    
        overwrite: true
        contents:
          inline: |
            pool 0.rhel.pool.ntp.org iburst  
    2
    
            driftfile /var/lib/chrony/drift
            makestep 1.0 3
            rtcsync
            logdir /var/log/chrony
    # ...
    Copy to Clipboard Toggle word wrap

    1
    为机器配置文件的 mode 字段指定数值模式。创建文件并应用更改后,mode 字段将转换为十进制值。
    2
    指定任何有效的、可访问的时间源,如由动态主机配置协议(DHCP)服务器提供的时间源。
    注意

    对于机器到机器的通信,用户数据报协议(UDP)端口上的 NTP 为 123。如果配置了外部 NTP 时间服务器,您必须打开 UDP 端口 123

  2. 使用 Butane 生成 MachineConfig 对象文件 99-worker-chrony.yaml,其中包含 Butane 发送到节点的配置。运行以下命令:

    $ butane 99-worker-chrony.bu -o 99-worker-chrony.yaml
    Copy to Clipboard Toggle word wrap

    99-worker-chrony.yaml 配置示例

    # Generated by Butane; do not edit
    apiVersion: machineconfiguration.openshift.io/v1
    kind: MachineConfig
    metadata:
      labels:
        machineconfiguration.openshift.io/role: worker
      name: <machineconfig_name>
    spec:
      config:
        ignition:
          version: 3.2.0
        storage:
          files:
            - contents:
                source: data:...
              mode: 420
              overwrite: true
              path: /example/path
    Copy to Clipboard Toggle word wrap

  3. 在管理集群的配置映射中添加 99-worker-chrony.yaml 文件的内容:

    配置映射示例

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: <configmap_name>
      namespace: <namespace>  
    1
    
    data:
      config: |
        apiVersion: machineconfiguration.openshift.io/v1
        kind: MachineConfig
        metadata:
          labels:
            machineconfiguration.openshift.io/role: worker
          name: <machineconfig_name>
        spec:
          config:
            ignition:
              version: 3.2.0
            storage:
              files:
              - contents:
                  source: data:...
                mode: 420
                overwrite: true
                path: /example/path
    # ...
    Copy to Clipboard Toggle word wrap

    1
    <namespace> 替换为创建节点池的命名空间的名称,如 clusters
  4. 运行以下命令,将配置映射应用到节点池:

    $ oc edit nodepool <nodepool_name> --namespace <hosted_cluster_namespace>
    Copy to Clipboard Toggle word wrap

    NodePool 配置示例

    apiVersion: hypershift.openshift.io/v1alpha1
    kind: NodePool
    metadata:
    # ...
      name: nodepool-1
      namespace: clusters
    # ...
    spec:
      config:
      - name: <configmap_name> 
    1
    
    # ...
    Copy to Clipboard Toggle word wrap

    1
    <configmap_name> 替换为配置映射的名称。
  5. infra-env.yaml 文件中添加 NTP 服务器列表,该文件定义 InfraEnv 自定义资源(CR):

    infra-env.yaml 文件示例

    apiVersion: agent-install.openshift.io/v1beta1
    kind: InfraEnv
    # ...
    spec:
      additionalNTPSources:
      - <ntp_server> 
    1
    
      - <ntp_server1>
      - <ntp_server2>
    # ...
    Copy to Clipboard Toggle word wrap

    1
    <ntp_server> 替换为 NTP 服务器的名称。有关创建主机清单和 InfraEnv CR 的详情,请参阅"创建主机清单"。
  6. 运行以下命令来应用 InfraEnv CR:

    $ oc apply -f infra-env.yaml
    Copy to Clipboard Toggle word wrap

验证

  • 检查以下字段以了解主机清单的状态:

    • conditions :指示镜像是否已成功创建的标准 Kubernetes 条件。
    • isoDownloadURL :下载发现镜像的 URL。
    • createdTime :镜像最后一次创建的时间。如果您修改了 InfraEnv CR,请确保在下载新镜像前更新了时间戳。

      运行以下命令验证您的主机清单是否已创建:

      $ oc describe infraenv <infraenv_resource_name> -n <infraenv_namespace>
      Copy to Clipboard Toggle word wrap
      注意

      如果您修改了 InfraEnv CR,请通过查看 createdTime 字段来确认 InfraEnv CR 已创建新的 Discovery Image。如果您已经引导的主机,请使用最新的发现镜像再次引导它们。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat