해결된 질문
작성
·
196
0
안녕하세요
쿠버네티스의 기본 철학과 파드 배포 흐름을 보면서 궁금한 점이 생겨 질문 드립니다.
추구하는 상태를 선언하고, 그 상태를 따라간다고 이해했습니다. 즉 컨트롤러 매니저, 스케줄러, kubelet 3개 모두 현재 추구하는 상태를 보고, 차이를 발견하면 조치를 취하는 형태로 이해했습니다.
상태를 저장하는 곳이 etcd가 맞나요?
컨트롤러 매니저, 스케줄러, kubelet 3개 다 etcd에 있는 추구하는 상태를 확인하나요?
etcd의 데이터를 확인할 때 항상 API 서버를 통하나요?
그렇다면 컨트롤러 매니저, 스케줄러, kubelet 3개 다 주기적으로 API 서버에 상태를 확인하는 요청을 보내고 응답을 받나요?
답변 1
1
안녕하세요
아니요 상태를 백업하는 것입니다.
#1이 다르게 이해되어 혼동되신 것 같은데, etcd가 아니라 API 서버에 있는 상태를 확인합니다. 그리고 kubelet은 다시 영상을 보시면 아시겠지만, 화살표 방향이 단 방향입니다. 확인이 아니라 지시 받은 일을 합니다.
이 역시 영상을 다시 보시면 아실 것 같은데 etcd는 API 서버의 상태를 백업하는거라 API 서버와만 통신합니다. (설계에 따라 다르게 하려면 할 수도 있지만 현재는요)
아마도...#2 답변을 보시고, 영상에 화살표 방향 및 설명을 다시 보시면 이해가 되실 것 같습니다.
kubelet이 있으니 #4이 맞지 않는 것이고, 상태가 저장되어 있는 API 서버를 주기적으로 체크해서 맞춰야 하니 API 서버에 저장된 상태를 조회한다는 것은 맞습니다.
빠른 답변 감사합니다.
etcd는 백업 용도고, 상태는 API 서버가 가지고 있군요
영상을 여러 번 봤는데, 컨트롤러 매니저나 스케줄러나 kubelet이 "API 서버의 상태를 보고" 상태 차이가 있으면 자신들의 작업을 처리하여 상태 업데이트 시키는 것으로 이해했습니다.
저는 "API 서버의 상태를 본다 = 주기적으로 API 서버의 상태를 조회한다" 라고 이해했는데(4번 질문의 의도) 이게 틀린 말이라는 건가요?