kubectl 이란?

날아올라돼지야·2024년 9월 3일

쿠버네티스 마스터

목록 보기
4/27

앞서 실습을 통해서 본 것처럼 우리가 쿠버네티스에 명령을 줄 때 항상 kubectl을 앞에 썼었죠??

그럼 이 녀석이 정확히 무엇인지 알아보시죠!

kubectl은 종업원!😊

kubectl레스토랑의 종업원에 비유할 수 있습니다.

  • 레스토랑에서 종업원은 손님의 주문을 받아 주방에 전달하고, 주방에서 요리가 완성되면 다시 손님에게 음식을 전달합니다. 종업원은 손님이 주방의 복잡한 과정에 대해 알 필요 없이 원하는 음식을 받을 수 있게 도와줍니다.
  • kubectl은 Kubernetes 클러스터의 "종업원"입니다. 사용자가 kubectl을 통해 명령을 내리면, 이 명령은 클러스터의 주방(즉, Kubernetes API 서버)에 전달되어 필요한 작업이 수행됩니다. 사용자는 클러스터 내부에서 실제로 어떤 일이 벌어지는지 세부적으로 알 필요 없이, 원하는 결과를 얻을 수 있습니다.

kubectl이 명령을 받고 수행하는 동작 원리

kubectl이 명령을 수행하는 과정을 단계별로 설명하겠습니다.

  1. 명령 입력:

    • 사용자가 kubectl 명령을 입력합니다. 예를 들어, kubectl get pods 명령을 입력하면, 이는 클러스터에서 현재 실행 중인 모든 파드를 조회하라는 요청입니다.
  2. API 요청 생성:

    • kubectl은 사용자의 명령을 해석하고, 이를 Kubernetes API 서버로 보낼 HTTP 요청으로 변환합니다.
    • 이 요청에는 사용자가 요청한 리소스에 대한 정보(pods), 네임스페이스, 필요한 인증 정보 등이 포함됩니다.
  3. API 서버와의 통신:

    • kubectl은 Kubernetes API 서버에 HTTP 요청을 보냅니다. 이 API 서버는 클러스터의 중심 제어 점이며, 모든 요청을 받아들이고 처리합니다.
    • API 서버는 요청을 받아들여 사용자의 권한을 확인한 후, 클러스터의 상태를 확인하거나 변경하는 작업을 수행합니다.
  4. 응답 처리:

    • API 서버가 요청을 처리하고, 그 결과를 kubectl에게 응답합니다. 예를 들어, kubectl get pods 명령을 실행했을 때 API 서버는 현재 클러스터에서 실행 중인 모든 파드의 목록을 응답으로 보냅니다.
  5. 결과 출력:

    • kubectl은 API 서버로부터 받은 응답을 사용자에게 읽기 쉬운 형식으로 출력합니다. 예를 들어, 파드 목록을 테이블 형태로 출력하거나, JSON/YAML 형식으로 출력할 수도 있습니다.

이와 같이 kubectl은 사용자가 Kubernetes 클러스터를 관리하고 제어할 수 있게 해주는 명령줄 도구입니다. API 서버와 상호작용하여 클러스터의 상태를 조회하거나 제어하는 데 필수적인 역할을 합니다.

kubectl은 어디에 설치되나요?

kubectl기본적으로 노드에서만 실행되는 것은 아닙니다.

  • kubectl은 Kubernetes 클러스터와 상호작용하기 위한 명령줄 도구로, 클러스터 내부의 여러 리소스를 관리할 수 있게 해줍니다.
  • kubectl은 마스터 노드, 워커 노드, 또는 심지어 클러스터 외부에서도 실행될 수 있습니다. kubectl이 설치된 시스템이 Kubernetes API 서버에 접근할 수 있기만 하면 됩니다. 이 접근은 인증 및 권한 부여 메커니즘을 통해 제어됩니다.
profile
무슨 생각하며 사니

0개의 댓글