4.5. 为托管集群配置 NTP 服务器
您可以使用 Butane 为托管集群配置网络时间协议(NTP)服务器。
流程
创建一个 Butane 配置文件
99-worker-chrony.bu,其中包含chrony.conf文件的内容。有关 Butane 的更多信息,请参阅"使用 Butane 创建机器配置"。99-worker-chrony.bu配置示例# ... variant: openshift version: 4.14.0 metadata: name: 99-worker-chrony labels: machineconfiguration.openshift.io/role: worker storage: files: - path: /etc/chrony.conf mode: 06441 overwrite: true contents: inline: | pool 0.rhel.pool.ntp.org iburst2 driftfile /var/lib/chrony/drift makestep 1.0 3 rtcsync logdir /var/log/chrony # ...注意对于机器到机器的通信,用户数据报协议(UDP)端口上的 NTP 为
123。如果配置了外部 NTP 时间服务器,您必须打开 UDP 端口123。使用 Butane 生成
MachineConfig对象文件99-worker-chrony.yaml,其中包含 Butane 发送到节点的配置。运行以下命令:$ butane 99-worker-chrony.bu -o 99-worker-chrony.yaml99-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在管理集群的配置映射中添加
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 # ...- 1
- 将
<namespace>替换为创建节点池的命名空间的名称,如clusters。
运行以下命令,将配置映射应用到节点池:
$ oc edit nodepool <nodepool_name> --namespace <hosted_cluster_namespace>NodePool配置示例apiVersion: hypershift.openshift.io/v1alpha1 kind: NodePool metadata: # ... name: nodepool-1 namespace: clusters # ... spec: config: - name: <configmap_name>1 # ...- 1
- 将
<configmap_name>替换为配置映射的名称。
在
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> # ...- 1
- 将
<ntp_server>替换为 NTP 服务器的名称。有关创建主机清单和InfraEnvCR 的详情,请参阅"创建主机清单"。
运行以下命令来应用
InfraEnvCR:$ oc apply -f infra-env.yaml
验证
检查以下字段以了解主机清单的状态:
-
conditions:指示镜像是否已成功创建的标准 Kubernetes 条件。 -
isoDownloadURL:下载发现镜像的 URL。 createdTime:镜像最后一次创建的时间。如果您修改了InfraEnvCR,请确保在下载新镜像前更新了时间戳。运行以下命令验证您的主机清单是否已创建:
$ oc describe infraenv <infraenv_resource_name> -n <infraenv_namespace>注意如果您修改了
InfraEnvCR,请通过查看createdTime字段来确认InfraEnvCR 已创建新的 Discovery Image。如果您已经引导的主机,请使用最新的发现镜像再次引导它们。
-