Metrics-Server部署 ,Dashboard部署(可视化)

kubernetes资源监控

Metrics-Server介绍
Metrics-Server是集群核心监控数据(cpu、内存)的聚合器,用来替换之前的heapster。
容器相关的 Metrics 主要来自于 kubelet 内置的 cAdvisor 服务,有了MetricsServer之后,用户就可以通过标准的 Kubernetes API 来访问到这些监控数据。
Metrics API 只可以查询当前的度量数据,并不保存历史数据。
Metrics API URI 为 /apis/metrics.k8s.io/,在 k8s.io/metrics 维护。
必须部署 metrics-server 才能使用该 API,metrics-server 通过调用 Kubelet Summary API 获取数据。
Metrics Server 并不是 kube-apiserver 的一部分,而是通过 Aggregator 这种插件机制,在独立部署的情况下同 kube-apiserver 一起统一对外服务的。
kube-aggregator 其实就是一个根据 URL 选择具体的 API 后端的代理服务器。

在这里插入图片描述
Metrics-server属于Core metrics(核心指标),提供API metrics.k8s.io,仅提供Node和Pod的CPU和内存使用情况。而其他Custom Metrics(自定义指标)由Prometheus等组件来完成。

Metrics-Server安装部署
资源下载:https://github.com/kubernetes-incubator/metrics-server

[root@server2 dashboard]# kubectl apply -f recommended.yaml 

查看日志的报错,解决问题:
需要再次修改清单配置:
将两处的端口改为4443

vim components.yaml

--secure-port=4443

- containerPort: 4443

这时如果执行清单,还是会无法运行,因为还有问题没有解决
解决报错:
报错:x509: certificate signed by unknown authority
启用TLS Bootstrap 证书签发(在master和各个节点中)

[root@server2 dashboard]# vim /var/lib/kubelet/config.yaml
serverTLSBootstrap: true
systemctl restart kubelet
##server2,3,4 都修改
kubectl get csr
kubectl cretificate approve csr-7vbks
## 逐次认证

在这里插入图片描述

在这里插入图片描述
报错:dial tcp: lookup server2 on 10.96.0.11:53: no such host
这是因为没有内网的DNS服务器,所以metrics-server无法解析节点名字。可以直接修改 coredns的configmap,将各个节点的主机名加入到hosts中,这样所有Pod都可以从 CoreDNS中解析各个节点的名字。

kubectl -n kube-system edit cm coredns
        hosts {
           172.25.8.2 server2
           172.25.8.3 server3
           172.25.8.4 server4
           fallthrough
        }

在这里插入图片描述

查看节点健康情况

在这里插入图片描述
查看svc后端是否健康。

[root@server2 dashboard]# kubectl -n kube-system describe svc metrics-server 

在这里插入图片描述监控各个节点

[root@server2 ~]# kubectl top node
[root@server2 ~]# kubectl -n kube-system top pod

在这里插入图片描述
在这里插入图片描述

Dashboard部署(可视化)

Dashboard可以给用户提供一个可视化的 Web 界面来查看当前集群的各种信息。用户可以用 Kubernetes Dashboard 部署容器化的应用、监控应用的状态、执行故障排查任务以及管理 Kubernetes 各种资源。

创建目录dashboard用来存放关于它的文件:
下载所需要的配置文件:recommended.yaml

[root@server2 ~]# mkdir dashboard
[root@server2 ~]# cd dashboard/
[root@server2 dashboard]# wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml
[root@server2 dashboard]# ls
recommended.yaml
[root@server2 dashboard]# vim recommended.yaml 
打开文件发现需要两个镜像 直接下载到本地harber仓库



在server1上:
接下来将需要的镜像拉取下来上传到私有仓库中:
```bash
[root@server1 1]# docker pull kubernetesui/metrics-scraper:v1.0.6
[root@server1 1]# docker pull kubernetesui/dashboard:v2.3.1

在这里插入图片描述
在这里插入图片描述
执行资源清单
在这里插入图片描述
此时查看节点,发现没有IP地址

[root@server2 dashboard]# kubectl -n kubernetes-dashboard get svc
NAME                        TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
dashboard-metrics-scraper   ClusterIP   10.109.20.71     <none>        8000/TCP   18s
kubernetes-dashboard        ClusterIP   10.105.113.148   <none>        443/TCP    19s
[root@server2 dashboard]# kubectl describe secrets  kubernetes-dashboard-token-g2g6g -n 
default               kube-node-lease       kubernetes-dashboard  metallb-system        
ingress-nginx         kube-public           kube-system  

更改svc kubernetes-dashboard的网络类型为LoadBalancer

[root@server2 dashboard]# kubectl -n kubernetes-dashboard edit svc
Edit cancelled, no changes made.
##修改为LoadBalancer
    type: LoadBalancer

在这里插入图片描述
再次查看svc ,可以看到分配的vip

[root@server2 dashboard]# kubectl -n kubernetes-dashboard get svc
NAME                        TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE
dashboard-metrics-scraper   ClusterIP      10.109.20.71     <none>        8000/TCP        3m32s
kubernetes-dashboard        LoadBalancer   10.105.113.148   172.25.8.12   443:31434/TCP   3m33s
##172.25.8.12

浏览器访问 https://172.25.8.12

在这里插入图片描述
自签名证书信任 点击 add exception
在这里插入图片描述
选择token登陆

获取token

[root@server2 dashboard]# kubectl -n kubernetes-dashboard get secrets 
[root@server2 dashboard]# kubectl describe secrets  kubernetes-dashboard-token-6kjx7 -n kubernetes-dashboard

在这里插入图片描述
在这里插入图片描述
登陆上去有很多警告
在这里插入图片描述
因为没有授权的原因

[root@server2 dashboard]# cat 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

执行rbac.yaml 清单

kubectl apply -f rbac.yaml 

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值