kubectl은 무조건 Kubernetes API 서버에게 명령을 요청하는 클라이언트 도구입니다. Kubernetes 클러스터에서 일어나는 모든 작업은 API 서버를 통해서 이루어지며, kubectl은 사용자가 API 서버와 상호작용할 수 있게 해주는 인터페이스 역할을 합니다.
kubectl과 Kubernetes API 서버의 관계kubectl 명령어 입력: 사용자가 kubectl 명령어를 입력하면, 이 명령어는 Kubernetes 클러스터 내의 특정 작업을 수행하기 위한 요청을 구성합니다.
API 서버로 요청 전달: kubectl은 이 요청을 Kubernetes API 서버로 전달합니다. 이 요청은 RESTful API 요청의 형태로 API 서버에 도달합니다.
API 서버의 처리: API 서버는 kubectl로부터 받은 요청을 처리합니다. 예를 들어, 특정 자원의 상태를 조회하거나, 새로운 자원을 생성하거나, 기존 자원을 삭제하는 등의 작업을 수행합니다.
응답 반환: API 서버는 요청의 결과를 kubectl에 응답으로 반환합니다. 이 결과는 사용자가 터미널에서 확인할 수 있는 형식으로 표시됩니다.
kubectl get pods 명령을 실행하면, kubectl은 모든 파드(pod)에 대한 목록을 요청하는 HTTP GET 요청을 API 서버에 보냅니다.kubectl에게 반환합니다.kubectl은 이 정보를 터미널에 출력해줍니다.따라서 kubectl은 Kubernetes 클러스터를 관리하기 위한 중간다리 역할을 하며, 모든 명령은 궁극적으로 API 서버를 통해 실행됩니다. 이 구조 덕분에 kubectl이 클러스터에 연결된 어디에서든 일관된 명령어 인터페이스를 제공할 수 있습니다.