This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.12.6. 비정상 클러스터에 기본 컨트롤 플레인 노드 설치
다음 절차에서는 비정상 OpenShift Container Platform 클러스터에 기본 컨트롤 플레인 노드를 설치하는 방법을 설명합니다.
사전 요구 사항
절차
클러스터의 초기 상태를 확인합니다.
oc get nodes
$ oc get nodesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow etcd-operator에서 클러스터를 비정상으로 탐지하는지 확인합니다.oc logs -n openshift-etcd-operator etcd-operator-8668df65d-lvpjf
$ oc logs -n openshift-etcd-operator etcd-operator-8668df65d-lvpjfCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
E0927 08:24:23.983733 1 base_controller.go:272] DefragController reconciliation failed: cluster is unhealthy: 2 of 3 members are available, worker-2 is unhealthy
E0927 08:24:23.983733 1 base_controller.go:272] DefragController reconciliation failed: cluster is unhealthy: 2 of 3 members are available, worker-2 is unhealthyCopy to Clipboard Copied! Toggle word wrap Toggle overflow etcdctl멤버를 확인합니다.oc rsh -n openshift-etcd etcd-worker-3
$ oc rsh -n openshift-etcd etcd-worker-3 etcdctl member list -w tableCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow etcdctl에서 클러스터의 비정상 멤버를 보고하는지 확인합니다.etcdctl endpoint health
$ etcdctl endpoint healthCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
{"level":"warn","ts":"2022-09-27T08:25:35.953Z","logger":"client","caller":"v3/retry_interceptor.go:62","msg":"retrying of unary invoker failed","target":"etcd-endpoints://0xc000680380/192.168.111.25","attempt":0,"error":"rpc error: code = DeadlineExceeded desc = latest balancer error: last connection error: connection error: desc = \"transport: Error while dialing dial tcp 192.168.111.25: connect: no route to host\""} 192.168.111.28 is healthy: committed proposal: took = 12.465641ms 192.168.111.26 is healthy: committed proposal: took = 12.297059ms 192.168.111.25 is unhealthy: failed to commit proposal: context deadline exceeded Error: unhealthy cluster{"level":"warn","ts":"2022-09-27T08:25:35.953Z","logger":"client","caller":"v3/retry_interceptor.go:62","msg":"retrying of unary invoker failed","target":"etcd-endpoints://0xc000680380/192.168.111.25","attempt":0,"error":"rpc error: code = DeadlineExceeded desc = latest balancer error: last connection error: connection error: desc = \"transport: Error while dialing dial tcp 192.168.111.25: connect: no route to host\""} 192.168.111.28 is healthy: committed proposal: took = 12.465641ms 192.168.111.26 is healthy: committed proposal: took = 12.297059ms 192.168.111.25 is unhealthy: failed to commit proposal: context deadline exceeded Error: unhealthy clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow Machine사용자 정의 리소스를 삭제하여 비정상 컨트롤 플레인을 제거합니다.oc delete machine -n openshift-machine-api test-day2-1-6qv96-master-2
$ oc delete machine -n openshift-machine-api test-day2-1-6qv96-master-2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고비정상 클러스터를 성공적으로 실행할 수 없는 경우
머신및노드사용자 정의 리소스(CR)는 삭제되지 않습니다.etcd-operator가 비정상 머신을 제거하지 않았는지 확인합니다.oc logs -n openshift-etcd-operator etcd-operator-8668df65d-lvpjf -f
$ oc logs -n openshift-etcd-operator etcd-operator-8668df65d-lvpjf -fCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
I0927 08:58:41.249222 1 machinedeletionhooks.go:135] skip removing the deletion hook from machine test-day2-1-6qv96-master-2 since its member is still present with any of: [{InternalIP } {InternalIP 192.168.111.26}]I0927 08:58:41.249222 1 machinedeletionhooks.go:135] skip removing the deletion hook from machine test-day2-1-6qv96-master-2 since its member is still present with any of: [{InternalIP } {InternalIP 192.168.111.26}]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 비정상적인
etcdctl멤버를 수동으로 제거하십시오.oc rsh -n openshift-etcd etcd-worker-3\ etcdctl member list -w table
$ oc rsh -n openshift-etcd etcd-worker-3\ etcdctl member list -w tableCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow etcdctl에서 클러스터의 비정상 멤버를 보고하는지 확인합니다.etcdctl endpoint health
$ etcdctl endpoint healthCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
{"level":"warn","ts":"2022-09-27T10:31:07.227Z","logger":"client","caller":"v3/retry_interceptor.go:62","msg":"retrying of unary invoker failed","target":"etcd-endpoints://0xc0000d6e00/192.168.111.25","attempt":0,"error":"rpc error: code = DeadlineExceeded desc = latest balancer error: last connection error: connection error: desc = \"transport: Error while dialing dial tcp 192.168.111.25: connect: no route to host\""} 192.168.111.28 is healthy: committed proposal: took = 13.038278ms 192.168.111.26 is healthy: committed proposal: took = 12.950355ms 192.168.111.25 is unhealthy: failed to commit proposal: context deadline exceeded Error: unhealthy cluster{"level":"warn","ts":"2022-09-27T10:31:07.227Z","logger":"client","caller":"v3/retry_interceptor.go:62","msg":"retrying of unary invoker failed","target":"etcd-endpoints://0xc0000d6e00/192.168.111.25","attempt":0,"error":"rpc error: code = DeadlineExceeded desc = latest balancer error: last connection error: connection error: desc = \"transport: Error while dialing dial tcp 192.168.111.25: connect: no route to host\""} 192.168.111.28 is healthy: committed proposal: took = 13.038278ms 192.168.111.26 is healthy: committed proposal: took = 12.950355ms 192.168.111.25 is unhealthy: failed to commit proposal: context deadline exceeded Error: unhealthy clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow etcdctl멤버 사용자 정의 리소스를 삭제하여 비정상 클러스터를 제거합니다.etcdctl member remove 61e2a86084aafa62
$ etcdctl member remove 61e2a86084aafa62Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Member 61e2a86084aafa62 removed from cluster 6881c977b97990d7
Member 61e2a86084aafa62 removed from cluster 6881c977b97990d7Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
etcdctl의 멤버를 확인합니다.etcdctl member list -w table
$ etcdctl member list -w tableCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 인증서 서명 요청 검토 및 승인
CSR(인증서 서명 요청)을 검토합니다.
oc get csr | grep Pending
$ oc get csr | grep PendingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
csr-5sd59 8m19s kubernetes.io/kube-apiserver-client-kubelet system:serviceaccount:openshift-machine-config-operator:node-bootstrapper <none> Pending csr-xzqts 10s kubernetes.io/kubelet-serving system:node:worker-6 <none> Pending
csr-5sd59 8m19s kubernetes.io/kube-apiserver-client-kubelet system:serviceaccount:openshift-machine-config-operator:node-bootstrapper <none> Pending csr-xzqts 10s kubernetes.io/kubelet-serving system:node:worker-6 <none> PendingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 보류 중인 모든 CSR을 승인합니다.
oc get csr -o go-template='{{range .items}}{{if not .status}}{{.metadata.name}}{{"\n"}}{{end}}{{end}}' | xargs --no-run-if-empty oc adm certificate approve$ oc get csr -o go-template='{{range .items}}{{if not .status}}{{.metadata.name}}{{"\n"}}{{end}}{{end}}' | xargs --no-run-if-empty oc adm certificate approveCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고설치를 완료하려면 CSR을 승인해야 합니다.
컨트롤 플레인 노드의 준비 상태를 확인합니다.
oc get nodes
$ oc get nodesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 시스템 ,
및노드BareMetalHost사용자 정의 리소스를 검증합니다.etcd-operator를 사용하려면 클러스터가 작동하는 머신 API로 실행되는 경우MachineCR이 있어야 합니다.머신CR은실행중 단계에서 표시됩니다.BareMetalHost및노드와 연결된머신사용자 정의 리소스를 생성합니다.새로 추가된 노드를 참조하는
머신CR이 있는지 확인합니다.중요boot-it-yourself는
BareMetalHost및MachineCR을 생성하지 않으므로 생성해야 합니다.BareMetalHost및MachineCR을 생성하지 않으면etcd-operator를 실행할 때 오류가 생성됩니다.BareMetalHost사용자 정의 리소스를 추가합니다.oc create bmh -n openshift-machine-api custom-master3
$ oc create bmh -n openshift-machine-api custom-master3Copy to Clipboard Copied! Toggle word wrap Toggle overflow 머신사용자 정의 리소스 추가:oc create machine -n openshift-machine-api custom-master3
$ oc create machine -n openshift-machine-api custom-master3Copy to Clipboard Copied! Toggle word wrap Toggle overflow link-machine-and-node.sh스크립트를 실행하여BareMetalHost,Machine,Node를 연결합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow bash link-machine-and-node.sh custom-master3 worker-3
$ bash link-machine-and-node.sh custom-master3 worker-3Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
etcdctl의 멤버를 확인합니다.oc rsh -n openshift-etcd etcd-worker-3
$ oc rsh -n openshift-etcd etcd-worker-3 etcdctl member list -w tableCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow etcdOperator가 모든 노드를 구성했는지 확인합니다.oc get clusteroperator etcd
$ oc get clusteroperator etcdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE etcd 4.11.5 True False False 22h
NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE etcd 4.11.5 True False False 22hCopy to Clipboard Copied! Toggle word wrap Toggle overflow etcdctl의 상태 확인 :oc rsh -n openshift-etcd etcd-worker-3
$ oc rsh -n openshift-etcd etcd-worker-3 etcdctl endpoint healthCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
192.168.111.26 is healthy: committed proposal: took = 9.105375ms 192.168.111.28 is healthy: committed proposal: took = 9.15205ms 192.168.111.29 is healthy: committed proposal: took = 10.277577ms
192.168.111.26 is healthy: committed proposal: took = 9.105375ms 192.168.111.28 is healthy: committed proposal: took = 9.15205ms 192.168.111.29 is healthy: committed proposal: took = 10.277577msCopy to Clipboard Copied! Toggle word wrap Toggle overflow 노드의 상태를 확인합니다.
oc get Nodes
$ oc get NodesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ClusterOperators의 상태를 확인합니다.oc get ClusterOperators
$ oc get ClusterOperatorsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ClusterVersion확인 :oc get ClusterVersion
$ oc get ClusterVersionCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME VERSION AVAILABLE PROGRESSING SINCE STATUS version 4.11.5 True False 22h Cluster version is 4.11.5
NAME VERSION AVAILABLE PROGRESSING SINCE STATUS version 4.11.5 True False 22h Cluster version is 4.11.5Copy to Clipboard Copied! Toggle word wrap Toggle overflow