minikube 에는 쿠버네이트 환경에서 사용할 수 있는 애드온들이 내장되어 있으며, 활성화(enabled), 비활성화(disabled), 열기(open) 등의 명령으로 제어할 수 있다.
- 내장 애드온 목록과 상태 보기
> minikube addons list
- addon-manager: enabled
- dashboard: disabled
- default-storageclass: enabled
- efk: disabled
- freshpod: disabled
- gvisor: disabled
- heapster: disabled
- ingress: disabled
- logviewer: disabled
- metrics-server: disabled
- nvidia-driver-installer: disabled
- nvidia-gpu-device-plugin: disabled
- registry: disabled
- registry-creds: disabled
- storage-provisioner: enabled
- storage-provisioner-gluster: disabled
- dashboard : 클러스터의 웹 UI 툴
- efk : 로그분석 툴(Elasticsearch, Fluentd 및 Kibana)
- freshpod : 이미지 리빌드시 pod 재시작
- gvisor : 컨테이너 런타임을 대체하여 안전하게 pod 실행
- heapster : 컴퓨터 리소스 분석 및 클러스터 모니터링
- ingress : 쿠버네티스 Ingress 리소스를 기반으로 구축된 NGINX 컨트롤러
- logviewer : 경량 로그 툴
- metrics-server : 클러스터 자원 사용률 및 활용도를 수집
1. heapster addon
꽤 많은 애드온이 있지만 어떤게 유용할지는 모르겠고, 모니터링에 관련된 heapster 와 dashboard 를 한 번 사용해 보기로 했다. 애드온을 활성화 시켜 사용하는 방법은 아래와 같다.
> minikube addons enable heapster
- dashboard was successfully heapster
이렇게 애드온을 활성화 시키면 kube-system 이라는 가상 클러스터(namespace) 에 아래와 같이 pod 와 service 가 생성된다.
> kubectl get pod,svc -n kube-system
NAME READY STATUS RESTARTS AGE
pod/coredns-86c58d9df4-krzfn 1/1 Running 1 1d
pod/coredns-86c58d9df4-zs6wk 1/1 Running 1 1d
pod/etcd-minikube 1/1 Running 1 1d
pod/heapster-xtm6r 1/1 Running 0 2m
pod/influxdb-grafana-lt6zz 2/2 Running 0 2m
pod/kube-addon-manager-minikube 1/1 Running 1 1d
pod/kube-apiserver-minikube 1/1 Running 1 1d
pod/kube-controller-manager-minikube 1/1 Running 1 1d
pod/kube-proxy-88cvs 1/1 Running 0 2h
pod/kube-scheduler-minikube 1/1 Running 1 1d
pod/storage-provisioner 1/1 Running 4 1d
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/heapster ClusterIP 10.107.156.3 <none> 80/TCP 2m
service/kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP 1d
service/monitoring-grafana NodePort 10.108.87.143 <none> 80:30002/TCP 2m
service/monitoring-influxdb ClusterIP 10.110.101.236 <none> 8083/TCP,8086/TCP 2m
아래와 같이 애드온을 open 시키면 해당 애드온이 브라우저에 출력된다.
> minikube addons open heapster
- Opening kubernetes service kube-system/monitoring-grafana in default browser...
여기서는 Service 타입으로 NodePort 를 사용했는데, 외부에서 포트를 통해 해당 service 로 접근할 수 있다. http://192.168.10.183:30002/ (node ip : node port)
2. dashboard addon
dashboard 애드온은 minikube 명령으로 즉시 사용할 수 있다.
> minikube dashboard
- Enabling dashboard ...
- Verifying dashboard health ...
- Launching proxy ...
- Verifying proxy health ...
- Opening http://127.0.0.1:12255/api/v1/namespaces/kube-system/services/http:kubernetes-dashboard:/proxy/ in your default browser...
dashboard 애드온을 enable 하고 proxy 를 사용하여 주소를 생성해 주는 일을 한번에 해결해 주었다. 이 Dashboard 는 쿠버네티스 클러스터의 웹 기반 UI 로써, 클러스터 및 실행중인 어플리케이션 관리 등을 할 수 있다.