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原文链接: