k8s---Metrics-Server与Dashboard

Metrics-Server

Metrics-Server是集群核心监控数据的聚合器,用来替换之前的heapster。容器相关的 Metrics 主要来自于 kubelet 内置的 cAdvisor 服务,有了Metrics-Server之后,用户就可以通过标准的 Kubernetes API 来访问到这些监控数据。

Metrics Server 并不是 kube-apiserver 的一部分,而是通过 Aggregator 这种插件机制,在独立部署的情况下同 kube-apiserver 一起统一对外服务的。

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

资源地址:GitHub - kubernetes-sigs/metrics-server: Scalable and efficient source of container resource metrics for Kubernetes built-in autoscaling pipelines.

部署

mkdir metrics-server

cd metrics-server/

wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml     ##下载清单文件

vim components.yaml

133         - --secure-port=4443     ##修改端口
137         image: metrics-server/metrics-server:v0.5.1    ##使用本地仓库的镜像
148         - containerPort: 4443    ##修改端口

k8s---Metrics-Server与Dashboard_第1张图片

k8s---Metrics-Server与Dashboard_第2张图片

 kubectl apply -f  components.yaml     ##应用

此时查看pod,发现此pod并没有就绪

k8s---Metrics-Server与Dashboard_第3张图片

k8s---Metrics-Server与Dashboard_第4张图片

k8s---Metrics-Server与Dashboard_第5张图片

这是因为没有启用TLS Bootstrap 证书签发。

Metric Server 支持一个参数 --kubelet-insecure-tls,可以跳过这一检查,然而官方也明确说了,这种方式不推荐生产使用。所以我们在此启用TLS Bootstrap 证书签发即可。

vim /var/lib/kubelet/config.yaml

......
serverTLSBootstrap: true

systemctl  restart kubelet

以上两步操作所有node都需要执行

kubectl get csr

kubectl certificate approve

将每个 csr 的 都变为 approved,Issued,再次查看pod状态,已就绪。

部署完毕即可使用命令查看pod和node的资源使用情况

k8s---Metrics-Server与Dashboard_第6张图片

Dashboard

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

网址:GitHub - kubernetes/dashboard: General-purpose web UI for Kubernetes clusters

部署

mkdir dashboard

cd dashboard/

wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml    ##下载清单文件

vim recommended.yaml      ##把镜像改为本地路径

k8s---Metrics-Server与Dashboard_第7张图片

kubectl -n kubernetes-dashboard edit svc kubernetes-dashboard      ##更改svc类型为LoadBalancer,分配ip,供外部访问

k8s---Metrics-Server与Dashboard_第8张图片

vim rbac.yaml     ##对dashboard进行授权

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     ##应用

可以在对应的namespace看到运行情况

k8s---Metrics-Server与Dashboard_第9张图片

用浏览器访问:https://172.25.56.150

k8s---Metrics-Server与Dashboard_第10张图片

需要token来登陆

kubectl -n kubernetes-dashboard get secrets

kubectl -n kubernetes-dashboard describe secrets kubernetes-dashboard-token-5tm6l

k8s---Metrics-Server与Dashboard_第11张图片

将此token复制上去

k8s---Metrics-Server与Dashboard_第12张图片

即可使用可视化 wab 界面来进行管理与查看k8s集群

k8s---Metrics-Server与Dashboard_第13张图片


 

除了dashboard,还可以用k9s来实现图形化管理,这样更方便。

k8s---Metrics-Server与Dashboard_第14张图片

k8s---Metrics-Server与Dashboard_第15张图片

docker run --rm -it -v $KUBECONFIG:/root/.kube/config derailed/k9s

k8s---Metrics-Server与Dashboard_第16张图片

 

 

你可能感兴趣的:(kubernetes,容器,云原生)