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를 설치해야 합니다.
프로세스
다음
PtpConfig
CR을 생성한 다음 YAML을<name>-ptp-config.yaml
파일에 저장합니다.<name>
을 이 구성의 이름으로 바꿉니다.apiVersion: ptp.openshift.io/v1 kind: PtpConfig metadata: name: <name> 1 namespace: openshift-ptp 2 spec: profile: 3 - name: "profile1" 4 interface: "ens787f1" 5 ptp4lOpts: "-s -2" 6 phc2sysOpts: "-a -r" 7 recommend: 8 - profile: "profile1" 9 priority: 10 10 match: 11 - nodeLabel: "node-role.kubernetes.io/worker" 12 nodeName: "dev-worker-0" 13
- 1
PtpConfig
CR의 이름을 지정합니다.- 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 또는 node
Name
과 일치하는 노드에 적용되는지 확인합니다.$ 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: profile1 1 I1115 09:41:17.117616 4143292 daemon.go:102] Interface: ens787f1 2 I1115 09:41:17.117620 4143292 daemon.go:102] Ptp4lOpts: -s -2 3 I1115 09:41:17.117623 4143292 daemon.go:102] Phc2sysOpts: -a -r 4 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