클러스터에서의 일반 CLI 디버깅 문제

가상 프라이빗 클라우드 클래식 인프라

CLI 연결 문제 또는 명령 실패에 대한 다음 일반적인 이유를 검토하십시오.

방화벽으로 인해 CLI 명령을 실행할 수 없음

CLI에서 ibmcloud, kubectl 또는 calicoctl 명령을 실행하면 실패합니다.

로컬 시스템에서 프록시 또는 방화벽을 통해 공용 엔드포인트에 액세스하지 못하도록 방지하는 회사 네트워크 정책이 있을 수 있습니다.

CLI 명령에 대한 TCP 액세스가 작동하도록 허용하십시오.

이 태스크에는 클러스터에 대한 관리자 IBM Cloud IAM 플랫폼 액세스 역할이 필요합니다.

kubectl 명령이 작동하지 않음

클러스터에 대해 kubectl 명령을 실행하면 다음 예제와 유사한 오류 메시지와 함께 명령이 실패합니다.

No resources found.
Error from server (NotAcceptable): unknown (get nodes)
invalid object doesn't have additional properties
error: No Auth Provider found for name "oidc"

클러스터 버전과 다른 kubectl 버전이 있습니다.

Kubernetes 지원하지 않습니다 kubectl 서버 버전과 2개 이상의 버전이 다른 클라이언트 버전(n +/- 2). 커뮤니티 Kubernetes 클러스터를 사용하는 경우 커뮤니티 Kubernetes 클러스터에 대해 작동하지 않는 Red Hat OpenShift 버전의 kubectl이 있을 수도 있습니다.

클라이언트 서버 버전에 대한 클라이언트 kubectl 버전을 확인하려면 kubectl version --short를 실행하십시오.

클러스터의 버전과 일치하는 CLI 버전을 설치 하십시오.

Red Hat OpenShift 와 같이 서로 다른 버전 또는 서로 다른 컨테이너 플랫폼에서 여러 클러스터를 사용하는 경우 각 kubectl 버전 바이너리 파일을 별도의 디렉터리에 다운로드합니다. 그런 다음 작업할 클러스터의 kubectl 버전과 일치하는 kubectl 바이너리 파일 디렉토리를 가리키도록 명령행 인터페이스(CLI) 프로파일에서 별명을 설정할 수 있습니다. 또는 brew switch kubernetes-cli <major.minor> 등의 도구를 사용할 수 있습니다.

kubectl 명령 제한시간 초과

kubectl exec, kubectl attach, kubectl proxy, kubectl port-forward 또는 kubectl logs 등의 명령을 실행하면 다음 메시지가 표시됩니다.

<workerIP>:10250: getsockopt: connection timed out
kubectl -n kube-system logs metrics-server-65fc69c6b7-f682d -c metrics-server
Error from server: Get “https://10.38.193.213:10250/containerLogs/kube-system/metrics-server-65fc69c6b7-f682d/metrics-server”: EOF
kubectl -n kube-system exec -it metrics-server-65fc69c6b7-f682d -c metrics-server -- sh
Error from server: error dialing backend: EOF

클러스터 버전에 대한 다음 단계를 검토하고 완료하십시오.

  • 버전 1.21 이상에서는 마스터 노드와 작업자 노드 간의 Konnectivity VPN 연결이 제대로 작동하지 않습니다.
  • 클러스터에서 개인용 및 공용 서비스 엔드포인트를 둘 다 사용할 수 있습니다.
  • 서비스 엔드포인트 또는 VRF는 계정에서 사용할 수 없습니다.

계정에서 VRF 및 서비스 엔드포인트를 사용할 수 있는지 판별하려면 ibmcloud account show를 실행하십시오. 다음 출력을 찾으십시오.

VRF Enabled:                        true
Service Endpoint Enabled:           true

클래식 클러스터에 공용 및 개인용 서비스 엔드포인트가 모두 사용으로 설정되었는지 판별하려면 ibmcloud ks cluster get -c <cluster_id>을(를) 실행하십시오. 다음과 유사한 출력을 찾으십시오.

Public Service Endpoint URL:    https://c105.<REGION>.containers.cloud.ibm.com:<port>
Private Service Endpoint URL:   https://c105.private.<REGION>.containers.cloud.ibm.com:<port>

클러스터가 이러한 조건을 충족하는 경우 계정에 대해 서비스 엔드포인트 및 VRF를 사용으로 설정 하십시오.