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

2021-05-19 16:06:55 浏览数 (1)

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

修改k8s配置

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

serverTLSBootstrap: true

serverTLSBootstrap作用: TLS Bootstrap 证书签发

重起

代码语言:javascript复制
systemctl daemon-reload
systemctl restart kubelet

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

代码语言:javascript复制
kubectl get csr
kubectl certificate approve csr-xxx

如果证书过多删除之:

代码语言:javascript复制
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.查看安装结果

代码语言:javascript复制
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小时后自动删除

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/100368.html原文链接:

0 人点赞