이 블로그 내용을 테스트한 날짜: 2023년 02월 17일
아래 예시처럼 따라하면, Kubernetes 자원에 대한 Metrics 정보를 볼 수 있다.
단, 아래 절차에서 "NOTE: " 라고 표시된 부분을 추가 해야 한다.
##
## 아래 명령을 수행해서 metrics-server를 설치하기 위한 manifest file을 download한다.
##
$ curl -L https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml -o components.yaml
##
## 다운로드한 components.yaml 파일에
## "--kubelet-insecure-tls=true" 옵션을 추가한다.
## (아래 예제를 따라하면 된다)
$ vi components.yaml
... 중간 생략 ...
spec:
containers:
- args:
- --cert-dir=/tmp
- --secure-port=4443
- --kubelet-insecure-tls=true ## <-- NOTE: 이 부분을 추가한다.
- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
- --kubelet-use-node-status-port
- --metric-resolution=15s
image: k8s.gcr.io/metrics-server/metrics-server:v0.6.2
... 중간 생략 ...
$ kubectl apply -f components.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
apiservice.apiregistration.k8s.io/v1beta1.metrics.k8s.io created
$
$ kubectl get -n kube-system pod -l k8s-app=metrics-server
NAME READY STATUS RESTARTS AGE
metrics-server-ddfcd777b-lktxx 1/1 Running 0 67s
$ kubectl top node
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
node-69 219m 5% 23607Mi 24%
node-73 202m 5% 48753Mi 50%
node-75 173m 4% 51048Mi 52%
... 중간 생략 ...
$ kubectl top -n istio-system pod --containers
POD NAME CPU(cores) MEMORY(bytes)
grafana-68cc7d6d78-7kjw8 grafana 3m 51Mi
istio-egressgateway-6cb7bdc7fb-2wg57 istio-proxy 3m 47Mi
istio-ingressgateway-694d8d7656-fk4tw istio-proxy 7m 62Mi
istiod-6c68579c55-xk6cm discovery 2m 80Mi
jaeger-5d44bc5c5d-rb4v6 jaeger 10m 3612Mi
kiali-fd9f88575-z4wrm kiali 1m 131Mi
prometheus-77b49cb997-zvjm8 prometheus-server 9m 454Mi
prometheus-77b49cb997-zvjm8 prometheus-server-configmap-reload 1m 6Mi
... 중간 생략 ...
$
위에서 "--kubelet-insecure-tls=true " 라고 설정을 추가했는데, 자세한 설명은 아래 원문을 참고할 것~~~
Metrics Server Pod랑 Kubelet 이랑 API 연동할 때, CA(Certificate Authority)를 검사하지 말고 연동하라는 뜻이다.
kubelet-insecure-tls 옵션에 대한 설명
Reference
딱히 어려운 내용이 없어서, 아래 원문을 읽고 따라해도 잘 설치되고, 동작한다.
GitHub - kubernetes-sigs/metrics-server: Scalable and efficient source of container resource metrics for Kubernetes built-in aut
Scalable and efficient source of container resource metrics for Kubernetes built-in autoscaling pipelines. - GitHub - kubernetes-sigs/metrics-server: Scalable and efficient source of container reso...
github.com