Helm部署metrics-server

由于之前已经手动部署过metrics-server,所以不会再遇到初次部署时遇到的问题,具体前置操作可查看之前博客的操作
企业项目实战k8s篇(十四)kubernetes资源监控

拉取bitnami/metrics-server:0.5.0-debian-10-r59,修改tag并上传本地harbor

[root@server3 ~]# docker pull bitnami/metrics-server:0.5.0-debian-10-r59
0.5.0-debian-10-r59: Pulling from bitnami/metrics-server
2e4c6c15aa52: Pull complete 
a894671f5dca: Pull complete 
049ba86a208b: Pull complete 
5d7966168fc3: Pull complete 
9804d459b822: Pull complete 
a416b953cdc3: Pull complete 
Digest: sha256:118158c95578aa18b42d49d60290328c23cbdb8252b812d4a7c142d46ecabcf6
Status: Downloaded newer image for bitnami/metrics-server:0.5.0-debian-10-r59
docker.io/bitnami/metrics-server:0.5.0-debian-10-r59
[root@server3 ~]# docker tag docker.io/bitnami/metrics-server:0.5.0-debian-10-r59 reg.westos.org/bitnami/metrics-server:0.5.0-debian-10-r59
[root@server3 ~]# docker push reg.westos.org/bitnami/metrics-server:0.5.0-debian-10-r59
The push refers to repository [reg.westos.org/bitnami/metrics-server]
c30a7821a361: Pushed 
5ecebc0f05f5: Pushed 
6e8fc12b0093: Pushed 
7f6d39b64fd8: Pushed 
ade06b968aa1: Pushed 
209a01d06165: Pushed 
0.5.0-debian-10-r59: digest: sha256:118158c95578aa18b42d49d60290328c23cbdb8252b812d4a7c142d46ecabcf6 size: 1578

拉取应用部署文件,解压缩

[root@server1 ~]# cd helm/
[root@server1 helm]# helm pull bitnami/metrics-server
[root@server1 helm]# tar zxf metrics-server-5.9.2.tgz 
[root@server1 helm]# ls
metrics-server-5.9.2.tgz  

删除之前手动部署metrics-server

删除前

[root@server1 metrics-server]# kubectl   top node
W0804 05:32:45.442844   11383 top_node.go:119] Using json format to get metrics. Next release will switch to protocol-buffers, switch early by passing --use-protocol-buffers flag
NAME      CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
server1   209m         10%    1296Mi          68%       
server2   92m          4%     643Mi           33%       
server4   114m         5%     923Mi           48%   

执行部署文件,撤销部署

[root@server1 ~]# kubectl  delete  -f components.yaml 
serviceaccount "metrics-server" deleted
clusterrole.rbac.authorization.k8s.io "system:aggregated-metrics-reader" deleted
clusterrole.rbac.authorization.k8s.io "system:metrics-server" deleted
rolebinding.rbac.authorization.k8s.io "metrics-server-auth-reader" deleted
clusterrolebinding.rbac.authorization.k8s.io "metrics-server:system:auth-delegator" deleted
clusterrolebinding.rbac.authorization.k8s.io "system:metrics-server" deleted
service "metrics-server" deleted
deployment.apps "metrics-server" deleted
apiservice.apiregistration.k8s.io "v1beta1.metrics.k8s.io" deleted

再次测试kubectl top node,无效命令

[root@server1 ~]# kubectl   top node
W0804 05:34:12.563512   12939 top_node.go:119] Using json format to get metrics. Next release will switch to protocol-buffers, switch early by passing --use-protocol-buffers flag
error: Metrics API not available

valuses文件只需添加imageRegistry: "reg.westos.org",其他默认

global:
  imageRegistry: "reg.westos.org"
  ## E.g.
  ## imagePullSecrets:
  ##   - myRegistryKeySecretName
  ##
  imagePullSecrets: []

创建namespace:metrics-server,尽量一个namespace一个应用,做好隔离

[root@server1 metrics-server]# kubectl  create namespace  metrics-server
namespace/metrics-server created

部署应用,指定namespace:metrics-server,发生错误,按照下面操作指引执行语句

[root@server1 metrics-server]# helm  install  metrics-server . -n metrics-server
NAME: metrics-server
LAST DEPLOYED: Wed Aug  4 05:43:57 2021
NAMESPACE: metrics-server
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
** Please be patient while the chart is being deployed **

The metric server has been deployed.

########################################################################################
### ERROR: The metrics.k8s.io/v1beta1 API service is not enabled in the cluster      ###
########################################################################################
You have disabled the API service creation for this release. As the Kubernetes version in the cluster 
does not have metrics.k8s.io/v1beta1, the metrics API will not work with this release unless:

Option A: 

  You complete your metrics-server release by running:

  helm upgrade --namespace metrics-server metrics-server bitnami/metrics-server \
    --set apiService.create=true

Option B:
  
   You configure the metrics API service outside of this Helm chart

执行后指引语句后,不再报错

[root@server1 metrics-server]#   helm upgrade --namespace metrics-server metrics-server bitnami/metrics-server --set apiService.create=true
Release "metrics-server" has been upgraded. Happy Helming!
NAME: metrics-server
LAST DEPLOYED: Wed Aug  4 05:44:23 2021
NAMESPACE: metrics-server
STATUS: deployed
REVISION: 2
TEST SUITE: None
NOTES:
** Please be patient while the chart is being deployed **

The metric server has been deployed.

In a few minutes you should be able to list metrics using the following
command:

  kubectl get --raw "/apis/metrics.k8s.io/v1beta1/nodes"

查看pod,可以查看到metrics-server,说明部署成功

[root@server1 metrics-server]# kubectl  get pod -n metrics-server 
NAME                              READY   STATUS    RESTARTS   AGE
metrics-server-849cc8b4c7-bcwhh   1/1     Running   0          60s

获取信息

[root@server1 metrics-server]# kubectl get --raw "/apis/metrics.k8s.io/v1beta1/nodes"
{"kind":"NodeMetricsList","apiVersion":"metrics.k8s.io/v1beta1","metadata":{},"items":[]}

查看节点cpu及mem信息

[root@server1 metrics-server]# kubectl  top node --use-protocol-buffers 
NAME      CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
server1   209m         10%    1384Mi          72%       
server2   104m         5%     677Mi           35%       
server4   202m         10%    930Mi           48%       
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐