- 클러스터 모니터링 리소스 사용량, 메트릭(cpu, 메모리, 디스크) pod, node 상태 등 빌트인은 없지만 여러 오픈소스 툴이 있음 -- metrics server 클러스터당 1개. 각 노드, 파드에서 메트릭 수집 in-memory 툴로 디스크에 저장되지 않아 실시간 모니터링만 가능 설치 후 kubectl top node/pod으로 현재 사용중인 리소스 모니터링 가능 -- prometheus, elastic stack, datadog, dynatrace, ... - 어플리케이션 모니터링 docker logs 명령어로 어플리케이션의 도커 로그 수집 kubectl logs pod container 명령어로 pod의 특정 컨테이너의 로그 수집 CKA 시험에서는 이 정도만 알면 된다고 한다...
Infra/[강의] CKA with Practice Tests
. 스케줄러는 pod의 설정 값을 읽어서 nodeName이 없는 경우 자체 스케줄링 알고리즘에 따라 배치하고 값 설정함 . 스케줄러가 없는 경우 pod은 배치되지 못하고 pending 상태로 남음 . pod의 nodeName은 초기 생성에만 지정할 수 있으며, 이후 수정하려면 Binding을 생성해서 직접 node를 추가해야 함 - label: grouping을 위한 사전 준비 - selector: 특정 label을 가진 객체를 선택 - annotations: 정보 저장 용도 - taint: node 기준. 특정 pod를 허용할지 말지 결정 - NoSchedule: 새로 스케줄링 불가능 - PreferNoSchedule: 어쩔 수 없으면 스케줄링 - NoExecute: 이미 존재하는 pod까지 재배치(삭..
클러스터 구조 - master node - etcd: key-value 구조의 클러스터 데이터 저장소 모든 클러스터의 상태가 저장됨. apiserver만이 수정 가능 - kube-apiserver: 전체 통제 프론트엔드. kubelet에 명령 전달, etcd 수정 - kube-scheduler: worker node에 pod 스케쥴링 apiserver 모니터링. 스케쥴링이 필요한 경우 pod를 node에 스케쥴링 후 apiserver에 수행 요청 - kube-controller-manager: node 등의 여러 자원에 대해 상태 모니터링, 제어하는 controller 모음 apiserver를 통해 상태 모니터링, 지정된 상태와 다른 경우 처치 (새로 배포 등) - replication controlle..