Kubernetes集群监控系统的部署

Kubernetes集群监控系统的部署


在k8s集群搭建完毕后,为了对集群中资源利用率进行了解并优化,需要对集群进行监控,因此需要部署监控系统。
Kubernetes监控系统架构主要由核心指标流水线和监控指标流水线协同组成。核心指标流水线由kubelet、资源评估器、metrics-server及API server提供的API群组组成,可用于为kubernetes系统提供核心指标从而能够了解其内部组件和核心程序。监控指标流水线用于从系统收集各种指标数据并提供给终端用户、存储系统及HPA控制器使用。
资源指标API主流的实现是metrics-server,自定义指标API以构建在监控系统Prometheus之上到k8s-prometheus-adapter使用最为广泛。

一、搭建Metrics Server

1.1 拉取metrics server组件并将其存放在metrics-server.yaml文件之中

wget --no-check-certificate https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.7/components.yaml -O metrics-server.yaml

若拉取成功,则显示如下:
在这里插入图片描述

1.2 将metrics server镜像pull下来

docker pull juestnow/metrics-server:v0.3.7

若pull成功,则显示如下:
在这里插入图片描述

1.3 修改metrics-server.yaml中的一些参数以用于后期部署

修改metrics-server.yaml文件,重要是修改了镜像名称和添加了一些启动命令。

vim metrics-server.yaml

修改部分:

image: juestnow/metrics-server:v0.3.7

添加部分:

          - --cert-dir=/tmp
          - --secure-port=4443
          - --metric-resolution=30s
          - --kubelet-insecure-tls
          - --kubelet-preferred-address-types=InternalIP,Hostname,InternalDNS,ExternalDNS,ExternalIP
          - --logtostderr

在这里插入图片描述

1.4 部署Metrics Server

kubectl create -f metrics-server.yaml

若部署成功,则如下显示:
在这里插入图片描述

1.5 查看metrics-server运行状态

因为metrics-server在k8s架构中也属于一个pod,故使用以下命令进行查看:

kubectl get pods --all-namespaces -o wide

若部署成功,则显示如下:
在这里插入图片描述
由图可见,metrics-server的状态由ContainerCreating变为了Running,可见metrics-server部署成功。此时我们便可以查看集群中node和pod对于集群资源的使用情况。

1.6 查看node和pod对于资源的占用情况

kubectl top node
kubectl top pods -A

此时可以看见:
在这里插入图片描述
在该图中,可以查看系统中的pod和node对于集群资源的占用情况。

二、部署Kubernetes Dashboard实现可视化

Kubernetes Dashboard是官方的一个基于WEB的用户界面,专门用来管理K8S集群,并展示集群的状态。部署成功可实现Metrics server可视化,便于之后的观察研究。

2.1 拉取dashboard配置文件

–no-check-certificate防止网站证书校验失败。

wget --no-check-certificate https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-rc5/aio/deploy/recommended.yaml

若拉取成功,显示如下:
在这里插入图片描述

2.2 对拉取的recommended进行配置

kubectl apply -f recommended.yaml

若配置成功,显示如下:
在这里插入图片描述

2.3 配置后发现启动有问题故删除现有的dashboard服务对yaml文件进行重新配置``

kubectl delete service kubernetes-dashboard --namespace=kubernetes-dashboard

删除成功显示如下:
在这里插入图片描述

2.4 配置yaml文件

需在yaml文件中新增一些参数项。

vim dashboard-svc.yaml

内容如下:

kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
spec:
  type: NodePort
  ports:
    - port: 443
      targetPort: 8443
  selector:
    k8s-app: kubernetes-dashboard

2.5 执行yaml文件,再次生成dashboard服务

kubectl apply -f dashboard-svc.yaml

若成功,显示如下:
在这里插入图片描述

2.6 查看服务是否生成

kubectl get svc --all-namespaces

若已经生成,显示如下:
在这里插入图片描述
记住dashboard的端口号32709,之后需要使用。

2.7 配置dashboard访问权限

修改dashboard-svc-account.yaml文件配置访问权限:

vim dashboard-svc-account.yaml

内容如下:

apiVersion: v1
kind: ServiceAccount
metadata:
  name: dashboard-admin
  namespace: kube-system
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: dashboard-admin
subjects:
  - kind: ServiceAccount
    name: dashboard-admin
    namespace: kube-system
roleRef:
  kind: ClusterRole
  name: cluster-admin
  apiGroup: rbac.authorization.k8s.io

2.8 执行yaml文件

kubectl apply -f dashboard-svc-account.yaml

若执行成功,则如下显示:
在这里插入图片描述

2.9 获取token(秘钥)便于dashboard后续访问

#获取token名称
kubectl get secret -n kube-system |grep admin|awk '{print $1}'
#获取token内容
kubectl describe secret dashboard-admin-token-m2b9z -n kube-system|grep '^token'|awk '{print $2}'

获取成功,则显示如下:
在这里插入图片描述
token为:

eyJhbGciOiJSUzI1NiIsImtpZCI6IkdMc040eEpOT3MwTkhRME55RXQ4ZHpDLWFoT0drOTJnTFd5TlpOb1NSd0UifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkYXNoYm9hcmQtYWRtaW4tdG9rZW4tbTJiOXoiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZGFzaGJvYXJkLWFkbWluIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiMDQ3MmI2YTktNWY3OC00OTJkLWFjNjctODNlMDdkYWY1MjhkIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmRhc2hib2FyZC1hZG1pbiJ9.oxSNBsI-RM-V8YuMadABOlaLtXhYZvvlNU4HzUEpZiWRYL6BFG97yoI2_uv6Z8bd7D6VgywbZsQqpFgA6ZfNQaiudgjO_V4arL5puQD0V5OO8TBqM9BXxUzMN_ksxUqEO4XcUIZ8i0NN3Mh2SHFc3CSQ2c895hP2AthLHSfSHcDHyJTbdWxJkw-B2JDwmwSWag5PotAwlP5rOBwJ2rYKQ6aoBwNRC45dQUxypY_u6B9plESaBRmaBqZHpBUvJWbg6blLIHYrLlO3-r6p2-FwpLSZaQX2Qpyo4PwjXeDbXGhhsGNxG94A9__oY1S9qN1LY7txgc16IYpHAnaKuBpD6g

2.10 查看dashboard被分配在哪个node

kubectl get pods --all-namespaces -o wide

在这里插入图片描述
由图可见dashboard被部署在node3上,则dashboard地址为:https://192.168.234.131:32709。

2.11 访问dashboard

按照地址进行访问:
在这里插入图片描述
dashboard面板:
在这里插入图片描述
查看总体资源利用情况:
在这里插入图片描述
进入到node中查看运行中的pod的资源利用情况:
在这里插入图片描述
至此,Kubernetes集群监控系统部署完毕。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值