k8s集群安装metrics-server

前言

环境:k8s v1.22.6 centos7.9 kubeadm安装的k8s集群

Metrics-Server是k8s集群采集监控数据的聚合器,如采集node、pod的cpu、内存等数据,从 Kubernetes1.8 开始默认使用Metrics-Server采集数据,并通过Metrics API的形式提供查询,但是,kubeadm安装的k8s集群默认是没有安装Metrics-Server的,所以我们来安装一下Metrics-Server。
可以从GitHub上面得到安装Metrics-Server的yaml文件,https://github.com/kubernetes-sigs/metrics-server/releases/download
metrics-server版本与k8s版本对应关系:https://github.com/kubernetes-sigs/metrics-server#compatibility-matrix.
metrics-server高可用可参考https://github.com/kubernetes-sigs/metrics-server#high-availability

部署Metrics-Server

wget https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.6.1/components.yaml
vim components.yaml
因为我们发现无法联网下载k8s官方镜像,所以将image: k8s.gcr.io/metrics-server/metrics-server:v0.6.1改为阿里云的镜像
image: registry.aliyuncs.com/google_containers/metrics-server:v0.6.1
#部署资源清单
kubectl apply -f components.yaml 
#查看pod 
kubectl get pods -n  kube-system  |  grep metrics
# 发现metrics-server pod是0/1状态无法正常就绪
#查看pod日志,看到一行关键字
kubectl logs metrics-server-86c6888f7c-nd8n7  -n  kube-system  | tail -10             
 x509: cannot validate certificate for 192.168.118.133 because it doesn't contain any IP SANs" node="node2"

问题原因: kubelet的 10250 端口使用的是 https 协议,metrics-server去连接kubelet获取数据则需要验证 tls 证书。
我们可以使用参数--kubelet-insecure-tls不验证客户端证书。

解决问题

vim components.yaml
在deployment中的args末尾中添加
- args:
       ...................................
        - --kubelet-insecure-tls				#添加这一句,表示不验证客户端证书
添加后重新kubectl apply  -f components.yaml即可,pod即可正常就绪状态。
注意:k8s官方建议测试环境使用--kubelet-insecure-tls参数可以跳书认证,线上环境有必要的还是需要签发证书。签发证书这块好像还挺免费的,这里不讲。

Metrics-Server验证

# 使用kubectl top 命令,发现metrics-server正常采集到了数据
kubectl top nodes
kubectl top pod --all-namespaces 

k8s 1.16安装metrics-server

wget https://github.com/kubernetes-sigs/metrics-server/archive/v0.3.6.tar.gz
tar xf v0.3.6.tar.gz
cd metrics-server-0.3.6/deploy/1.8+
vim metrics-server-deployment.yaml
      containers:
      - name: metrics-server
        command:			#新增command字段和下面3个参数
        - /metrics-server
        - --kubelet-insecure-tls
        - --kubelet-preferred-address-types=InternalDNS,InternalIP,ExternalDNS,ExternalIP,Hostname
        image: registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server-amd64:v0.3.6	#将镜像改成阿里云镜像
# 安装
kubectl apply -f ./
# 查看metrics-server正常
kubectl -n kube-system get pod | grep metrics-server
kubectl top nodes
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值