전체 글(117)
-
Kube-Scheduler
Scheduler 는 오직 어떤 노드에 어떤 pod를 띄울지를 결정한다. 실제로 node에 pod를 위치시키는건 아니고, 단지 결정만 한다. 노드에 pod를 생성하는건 kubelet이 한다. 더 구체적으로 얘기해보자. Scheduler 는 pod를 특정 기준에 따라 pod를 어느 노드에 놓을지 결정한다. 특정 어플리케이션 전용인 노드가 있을 수도 있다. Scheduler 는 각 pod를 보고 가장 적절한(best fit한) node 를 찾는다. 1. pod 최소 필요 용량보다 작은 용량을 가진 노드는 필터링한다. ex) pod 용량 10이므로 4 node들은 제외 2. pod에 best fit 한 노드를 식별한다. 우선순위 function 을 써서 0~ 10 까지 scale을 매긴다. 12 는 10을 넣..
2023.04.08 -
Kube Controller Manager
본 글은 Udemy 의 CKA 강의를 정리한 글입니다. Controller 는 모니터링 및 새 선박이 도착하거나, 떠나거나, 없애야할때 조치를 취한다. 선박의 컨테이너나 장애가난 선박에 컨테이너를 관리한다. 1. Watch Status (선박의 상태를 지켜본다.) 2. Remediate Situation (사태를 수습한다.) node controller 는 노드의 상태를 모니터링하고 응용프로그램이 계속 실행되도록 필요한 행동을 한다. 5초마다 node 의 상태를 확인한다. 노드의 heartbeat이 멈추면 40초 후에야 신호가 잡힌다. 수신 불가로 표시되면 , 다시 뜰때까지 5분이 걸린다. 만약에 안뜨면 , 할당된 pod들을 제거하고, (pod가 replica set 의 일부일때에 한해) 정상적인 노드로..
2023.04.08 -
[Watch API] kube-scheduler 가 API server를 모니터링하는 방식
스케줄러 모니터링할때 어떤 방식을 쓰는지 궁금하네 -> watch API 또는 일정 주기로 API 서버에 쿼리를 수행해서 클러스터의 상태를 모니터링 한다. * Watch API는 클러스터의 리소스 상태에 대한 변경 사항을 실시간으로 감지하는 API로, 이를 통해 kube-scheduler는 클러스터의 노드 상태, 파드 상태, 파드 생성/수정/삭제와 같은 이벤트를 지속적으로 감지하여 스케줄링 결정을 수립한다. kube-scheduler 는 API 서버와 HTTP 연결을 맺고, Watch API end point에 HTTP GET 요청을 보낸다. API 서버는 Kube-scheduler 의 요청에 대한 응답을 반환하지 않고, 연결을 열어둔다. 이를 통해 kube-scheduler 는 계속해서 API서버의 응..
2023.04.08 -
Kube API server
kubectl 명령어를 실행하면, kubectl utility 는 kube-api server에 도달한다. 그럼 kube api server는 요청을 인증하고, 유효성을 확인한다. 그럼 etcd cluster에서 데이터를 가져와서 응답한다. 3단계 임 1. Authenticate user (사용자 인증) 2. Validate Request (요청 유효성 검사) 3. Retrieve data (데이터 전달) 굳이 kubectl 을 쓸 필요는 없다.대신 API 를 직접 호출할수있다. POST 요청등으로 가능! POST로 pod 생성 예시 요청하면, 인증하고, 유효성 검증한다. curl -X POST /api/v1/namesapces/default/pods ... [other] -> Pod created! 1..
2023.04.08 -
Docker 와 Container-D 이야기
본 글은 Udemy 의 CKA 강의를 정리한 글입니다 쿠버네티스는 Docker 의 오케스트레이션 역할을 하면서, Docker 만 지원했었다. 근데, 쿠버네티스가 인기를 얻자. k8s 사용자는 Docker 이상의 컨테이너 런타임과 작업하려했고, 런타임 인터페이스 ,CRI (Container Runtime Interface)라는 인터페이스를 소개 했다. CRI 는 OCI 를 준수하는 한 어떤 공급업체든 k8s 의 컨테이너 런타임으로 작업하게 해준다. OCI (Open Container initiative) 는 이미지펙과 런타임스펙으로 구성돼 있다. ImageSpec 은 이미지를 어떻게 빌드해야하는가를 명세한다. runtimerspec 은 container runtime 이 어떻게 개발돼야하는가를 명세한다. ..
2023.04.07 -
Kubernetes Cluster 구성도
본 글은 Udemy 의 CKA 강의를 정리한 글입니다. CKA : Certified Kubernetes Administrator https://github.com/mmumshad/kubernetes-the-hard-way 강의노트: https://github.com/kodekloudhub/certified-kubernetes-administrator-course 쿠버네티스 클러스터는 노드 세트로 구성되는데, 가상 ,온프레미스 또는 클라우드일수 있고, 컨테이너 형태의 응용 프로그램 호스트 일수 있다. Worker node는 컨테이너를 로딩할 수있는 배다. 선박에 컨테이너를 적재, 관리, 식별하는 작업이 필요하다. 컨트롤하는 선박은 쿠버네티스의 Master Node다. Mater node 는 노드에 대한 정..
2023.04.07