• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    해결됨

컨트롤러 매니저, 스케줄러, kubelet 모두 주기적으로 API 서버를 통해 상태를 확인하나요?

23.02.05 23:13 작성 조회수 160

0

안녕하세요

쿠버네티스의 기본 철학과 파드 배포 흐름을 보면서 궁금한 점이 생겨 질문 드립니다.

추구하는 상태를 선언하고, 그 상태를 따라간다고 이해했습니다. 즉 컨트롤러 매니저, 스케줄러, kubelet 3개 모두 현재 추구하는 상태를 보고, 차이를 발견하면 조치를 취하는 형태로 이해했습니다.

  1. 상태를 저장하는 곳이 etcd가 맞나요?

  2. 컨트롤러 매니저, 스케줄러, kubelet 3개 다 etcd에 있는 추구하는 상태를 확인하나요?

  3. etcd의 데이터를 확인할 때 항상 API 서버를 통하나요?

  4. 그렇다면 컨트롤러 매니저, 스케줄러, kubelet 3개 다 주기적으로 API 서버에 상태를 확인하는 요청을 보내고 응답을 받나요?

답변 1

답변을 작성해보세요.

1

안녕하세요

  1. 아니요 상태를 백업하는 것입니다.

  2. #1이 다르게 이해되어 혼동되신 것 같은데, etcd가 아니라 API 서버에 있는 상태를 확인합니다. 그리고 kubelet은 다시 영상을 보시면 아시겠지만, 화살표 방향이 단 방향입니다. 확인이 아니라 지시 받은 일을 합니다.

  3. 이 역시 영상을 다시 보시면 아실 것 같은데 etcd는 API 서버의 상태를 백업하는거라 API 서버와만 통신합니다. (설계에 따라 다르게 하려면 할 수도 있지만 현재는요)

  4. 아마도...#2 답변을 보시고, 영상에 화살표 방향 및 설명을 다시 보시면 이해가 되실 것 같습니다.

장민호님의 프로필

장민호

질문자

2023.02.06

빠른 답변 감사합니다.

etcd는 백업 용도고, 상태는 API 서버가 가지고 있군요

영상을 여러 번 봤는데, 컨트롤러 매니저나 스케줄러나 kubelet이 "API 서버의 상태를 보고" 상태 차이가 있으면 자신들의 작업을 처리하여 상태 업데이트 시키는 것으로 이해했습니다.

저는 "API 서버의 상태를 본다 = 주기적으로 API 서버의 상태를 조회한다" 라고 이해했는데(4번 질문의 의도) 이게 틀린 말이라는 건가요?

kubelet이 있으니 #4이 맞지 않는 것이고, 상태가 저장되어 있는 API 서버를 주기적으로 체크해서 맞춰야 하니 API 서버에 저장된 상태를 조회한다는 것은 맞습니다.

장민호님의 프로필

장민호

질문자

2023.02.06

kubelet은 API 서버의 상태를 보는 것이 아니고, API 서버의 지시을 받아서 수행하는 거였군요. 감사합니다.