K8s--资源监控

一、Metrics-Server部署

Metrics-Server是集群核心监控数据的聚合器,用来替换之前的heapster。
容器相关的 Metrics 主要来自于 kubelet 内置的 cAdvisor 服务,有了Metrics-Server之后,用户就可以通过标准的 Kubernetes API 来访问到这些监控数据。
Metrics API 只可以查询当前的度量数据,并不保存历史数据。
Metrics API URI 为 /apis/metrics.k8s.io/,在 k8s.io/metrics 维护。
必须部署 metrics-server 才能使用该 API,metrics-server 通过调用 Kubelet Summary API 获取数据。

1.获取相关资源

wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml  %下载部署文件

docker pull bitnami/metrics-server:0.4.2    %拉取相关镜像
docker push reg.westos.org/library/metrics-server:0.4.2  %上传镜像到私有仓库中(在这之前要对镜像做tag)

修改yaml文件中的镜像路径为metrics-server:0.4.2   %默认在私有仓库的library项目下查找

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

2.解决报错问题

应用部署文件之后,查看pod状态会发现处于未就绪状态,这种情况下是不生效的:
在这里插入图片描述
通过logs查看问题原因:

kubectl logs -n kube-system metrics-server-xxxxxxx

在这里插入图片描述
上述报错信息是未通过证书检查所导致的,查看官方文档解决这个问题:

启用TLS Bootstrap 证书签发
vim /var/lib/kubelet/config.yaml  %所有节点的这个文件都要修改并重启kubelet服务
...
serverTLSBootstrap: true     %跳过证书检查
systemctl  restart kubelet   %重启kubelet服务
kubectl certificate approve 证书名称  %签发证书

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

3.检测部署是否成功

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

4.测试效果

可以看到node、pod的cpu和内存负载情况
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、Dashboard部署

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

1.下载部署文件、拉取相关镜像

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-rc5/aio/deploy/recommended.yaml

镜像:
kubernetesui/dashboard:v2.2.0
kubernetesui/metrics-scraper:v1.0.6

上传镜像到私有仓库,此时路径需要对应,可以在私有仓库中创建kubernetesui项目,然后把这两个镜像放到该项目下,或者更改yaml文件中的镜像路径

2.应用部署文件并修改为NodePort方式,以便外部访问

kubectl apply -f recommended.yaml     %应用部署文件
kubectl -n kubernetes-dashboard describe svc kubernetes-dashboard   %查看其创建的svc的详细信息

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

 kubectl -n kubernetes-dashboard edit svc kubernetes-dashboard   %更改为NodePort方式
 kubectl -n kubernetes-dashboard get svc    %查看是否已经更改

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

3.生成Token并使用该token登陆

kubectl -n kubernetes-dashboard get secrets  %查看secrets名字
NAME                               TYPE                                  DATA   AGE
default-token-h95lm                kubernetes.io/service-account-token   3      10m
kubernetes-dashboard-certs         Opaque                                0      10m
kubernetes-dashboard-csrf          Opaque                                1      10m
kubernetes-dashboard-key-holder    Opaque                                2      10m
kubernetes-dashboard-token-kcw7s   kubernetes.io/service-account-token   3      10m

kubectl describe secrets  kubernetes-dashboard-token-kcw7s -n kubernetes-dashboard  %查看具体token
kubectl -n kubernetes-dashboard describe secrets kubernetes-dashboard-token-xxxx  %查看token的另外一种方法

kubectl get svc -n kubernetes-dashboard    %查看端口映射
NAME                        TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE
dashboard-metrics-scraper   ClusterIP   10.111.253.105   <none>        8000/TCP        4m31s
kubernetes-dashboard        NodePort    10.110.193.162   <none>        443:32427/TCP   4m31s

访问的时候要https方式访问ip加暴露出来的端口号:
在这里插入图片描述

4.默认dashboard对集群没有操作权限,需要做相关授权

vim rbac.yaml:      %编辑rbac.yaml文件做RBAC授权
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  
kubectl apply -f rbac.yaml    %应用部署文件

未作授权之前的显示页面:有大量警告
在这里插入图片描述
授权后可对集群内的资源进行查看并管理:
在这里插入图片描述
在这里插入图片描述
可以查看已创建pod的yaml文件并编辑,来达到创建或更新Pod的目的:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/nk298120/article/details/115238069