提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔
前言
提示:這里可以添加本文要記錄的大概內(nèi)容:
metrics-server安裝后,可以查看集群的node和pod的CPU和Memory占用情況,非常有用。
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
一、安裝步驟
1.下載metric-server的chart
官網(wǎng)地址:https://github.com/kubernetes-sigs/metrics-server/releases
找到一個版本的helm chart后下載到本地解壓。
2.改vaules.yaml模板
找到values.yaml模板,打開后我們改如下三行:
repository: registry.aliyuncs.com/google_containers/metrics-server
repository: registry.aliyuncs.com/google_containers/autoscaling/addon-resizer
args:
- –kubelet-insecure-tls
三處的代碼塊如下:
第一處:
image:
repository: registry.aliyuncs.com/google_containers/metrics-server
# Overrides the image tag whose default is v{{ .Chart.AppVersion }}
第二處:
args:
- --kubelet-insecure-tls
第三處:
image:
repository: registry.aliyuncs.com/google_containers/autoscaling/addon-resizer
改這三處的目的是:
- 修改鏡像下載池為阿里源,方便國內(nèi)用戶下載;
- 增加一個args參數(shù),忽略tls,否則會報錯;
3.使用helm安裝metrics
將原始的chart包傳至k8s環(huán)境某目錄
在該目錄下重新vim一個values-metrics.yaml文件,將本地新改好的代碼全部粘貼復(fù)制進(jìn)這個新文件。然后在本目錄下執(zhí)行:
helm install <下載的原始chart包> --values values-metrics.yaml -n kube-system
root@k8s-master:/home/perry# helm install metrics-server metrics-server-3.11.0.tgz --values metric-value.yaml -n kube-system
等待幾分鐘后,即可正常執(zhí)行
kubectl top nodes
kubectl top pods
二、遇到問題
我之前沒有加“- --kubelet-insecure-tls” 參數(shù),導(dǎo)致在執(zhí)行kubectl top node的時候一直報錯:
root@k8s-master:~# kubectl top nodes
error: Metrics API not available
root@k8s-master:~#
查看pod logs:
root@k8s-master:~# kubectl -n kube-system logs metrics-server-7c76c9655c-twhzr
報錯:
scraper.go:140] “Failed to scrape node” err=“Get “https://11.0.1.139:10250/metrics/resource”: x509: cannot validate certificate for 11.0.1.139 because it doesn’t contain any IP SANs” node=“k8s-node2”
root@k8s-master:~# kubectl -n kube-system logs metrics-server-7c76c9655c-twhzr
I0117 08:41:44.446733 1 serving.go:342] Generated self-signed cert (/tmp/apiserver.crt, /tmp/apiserver.key)
I0117 08:41:44.911378 1 secure_serving.go:267] Serving securely on [::]:4443
I0117 08:41:44.911537 1 requestheader_controller.go:169] Starting RequestHeaderAuthRequestController
I0117 08:41:44.911565 1 shared_informer.go:240] Waiting for caches to sync for RequestHeaderAuthRequestController
I0117 08:41:44.911796 1 dynamic_serving_content.go:131] "Starting controller" name="serving-cert::/tmp/apiserver.crt::/tmp/apiserver.key"
E0117 08:41:44.916116 1 scraper.go:140] "Failed to scrape node" err="Get \"https://11.0.1.138:10250/metrics/resource\": x509: cannot validate certificate for 11.0.1.138 because it doesn't contain any IP SANs" node="k8s-node1"
I0117 08:41:44.916282 1 tlsconfig.go:240] "Starting DynamicServingCertificateController"
W0117 08:41:44.916395 1 shared_informer.go:372] The sharedIndexInformer has started, run more than once is not allowed
I0117 08:41:44.916510 1 configmap_cafile_content.go:201] "Starting controller" name="client-ca::kube-system::extension-apiserver-authentication::requestheader-client-ca-file"
I0117 08:41:44.916536 1 shared_informer.go:240] Waiting for caches to sync for client-ca::kube-system::extension-apiserver-authentication::requestheader-client-ca-file
I0117 08:41:44.916571 1 configmap_cafile_content.go:201] "Starting controller" name="client-ca::kube-system::extension-apiserver-authentication::client-ca-file"
I0117 08:41:44.916592 1 shared_informer.go:240] Waiting for caches to sync for client-ca::kube-system::extension-apiserver-authentication::client-ca-file
E0117 08:41:44.932118 1 scraper.go:140] "Failed to scrape node" err="Get \"https://11.0.1.137:10250/metrics/resource\": x509: cannot validate certificate for 11.0.1.137 because it doesn't contain any IP SANs" node="k8s-master"
E0117 08:41:44.940757 1 scraper.go:140] "Failed to scrape node" err="Get \"https://11.0.1.139:10250/metrics/resource\": x509: cannot validate certificate for 11.0.1.139 because it doesn't contain any IP SANs" node="k8s-node2"
所以在創(chuàng)建的時候需要加上那個args參數(shù)“- --kubelet-insecure-tls”
創(chuàng)建完成后get pods -o yaml是如下形式:文章來源:http://www.zghlxwxcb.cn/news/detail-827050.html
root@k8s-master:/home/perry# kubectl -n kube-system get pods metrics-server-5f5fc55fd-znknr -o yaml
...
spec:
containers:
- args:
- --secure-port=10250
- --cert-dir=/tmp
- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
- --kubelet-use-node-status-port
- --metric-resolution=15s
- --kubelet-insecure-tls
image: registry.aliyuncs.com/google_containers/metrics-server:v0.6.4
Created by Perry Hao at 2024.01.17文章來源地址http://www.zghlxwxcb.cn/news/detail-827050.html
到了這里,關(guān)于k8s(1.28)使用Helm安裝metrics-server的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!