以前の記事では、Centos7でKubernetes環境を構築しました。
今回は各リソースのCPUやメモリー情報の収集/監視を行えるMetrics Serverの導入を行っていきたいと思います。
Metrics Serverリソースの設定
まずgit cloneでMetrics Serverのリソースファイルを取得し、deploymentを一部編集します。
# git clone https://github.com/kubernetes-sigs/metrics-server
# vi ./metrics-server/manifests/base/deployment.yaml
containers:
- name: metrics-server
image: gcr.io/k8s-staging-metrics-server/metrics-server:master
imagePullPolicy: IfNotPresent
# ここから追記
command:
- /metrics-server
- --kubelet-insecure-tls
- --kubelet-preferred-address-types=InternalIP
# ここまで追記
args:
- --cert-dir=/tmp
- --secure-port=4443
- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
- --kubelet-use-node-status-port
Metrics Serverリソースの作成
リソースの設定が完了したら、applyでリソースの作成を行います。
# kubectl apply -k ./metrics-server/manifests/base/
以下のコマンドで、NAMEがmetrics-serverから始まるリソースが作成されていること確認。
# kubectl get pods -n kube-system
metrics-server-xxxxxxxxxx-xxxxx 1/1 Running 2 (5d21h ago) 8d
Metrics Serverの動作確認
リソースの作成が確認出来たら、コマンドで各ノードと各Podの情報が取得できるようになります。
podのコマンドについては、適宜namespaceを指定してください。
# kubectl top node
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
k8s-master 333m 22% 1111Mi 40%
k8s-worker1 333m 44% 1777Mi 60%
k8s-worker2 333m 66% 1888Mi 50%
# kubectl top pod
NAME CPU(cores) MEMORY(bytes)
nginx-deployment-xxxxxxxxx-xxxxx 0m 1Mi
nginx-deployment-xxxxxxxxx-xxxxx 0m 1Mi
original-covid-app-container-deployment-xxxxxxxxxx-xxxxx 0m 2Mi
以上のような表示がされたらMetrics Serverの導入は完了し、各リソース情報の収集や監視を行えます。
参考URL
https://github.com/kubernetes-sigs/metrics-server
https://www.server-world.info/query?os=Ubuntu_20.04&p=kubernetes&f=9
https://qiita.com/dingtianhongjie/items/a8ddc2d7f7b57291a13e