본 포스팅은 https://www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests 강의와 https://kodekloud.com/의 내용을 공부하며 기록한 내용입니다.
84 Monitor Cluster Components
Kubernetes에는 Builtin Monitoring Solution이 내장되어있지 않다. 일반적으로 Metric 수집을 위해서 Prometheus, Elastic Satack, DataDog, Dynatrace 와 같은 solution을 사용한다. Metrics Server는 Heapster라는 deprecated된 오픈소스 프로젝트를 계승한 프로젵트인데 Inmemory에서 pod와 Node의 데이터를 취합하는 솔루션인데, Inmemory라서 history를 저장하기 어렵다. Kublet에는 cAdvisor또는 Container Advisor라고 불리는 것이 있다. 이는 외부에 pod의 metric을 제공하는 endpoint를 가지고있다.
Metrics Server 를 사용하면, kubectl top 과 같은 명령어를 사용할 수 있다.
v1.21+ 의 경우 아래와 같은 명령어로 설치가 가능하다.
$ kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/high-availability-1.21+.yaml
serviceaccount/metrics-server created
clusterrole.rbac.authorization.k8s.io/system:aggregated-metrics-reader created
clusterrole.rbac.authorization.k8s.io/system:metrics-server created
rolebinding.rbac.authorization.k8s.io/metrics-server-auth-reader created
clusterrolebinding.rbac.authorization.k8s.io/metrics-server:system:auth-delegator created
clusterrolebinding.rbac.authorization.k8s.io/system:metrics-server created
service/metrics-server created
deployment.apps/metrics-server created
poddisruptionbudget.policy/metrics-server created
apiservice.apiregistration.k8s.io/v1beta1.metrics.k8s.io created
87 Managing Application Logs
pod의 container가 standard out으로 Log를 출력하고있다면, 어떻게 확인할 수 있을까? kubectl logs 명령어로 확인 가능하다.
kubectl logs -f <filename>
만약 하나의 Pod에 여러개의 container가 있다면 어떻게 구분할 것인가? kubectl logs 뒤에 pod이름과 더불어 Container 의 이름을 명시해주면 된다.
