728x90
CPU, 메모리, 네트워크 디스크 소모량, 포드 개수와 각 포드 성능 지표 등의 메트릭을 수집하여 저장 및 모니터링하는 통합 솔루션을 자체 지원하지는 않으나 오픈 소스 솔루션은 많음(Metric Server, Data Dog, Prometheus 등)
Metrix Server
인메모리 모니터링 솔루션(historical performance data를 확인할 수는 없다.) 쿠버네테스 클러스터당 메트릭 서버가 1개로, 서버는 각 쿠버네테스 노드와 포드에서 메트릭 회수한다.
파드 지표 수집
Kubelet 하위에 존재하는 CAdvisor는 파드에서 성능 메트릭을 회수하고 kubelet API를 통해 메트릭을 공개해 메트릭 서버에서 메트릭이 사용 가능하게 한다.
Getting Start
- minikube를 사용하는 경우
minikube addons enable metrics-server
- addons을 통해 Metric Server를 활성화한다.
- 그 외 환경의 경우
- GitHub Repository에서 Metric Server 배포 파일을 복제해서 Metric Server를 배포한 후 kubectl create 커맨드를 통해 필수 구성 요소를 배포한다.
# copy deploy file git clone [metric-server github repository address] # deploy a set of pods, services, roles -> 서버가 클러스터 내 노드에서 퍼포먼스 지표를 얻을 수 있게 함 kubectl create -f [file-path (which is file contained) or file-name]
- Metric Server가 활성화되면 노드의 퍼포먼스 지표를 수집하는데 잠시 시간이 걸린다. 잠시 후 kubectl top node 커맨드를 통해 노드들의 퍼포먼스 지표를 조회할 수 있다.
kubectl top node
- Cf. 파드의 퍼포먼스 지표 조회 역시 가능
kubectl top pod
Managing Application Logs
랜덤 이벤트가 생성되는 이미지를 사용한 파드 생성
랜덤 이벤트를 생성하는 도커 컨테이너(컨테이너명: event-simulator) 생성
docker run kodekloud/event-simulator
docker run -d kodekloud/event-simulator
# 도커 컨테이너 로그 조회 Cf. -f(follow): 실시간으로 로그 출력 옵션
docker logs -f [container-id]
해당 이미지를 사용하는 파드 생성
apiVersion: v1
kind: Pod
metadata:
name: event-simulator-pod
spec:
containers:
- name: event-simulator
image: kodekloude/event-simulator
kubectl create -f event-simulator-pod.yaml
파드의 로그 실시간 조회
kubectl logs -f event-simulator-pod
파드 내에 다수의 컨테이너가 속한 경우
이미지 프로세서 컨테이너를 포함해야 함
apiVersion: v1
kind: Pod
metadata:
name: event-simulator-pod
spec:
containers:
- name: event-simulator
image: kodekloude/event-simulator
- name: image-processor
image: some-image-processor
또한 logs 커맨드 사용시 로그를 조회할 컨테이너명을 명시해야 한다. (그렇지 않으면 오류 발생)
kubectl logs -f event-simulator-pod
반응형