kubectl-apiserver 예시

Watermelon·2025년 11월 18일

CKA 학습 과정

목록 보기
10/35

kubectl get nodes 과정

user -> kube-apiserver -> etcd cluster
정보 요청 이후 역 방향으로 정보 전달

kubectl pod 생성의 예시

포스트 방법으로 진행

curl -X POST /api/v1/namespaces/default/pods lalalal~
  1. Authentivate User
  2. Validate Request
  3. Retrieve data
  4. Update ETCD
  5. Scheduler
  • 스케줄러는 API 서버를 지속적으로 모니터링하여 노드가 할당되지 않은 새 파드를 인식
  • 스케줄러는 새 파드 파트를 배치할 올바른 노드를 식별하고 이를 다시 큐브 API 서버에 전달
    -> API 서버가 etcd 클러스터의 정보 업테이트
    -> API 서버가 해당 정보를 적절한 워커 노드의 kubelet에 전달
    -> kubelet은 노드에 파드를 생성하고 컨테이너 런타임 엔진에 애플리케이션 이미지를 배포하도록 함
  1. kubelet
    -> 완료 후 kubelet은 상태를 API 서버로 다시 업데이트
    -> API 서버는 etcd 클러스터에서 데이터 다시 업데이트

: 변경 요청 시 비슷한 패턴으로 흘러감, API 서버를 거치는 형태

apiserver 루틴 정리

kubectl API: 요청 인증 및 유효성 검사
etcd 데이터 저장소: 데이터 검색 및 업데이트

  • kubectl API 서버는 etcd 데이터 저장소와 직접 상호 작용하는 유일 구성요소
  • 스케줄러, 컨트롤러, kubelet과 같은 다른 구성요소는 API 서버를 사용하여 각 영역 클러스터 업데이트 수행

kubectl-apiserver install

  • kube 관리 도구를 사용하여 클러스터를 부트스트랩한 경우 불필요하지만
  • 어려운 방법으로 설정 시 kubectl API 서버는 쿠버네티스 릴리즈 페이지에서 바이너리로 사용 가능
  • 다운로드 후 kubenetes 마스터 노드에서 서비스로 실행되도록 구성하면 됨

kubectl-apiserver 매개 변수

  • 많은 매개 변수 존재
  • 도움될 만한 몇 가지 요소를 알아보자

  • 서로 다른 구성 요소 간의 연결을 보호하는 데 사용되는 인증서
  • 추후에 더 알아볼 것임
--etcd-servers=https://127.0.0.1:2379
  • etcd 서버의 위치 지정하는 곳
  • kubectl API 서버가 etcd 서버에 연결하는 방식

viewing apiserver-kubeadm

  • 기존 클러스터에서 API server 옵션은 어떻게 확인할까?
  • 클러스터를 설정하는 방법에 따라 다름
kubectl get pods -n kube-system
kubectl get pods -n kube-system 결과

kube-system kube-apiserver-master
  • kube 관리자 도구로 설정하는 경우, kube 관리자는 마스터 노드의 kube 시스템 네임스페이스에 kube API 서버를 파드로 배포
cat /etc/kubernetes/manifests/kube-apiserver.yaml
  • kube 관리자가 아닌 설정의 메니페스트 폴더에 있는 pod 정의 파일 내에서 옵션을 확인할 수도 있음
cat /etc/systemd/system/kube-apiserver.service
  • kube API 서버 서비스를 확인하여 옵션 확인 가능
ps -aux | grep kube-apiserver
  • 마스터 노드에서 프로세스를 나열하고 kubectl API server를 검색하면 실행 중인 프로세스와 적용된 옵션들 확인 가능
profile
많은 경험을 해보고자 하는

0개의 댓글