官方地址
首先在私有仓库准备metrices-server镜像:
yaml文件下载
将yaml文件中的镜像设置成自己仓库中的镜像:
运行后,在kube-system中会出现一个Pod:
查看日至,报错x509,此处可以通过添加--kubelet-insecure-tls
跳过证书检查。但不推荐生产使用,日志显示为证书问题:kubectl logs -n kube-system metrics-server-7596f4f9b4-p7wnc
在此,启用TLS Bootstrap证书签发:vim /var/lib/kubelet/config.yaml
重启:systemctl restart kubelet.service
此步骤在所有节点上均执行
此时查看证书状态,2,3,4正在等待:
对三个节点允许:kubectl certificate approve csr-5dm85
此时成功:
查看该svc:
在控制器启动以后,首先启动的Pod读取各个节点上的相关指标,该Pod是应Service的代理,最后由APIService发送请求读取Service信息:
此时,可以通过kubectl top node
查看各个节点CPU和内存使用
也可查看各个NamespaceCPU,内存使用:kubectl top pod -n kube-system
进一步,是整一个Web UI
首先是准备dashboard和metrics-scraper镜像:
下载控制文件:wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.2.0/aio/deploy/recommended.yaml
修改镜像:
查看运行容器时需要指定namespace:
但是此时由于暴露类型是clusterIP,只能集群内访问
将该service类型改为nodeport:kubectl -n kubernetes-dashboard edit svc kubernetes-dashboard
此时,在火狐浏览器中输入对应端口,会要求进一步输入token:
默认是以新建的sa的身份进入:
其中sa详细信息可看到是使用token访问:
进一步查看token:
此时填入即可登陆,由于该sa对其他namespace没有权限,所以会报错:
进行授权操作:
在此直接不用新建用户,直接和以有的角色绑定,然后给予最高的集群控制权限:
vim rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: kubernetes-dashboard-admin
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: kubernetes-dashboard
namespace: kubernetes-dashboard
此时没有权限的报错消失:
可以查看各种信息:
也可以快速创建任务: