7.3.10. 配置 chrony 时间服务

您需要修改 chrony.conf 文件的内容来设置 chrony 时间服务(chronyd)使用的时间服务器和相关设置,并通过一个机器配置将这些内容传递给节点。

流程

  1. 创建 chrony.conf 文件的内容并对其进行 base64 编码。例如:

    $ cat << EOF | base64
        pool 0.rhel.pool.ntp.org iburst 1
        driftfile /var/lib/chrony/drift
        makestep 1.0 3
        rtcsync
        logdir /var/log/chrony
    EOF
    1
    指定任何有效的、可访问的时间源,如 DHCP 服务器提供的时间源。

    输出示例

    ICAgIHNlcnZlciBjbG9jay5yZWRoYXQuY29tIGlidXJzdAogICAgZHJpZnRmaWxlIC92YXIvbGli
    L2Nocm9ueS9kcmlmdAogICAgbWFrZXN0ZXAgMS4wIDMKICAgIHJ0Y3N5bmMKICAgIGxvZ2RpciAv
    dmFyL2xvZy9jaHJvbnkK

  2. 创建 MachineConfig 对象文件,将 base64 字符串替换为您刚刚创建的字符串。本例将文件添加到 master 节点。您可以将其更改为 worker,或为 worker 角色创建额外的 MachineConfig。为集群使用的每种机器创建 MachineConfig 文件:

    $ cat << EOF > ./99-masters-chrony-configuration.yaml
    apiVersion: machineconfiguration.openshift.io/v1
    kind: MachineConfig
    metadata:
      labels:
        machineconfiguration.openshift.io/role: master
      name: 99-masters-chrony-configuration
    spec:
      config:
        ignition:
          config: {}
          security:
            tls: {}
          timeouts: {}
          version: 3.2.0
        networkd: {}
        passwd: {}
        storage:
          files:
          - contents:
              source: data:text/plain;charset=utf-8;base64,ICAgIHNlcnZlciBjbG9jay5yZWRoYXQuY29tIGlidXJzdAogICAgZHJpZnRmaWxlIC92YXIvbGliL2Nocm9ueS9kcmlmdAogICAgbWFrZXN0ZXAgMS4wIDMKICAgIHJ0Y3N5bmMKICAgIGxvZ2RpciAvdmFyL2xvZy9jaHJvbnkK
            mode: 420 1
            overwrite: true
            path: /etc/chrony.conf
      osImageURL: ""
    EOF
    1
    为机器配置文件的 mode 字段指定数值模式。在创建文件并应用更改后,模式 将转换为十进制值。您可以使用 oc get mc <mc-name> -o yaml 命令来检查 YAML 文件。
  3. 对配置文件做一个备份副本。
  4. 使用两种方式之一应用配置:

    • 如果集群还没有启动,在生成清单文件后,将此文件添加到 <installation_directory>/openshift 目录中,然后继续创建集群。
    • 如果集群已在运行,请应用该文件:

       $ oc apply -f ./99-masters-chrony-configuration.yaml