InfoGrab Docs

Kubernetes 접근 문제 해결

Kubernetes 접근과 관련된 일반적인 문제 해결

이 페이지에서는 Kubernetes와 관련된 일반적인 문제와 해결 방법을 설명합니다. 에이전트가 "no authorities for hostname"으로 인해 클러스터 조인 실패 # 증상 # 에이전트가 재시작 후 Teleport 클러스터에 다시 조인할 수 없고 다음과 유사한 오류를 보고합니다: ssh: handshake failed: ssh: no authorities for hostname 설명 # Teleport는 인증 기관(CA)을 사용하여 각 구성 요소의 인증서에 서명합니다. 구성 요소가 처음 클러스터에 조인하면 클러스터 CA가 서명한 인증서를 받아 상태 디렉토리에 저장합니다. 구성 요소가 재시작될 때 상태 디렉토리에 저장된 인증서를 사용하여 클러스터에 다시 조인합니다. 이 오류는 구성 요소가 Teleport 클러스터에 다시 조인하려고 하지만 클러스터의 CA가 변경되어 구성 요소의 인증서가 더 이상 유효하지 않을 때 발생합니다. 클러스터의 CA가 순환되거나 클러스터가 재생성되거나 이름이 변경될 때 발생할 수 있습니다. 해결 # 에이전트의 상태를 재설정하여 새 인증서를 요청하고 클러스터에 다시 조인할 수 있도록 해야 합니다. 에이전트의 상태를 삭제하는 프로세스는 에이전트가 Kubernetes 내부에서 실행 중인지 외부에서 실행 중인지에 따라 다릅니다. Kubernetes 외부에서 실행 중인 에이전트 (독립형) # 에이전트가 Kubernetes 외부에서 실행 중이라면 상태 디렉토리는 기본적으로 /var/lib/teleport/proc 에 위치합니다. 다음 명령으로 상태 디렉토리를 삭제할 수 있습니다: sudo rm -rf /var/lib/teleport/proc 그런 다음 에이전트를 재시작합니다: sudo systemctl restart teleport Kubernetes에서 실행 중인 에이전트 ( teleport-kube-agent ) # Teleport 11부터 teleport-kube-agent 파드의 상태는 설치 네임스페이스에 존재하는 Kubernetes 시크릿( {pod-name}-state 라는 이름)에 저장됩니다. 상태를 삭제하려면 다음 단계를 따르세요: # teleport-kube-agent 파드의 시크릿 가져오기 $ kubectl get secret -o name -n teleport-agent | grep "state" teleport-agent-0-state teleport-agent-1-state # 시크릿 삭제 $ kubectl delete secret -n teleport-agent teleport-agent-0-state teleport-agent-1-state 컨테이너에 /var/lib/teleport 를 마운트하고 있다면 컨테이너 내부의 /var/lib/teleport/proc 내용을 정리한 다음 컨테이너를 재시작하세요. 상태가 삭제되면 각 에이전트 파드를 재시작합니다. GKE Autopilot 클러스터에 연결할 수 없음 # GKE Warden authz [denied by user-impersonati