🔭
kubectl topを使えるようにする
はじめに
podのリソースを確認しようとしたら、error: Metrics API not available
が返ってきたので、リソースを確認できるようにします。
$ kubectl top pod
error: Metrics API not available
metrics-serverの導入
metrics-serverを使ってcluster内のリソース使用状況データを集約することができます。
$ kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/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
数分待つとmetrics-serverのpodが立ち上がります。
$ kubectl get pod -n kube-system
NAME READY STATUS RESTARTS AGE
metrics-server-64cf6869bd-qspcp 1/1 Running 0 4m3s
kubectl top
対象のpodのリソースを確認します。
$ kubectl top pod -n app
NAME CPU(cores) MEMORY(bytes)
app-deployment-58dcb7dc99-v9jpj 1m 2Mi
-n app
はnamespaceを指定しています。
指定しない場合はnamespaceがdefaultのpodを表示します。
参考
Discussion