10.4. Linuxptp 서비스 구성
PTP Operator는 PtpConfig.ptp.openshift.io CRD(custom resource definition)를 OpenShift Container Platform에 추가합니다. PtpConfig CR(사용자 정의 리소스)을 생성하여 Linuxptp 서비스(ptp4l, phc2sys)를 구성할 수 있습니다.
사전 요구 사항
-
OpenShift CLI(
oc)를 설치합니다. -
cluster-admin권한이 있는 사용자로 로그인합니다. - PTP Operator를 설치해야 합니다.
프로세스
다음
PtpConfigCR을 생성한 다음 YAML을<name>-ptp-config.yaml파일에 저장합니다.<name>을 이 구성의 이름으로 바꿉니다.apiVersion: ptp.openshift.io/v1 kind: PtpConfig metadata: name: <name>1 namespace: openshift-ptp2 spec: profile:3 - name: "profile1"4 interface: "ens787f1"5 ptp4lOpts: "-s -2"6 phc2sysOpts: "-a -r"7 recommend:8 - profile: "profile1"9 priority: 1010 match:11 - nodeLabel: "node-role.kubernetes.io/worker"12 nodeName: "dev-worker-0"13 - 1
PtpConfigCR의 이름을 지정합니다.- 2
- PTP Operator가 설치된 네임스페이스를 지정합니다.
- 3
- 하나 이상의
profile오브젝트의 배열을 지정합니다. - 4
- 프로필 오브젝트를 고유하게 식별하는 데 사용되는 프로필 오브젝트의 이름을 지정합니다.
- 5
ptp4l서비스에서 사용할 네트워크 인터페이스 이름을 지정합니다(예:ens787f1).- 6
ptp4l서비스에 대한 시스템 구성 옵션을 지정합니다(예:-s -2). 인터페이스 이름-i <interface>및 서비스 구성 파일-f /etc/ptp4l.conf는 자동으로 추가되므로 포함하지 않아야 합니다.- 7
phc2sys서비스에 대한 시스템 구성 옵션을 지정합니다(예:-a -r).- 8
profile이 노드에 적용되는 방법에 대한 규칙을 정의하는 하나 이상의recommend오브젝트 배열을 지정합니다.- 9
profile섹션에 정의된profile오브젝트 이름을 지정합니다.- 10
0에서99사이의 정수 값으로priority를 지정합니다. 숫자가 클수록 우선순위가 낮으므로 우선순위99는 우선순위10보다 낮습니다.match필드에 정의된 규칙에 따라 노드를 여러 프로필과 일치시킬 수 있는 경우 우선순위가 높은 프로필이 해당 노드에 적용됩니다.- 11
nodeLabel또는nodeName으로일치규칙을 지정합니다.- 12
- 노드 오브젝트에서
node.Labels의key로nodeLabel을 지정합니다. - 13
- 노드 오브젝트에서
node.Name으로nodeName을 지정합니다.
다음 명령을 실행하여 CR을 생성합니다.
$ oc create -f <filename>1 - 1
<filename>을 이전 단계에서 생성한 파일 이름으로 바꿉니다.
선택 사항:
PtpConfig프로필이nodeLabel 또는 nodeName과 일치하는 노드에 적용되는지 확인합니다.$ oc get pods -n openshift-ptp -o wide출력 예
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES linuxptp-daemon-4xkbb 1/1 Running 0 43m 192.168.111.15 dev-worker-0 <none> <none> linuxptp-daemon-tdspf 1/1 Running 0 43m 192.168.111.11 dev-master-0 <none> <none> ptp-operator-657bbb64c8-2f8sj 1/1 Running 0 43m 10.128.0.116 dev-master-0 <none> <none> $ oc logs linuxptp-daemon-4xkbb -n openshift-ptp 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: profile11 I1115 09:41:17.117616 4143292 daemon.go:102] Interface: ens787f12 I1115 09:41:17.117620 4143292 daemon.go:102] Ptp4lOpts: -s -23 I1115 09:41:17.117623 4143292 daemon.go:102] Phc2sysOpts: -a -r4 I1115 09:41:17.117626 4143292 daemon.go:116] ------------------------------------ I1115 09:41:18.117934 4143292 daemon.go:186] Starting phc2sys... I1115 09:41:18.117985 4143292 daemon.go:187] phc2sys cmd: &{Path:/usr/sbin/phc2sys Args:[/usr/sbin/phc2sys -a -r] Env:[] Dir: Stdin:<nil> Stdout:<nil> Stderr:<nil> ExtraFiles:[] SysProcAttr:<nil> Process:<nil> ProcessState:<nil> ctx:<nil> lookPathErr:<nil> finished:false childFiles:[] closeAfterStart:[] closeAfterWait:[] goroutine:[] errch:<nil> waitDone:<nil>} I1115 09:41:19.118175 4143292 daemon.go:186] Starting ptp4l... I1115 09:41:19.118209 4143292 daemon.go:187] ptp4l cmd: &{Path:/usr/sbin/ptp4l Args:[/usr/sbin/ptp4l -m -f /etc/ptp4l.conf -i ens787f1 -s -2] Env:[] Dir: Stdin:<nil> Stdout:<nil> Stderr:<nil> ExtraFiles:[] SysProcAttr:<nil> Process:<nil> ProcessState:<nil> ctx:<nil> lookPathErr:<nil> finished:false childFiles:[] closeAfterStart:[] closeAfterWait:[] goroutine:[] errch:<nil> waitDone:<nil>} ptp4l[102189.864]: selected /dev/ptp5 as PTP clock ptp4l[102189.886]: port 1: INITIALIZING to LISTENING on INIT_COMPLETE ptp4l[102189.886]: port 0: INITIALIZING to LISTENING on INIT_COMPLETE