앞서 실습을 통해서 본 것처럼 우리가 쿠버네티스에 명령을 줄 때 항상 kubectl을 앞에 썼었죠??
그럼 이 녀석이 정확히 무엇인지 알아보시죠!
kubectl을 레스토랑의 종업원에 비유할 수 있습니다.
kubectl은 Kubernetes 클러스터의 "종업원"입니다. 사용자가 kubectl을 통해 명령을 내리면, 이 명령은 클러스터의 주방(즉, Kubernetes API 서버)에 전달되어 필요한 작업이 수행됩니다. 사용자는 클러스터 내부에서 실제로 어떤 일이 벌어지는지 세부적으로 알 필요 없이, 원하는 결과를 얻을 수 있습니다.kubectl이 명령을 수행하는 과정을 단계별로 설명하겠습니다.
명령 입력:
kubectl 명령을 입력합니다. 예를 들어, kubectl get pods 명령을 입력하면, 이는 클러스터에서 현재 실행 중인 모든 파드를 조회하라는 요청입니다.API 요청 생성:
kubectl은 사용자의 명령을 해석하고, 이를 Kubernetes API 서버로 보낼 HTTP 요청으로 변환합니다.pods), 네임스페이스, 필요한 인증 정보 등이 포함됩니다.API 서버와의 통신:
kubectl은 Kubernetes API 서버에 HTTP 요청을 보냅니다. 이 API 서버는 클러스터의 중심 제어 점이며, 모든 요청을 받아들이고 처리합니다.응답 처리:
kubectl에게 응답합니다. 예를 들어, kubectl get pods 명령을 실행했을 때 API 서버는 현재 클러스터에서 실행 중인 모든 파드의 목록을 응답으로 보냅니다.결과 출력:
kubectl은 API 서버로부터 받은 응답을 사용자에게 읽기 쉬운 형식으로 출력합니다. 예를 들어, 파드 목록을 테이블 형태로 출력하거나, JSON/YAML 형식으로 출력할 수도 있습니다.이와 같이 kubectl은 사용자가 Kubernetes 클러스터를 관리하고 제어할 수 있게 해주는 명령줄 도구입니다. API 서버와 상호작용하여 클러스터의 상태를 조회하거나 제어하는 데 필수적인 역할을 합니다.
kubectl은 기본적으로 노드에서만 실행되는 것은 아닙니다.
kubectl은 Kubernetes 클러스터와 상호작용하기 위한 명령줄 도구로, 클러스터 내부의 여러 리소스를 관리할 수 있게 해줍니다.kubectl은 마스터 노드, 워커 노드, 또는 심지어 클러스터 외부에서도 실행될 수 있습니다. kubectl이 설치된 시스템이 Kubernetes API 서버에 접근할 수 있기만 하면 됩니다. 이 접근은 인증 및 권한 부여 메커니즘을 통해 제어됩니다.