正确部署metrics-server (0.3.6,3.7 )及问题处事(kubernetes1.9.3)

metrics-server作用:监控必须的组件
正确部署metrics-server 0.3.6,3.7如下:

修改k8s配置

修改/var/lib/kubelet/config.yaml在最后添加

serverTLSBootstrap: true

serverTLSBootstrap作用:
TLS Bootstrap 证书签发

重起

systemctl daemon-reload
systemctl restart kubelet

签发证书(删除无用的证书,有用的会自动再次生成)

kubectl get csr
kubectl certificate approve csr-xxx

如果证书过多删除之:

kubectl get csr | awk '{print $1}' |xargs kubectl delete csr

修改apiserver配置(1.9版本不用添加)
vim /etc/kubernetes/manifests/kube-apiserver.yaml
在command下添加
enable-aggregator-routing=true

作用:
打开到 endpoints IP 的 aggregator 路由请求,替换 cluster IP。

安装metrics-server(3.6,3.7自己改)

1.下载安装文件https://github.com/chenjiangtao/spring-boot-on-kubernetes/blob/main/kubernetes/monitoring/new/metrics-server-3.6.yaml

2.修改deployment文件,检查文件中的两个位置:
hostNetwork: true #修改网络。作用:Pod 网络模式
- --kubelet-insecure-tls #为了方便测试我这里直跳过安全tls,推荐配置相关证书
如图:
在这里插入图片描述

#这个改不改都行 (1.9版本可以不改)
runAsNonRoot: true #把true改成false
作用:

3.查看安装结果

kubectl top nodes
kubectl top pods -A
kubectl get –raw “/apis/metrics.k8s.io/v1beta1/nodes/starbucks-mysql1” |jq .

常见问题处理(1.9没有这些问题)

错误如下:
Error from server (ServiceUnavailable): the server is currently unable to handle the request (get nodes.metrics.k8s.io)
解决方案:
在/etc/kubernetes/manifests/kube-apiserver.yaml 文件command字段下增加
--enable-aggregator-routing=true
然后重启kubelet便能解决
systemctl restart kubelet

问题处理:证书重新签发一下就行了:kubectl certificate approve csr-xxx
在这里插入图片描述

注意csr会被定期删除

为了减少集群中遗留的过时的 CertificateSigningRequest 资源的数量, 一个垃圾收集控制器将会周期性地运行。 此垃圾收集器会清除在一段时间内没有改变过状态的 CertificateSigningRequests:

  • 已批准的请求:1小时后自动删除
  • 已拒绝的请求:1小时后自动删除
  • 挂起的请求:1小时后自动删除
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值