DevOps/Kubernetes

[Kubernetes][CKA] Kube-API Server

박한결 2023. 12. 13. 01:09
더보기
  • kubectl ( kube-apiserver - ETCD Cluster - kuber-api server) or api 
  • kube scheduler - kube-apiserver - kubelet ( worker nodes )
  • kubectl is center of all the different takes needs to be done to make a change in the cluster
  • kube-api server
    • authenticate user
    • validate
    • retrieve data
    • update ETCD
    • scheduler
    • kubelet
  • kube-apiserver.service options
  • kubeadmin

 

 

kube-api 서버의 중심 역할

  • kube-apiserver는 etcd 데이터 저장소와 직접 상호 작용하는 유일한 구성 요소
    • kube-scheduler, kube-controller-manager 및 kubelet과 같은 다른 구성 요소는 API 서버를 사용하여 클러스터의 해당 영역에서 업데이트
  • kubectl과의 관계:
    • kubectl은 클러스터에서 변경 사항을 만들기 위해 필요한 모든 작업의 중심에 있다. 이는 kube-api 서버를 통해 실행된다.
    • kubectl은 클러스터와 상호 작용하는 데 중심적인 도구이지만, 주로 사용자가 kube-apiserver에 명령을 보내는 커맨드 라인 도구
    • 실제로 이러한 명령을 처리하고 쿠버네티스의 다른 구성 요소와 상호 작용하는 것은 kube-apiserver
  • 구조:
    • kubectl → kube-apiserver → ETCD 클러스터
    • API 직접 접근

kube-api 서버의 기능

  • 사용자 인증: 클러스터에 요청을 보내는 사용자의 신원을 확인
  • 요청 검증: 요청된 작업이 쿠버네티스 규칙과 정책을 준수하는지 검증
  • 데이터 검색: 클러스터의 현재 상태나 구성 데이터를 검색
  • ETCD 업데이트: 클러스터의 상태 변경 사항을 ETCD에 반영

kube-scheduler와 kubelet의 연결

  • kube-scheduler: kube-apiserver를 통해 클러스터의 자원 할당 및 스케줄링을 관리
  • kubelet: 워커 노드에서 실행되며 kube-apiserver로부터 명령을 받아 노드에서 컨테이너를 실행하고 관리
  • 구조: kube-scheduler → kube-apiserver → kubelet (워커 노드)

kube-apiserver.service 옵션

  • 설정 가능한 옵션:
    • kube-apiserver는 다양한 서비스 옵션을 통해 구성 및 관리할 수 있음.
    • 이러한 옵션을 통해 클러스터의 보안, 성능 및 접근성을 조정할 수 있음.

Kubeadm과의 관계

  • Kubeadm:
    • 쿠버네티스 클러스터를 구축하고 관리하는 데 사용되는 도구
    • kube-api 서버를 포함한 쿠버네티스의 핵심 구성 요소를 설정하는 데 도움됨

 


실습 https://github.com/kodekloudhub/certified-kubernetes-administrator-course/blob/master/docs/02-Core-Concepts/06-Kube-API-Server.md