6.5.8.6. NTP가 동기화되지 않음
OpenShift Container Platform 클러스터를 배포하려면 클러스터 노드 간의 NTP 시계가 동기화되어야합니다. 동기화된 시계가 없으면 시간 차이가 2 초보다 크면 클럭 드리프트로 인해 배포 실패할 수 있습니다.
프로세스
클러스터 노드의
AGE
차이를 확인하십시오. 예를 들면 다음과 같습니다.$ oc get nodes
NAME STATUS ROLES AGE VERSION master-0.cloud.example.com Ready master 145m v1.16.2 master-1.cloud.example.com Ready master 135m v1.16.2 master-2.cloud.example.com Ready master 145m v1.16.2 worker-2.cloud.example.com Ready worker 100m v1.16.2
클럭 드리프트로 인한 일관성없는 시간 지연을 확인하십시오. 예를 들면 다음과 같습니다.
$ oc get bmh -n openshift-machine-api
master-1 error registering master-1 ipmi://<out-of-band-ip>
$ sudo timedatectl
Local time: Tue 2020-03-10 18:20:02 UTC Universal time: Tue 2020-03-10 18:20:02 UTC RTC time: Tue 2020-03-10 18:36:53 Time zone: UTC (UTC, +0000) System clock synchronized: no NTP service: active RTC in local TZ: no
기존 클러스터에서 클럭 드리프트 처리
chrony.conf
파일의 내용을 작성하고base64
문자열로 인코딩하십시오. 예를 들면 다음과 같습니다.$ cat << EOF | base 64 server <NTP-server> iburst1 stratumweight 0 driftfile /var/lib/chrony/drift rtcsync makestep 10 3 bindcmdaddress 127.0.0.1 bindcmdaddress ::1 keyfile /etc/chrony.keys commandkey 1 generatecommandkey noclientlog logchange 0.5 logdir /var/log/chrony EOF
- 1
<NTP-server>
를 NTP 서버의 IP 주소로 바꿉니다. 출력을 복사합니다.
[text-in-base-64]
MachineConfig
개체를 만들고base64
문자열을 이전 단계의 출력에서 생성된[text-in-base-64]
문자열로 바꿉니다. 다음 예제는 컨트롤 플레인 (마스터) 노드에 파일을 추가합니다. 작업자 노드의 파일을 변경하거나 작업자 역할에 대한 추가 시스템 설정을 만들 수 있습니다.$ cat << EOF > ./99_masters-chrony-configuration.yaml apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: creationTimestamp: null labels: machineconfiguration.openshift.io/role: master name: 99-master-etc-chrony-conf spec: config: ignition: config: {} security: tls: {} timeouts: {} version: 3.1.0 networkd: {} passwd: {} storage: files: - contents: source: data:text/plain;charset=utf-8;base64,[text-in-base-64]1 group: name: root mode: 420 overwrite: true path: /etc/chrony.conf user: name: root osImageURL: ""
- 1
[text-in-base-64]
를 base64 문자열로 바꿉니다.
설정 파일의 백업 사본을 만듭니다. 예를 들면 다음과 같습니다.
$ cp 99_masters-chrony-configuration.yaml 99_masters-chrony-configuration.yaml.backup
설정 파일을 적용합니다.
$ oc apply -f ./masters-chrony-configuration.yaml
System clock synchronized
값이 yes 인지 확인하십시오.$ sudo timedatectl
Local time: Tue 2020-03-10 19:10:02 UTC Universal time: Tue 2020-03-10 19:10:02 UTC RTC time: Tue 2020-03-10 19:36:53 Time zone: UTC (UTC, +0000) System clock synchronized: yes NTP service: active RTC in local TZ: no
배포 전에 클럭 동기화를 설정하려면 매니페스트 파일을 생성하고이 파일을
openshift
디렉터리에 추가합니다. 예를 들면 다음과 같습니다.$ cp chrony-masters.yaml ~/clusterconfigs/openshift/99_masters-chrony-configuration.yaml
그런 다음 계속해서 클러스터를 만듭니다.