ABOUT ME

Today
Yesterday
Total
  • [Kubernetes] Kube-API Server
    DevOps/Kubernetes 2025. 2. 7. 10:31

    쿠버네티스의 kube-apiserver는 클러스터의 “중앙 제어 지점” 역할을 하며, 모든 클러스터 요청을 받아 처리하는 프론트엔드입니다. 아래는 kubectl 명령어로 pod 정보를 조회하거나 생성할 때 kube-apiserver가 수행하는 과정을 자세히 설명한 내용입니다.

     


     

    Pod 정보 조회 (kubectl get pod)

    1. 요청 수신 및 사용자 인증
      • 사용자가 kubectl 명령어로 pod 정보를 요청하면, 이 요청은 먼저 kube-apiserver에 도달합니다.
      • kube-apiserver는 요청에 포함된 인증 정보를 확인하여 사용자가 유효한 권한을 가지고 있는지 검증합니다.
    2. 요청 검증
      • 요청의 형식, 필수 파라미터 등이 올바른지 확인한 후, 진행 가능한 요청인지 판단합니다.
    3. etcd에서 데이터 조회
      • 요청이 인증되고 검증되면, kube-apiserver는 etcd에 저장된 정보를 조회합니다.
      • etcd에 저장된 pod의 상태, 구성 정보 등을 읽어와 요청한 데이터를 준비합니다.
    4. 응답 전달
      • 조회한 데이터를 사용자에게 반환하여, kubectl을 통해 pod 정보를 확인할 수 있게 합니다.

     

    요약: 사용자의 kubectl 요청 → kube-apiserver에서 사용자 인증 및 요청 검증 → etcd에서 pod 데이터 조회 → 사용자에게 응답


     

    Pod 생성 요청

    1. 요청 수신, 인증 및 검증
      • 사용자가 새로운 pod를 생성하는 요청을 보내면, kube-apiserver가 먼저 해당 요청을 받고, 인증 절차를 거칩니다.
      • 요청 내용이 올바른지(필수 필드 포함, 올바른 스펙 등) 검증합니다.
    2. etcd 업데이트
      • 요청이 유효한 경우, kube-apiserver는 pod의 정의(Desired State)를 etcd에 저장합니다.
      • 이 업데이트를 통해 클러스터의 원하는 상태가 변경된 것을 기록합니다.
    3. kube-scheduler에서 pod 생성 감지
      • etcd에 새 pod 정보가 저장되면, 쿠버네티스의 스케줄러가 이를 감지합니다.
      • 스케줄러는 아직 워커 노드에 할당되지 않은 pod를 적절한 워커 노드로 배치하기 위한 결정을 내립니다.
    4. 할당 정보 전달 및 kubelet과의 연동
      • 스케줄러가 pod를 특정 워커 노드에 할당하면, 이 정보가 다시 kube-apiserver를 통해 해당 워커 노드의 kubelet으로 전달됩니다.
      • kubelet은 전달받은 pod 스펙을 확인하고, 실제 컨테이너 실행을 준비합니다.
    5. 컨테이너 런타임 엔진 호출
      • 워커 노드의 kubelet은 pod를 실행하기 위해, 해당 노드에 설치된 컨테이너 런타임에 요청하여 필요한 컨테이너 이미지를 다운로드 및 실행합니다.

     

    요약: 사용자의 pod 생성 요청 → kube-apiserver에서 인증, 검증 후 etcd 업데이트 → 스케줄러가 미할당 pod를 워커 노드에 할당 → kube-apiserver가 할당 정보를 kubelet으로 전달 → 워커 노드의 kubelet이 컨테이너 런타임에 이미지 실행 요청

    'DevOps > Kubernetes' 카테고리의 다른 글

    [Kubernetes] Kube Scheduler  (1) 2025.02.07
    [Kubernetes] Kube Controller Manager  (1) 2025.02.07
    [Kubernetes] etcd  (0) 2025.02.06
    [Kubernetes] Docker vs ContainerD  (0) 2025.02.06
    [Kubernetes] Cluster Architecture  (1) 2025.02.06
Designed by Tistory.