k8s的监控

本文涉及的产品
可观测可视化 Grafana 版,10个用户账号 1个月
简介: k8s的监控

屏幕截图 2023-08-28 163846.png

一、 k8s的UI访问界面-dashboard

在dashboard中,虽然可以做到创建、删除、修改资源等操作,但通常情况下,我们会把它当做监控k8s集群的软件。

1、到GitHub主页上搜索"dashboard"即可。

//可以直接远程运行对应的yaml文件,不过,我们要看一看这个yaml文件内都有些什么内容,然后还需要将svc资源类型更改为NodePort的方式,所以这里我们可以先将这个yam文件下载到本地。

wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml

注:如果网站访问被拒绝,修改dns为114.114.114.114 (vim /etc/resolv.conf);

   或修改/etc/hosts添加域名解析条目,ip地址使用site.ip138.com解析得出。

//更改其SVC资源的类型。
...
spec:    #39行
  type: NodePort
  ports:
    - port: 443
      targetPort: 8443
  selector:
    k8s-app: kubernetes-dashboard
...
kubectl apply -f recommended.yaml
//通常,涉及到k8s的镜像,国内下载往往很慢,不过这个还好。运行过后,查看对应的SVC暴露端口,注意,这个是基于https的访问。
[root@master dashboard]# kubectl get svc -n kubernetes-dashboard 
NAME                        TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE
dashboard-metrics-scraper   ClusterIP   10.107.195.150           8000/TCP        54s
kubernetes-dashboard        NodePort    10.109.65.106            443:30990/TCP   55s
//此时可以看到,登录dashboard有两种方式,哪一种都可以。

基于token的方法登录dashboard

1、创建一个dashboard的管理用户。

kubectl create serviceaccount dashboard-admin -n kube-system

2、绑定用户为集群管理用户。

kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin

3、获取token.

//得到token的名称
kubectl get secrets -n kube-system | grep dashboard-admin  
dashboard-admin-token-jv77h   #自己写自己的
//查看上述得到的secret资源的详细信息,会得到token.
kubectl describe secrets -n kube-system dashboard-admin-token-jv77h

4、在浏览器上使用token登录。

PS: 如果是使用的旧版本的dashboard,使用谷歌浏览器登录,可能是不成功的,需要换成其他的浏览器,比如:火狐。

基于kubeconfig配置文件的方法登录dashboard

1、获取token.

//得到token的名称
kubectl get secrets -n kube-system | grep dashboard-admin  
dashboard-admin-token-jv77h  
//查看上述得到的secret资源的详细信息,会得到token.
kubectl describe secrets -n kube-system dashboard-admin-token-jv77h

2、生成kubeconfig配置文件。

//设置一个环境变量代表获取的token。
DASH_TOKEN=$(kubectl get secrets -n kube-system dashboard-admin-token-jv77h -o jsonpath={.data.token} | base64 -d)
//将k8s集群的配置信息写入kubeconfig配置文件中。
kubectl config set-cluster kubernetes --server=192.168.8.10:6443 --kubeconfig=/root/.dashboard-admin.conf
kubectl config set-credentials dashboard-admin --token=$DASH_TOKEN --kubeconfig=/root/.dashboard-admin.conf
kubectl config set-context dashboard-admin@kubernetes --cluster=kubernetes --user=dashboard-admin --kubeconfig=/root/.dashboard-admin.conf
kubectl config use-context dashboard-admin@kubernetes --kubeconfig=/root/.dashboard-admin.conf

4、从浏览器选择kubeconfig的登录方式,然后导入配置文件即可。

二、Scope

//可以直接运行此命令

kubectl apply -f "https://cloud.weave.works/k8s/scope.yaml?k8s-version=$(kubectl version | base64 | tr -d '\n')&k8s-service-type=NodePort"

如果访问不了网站,参考docker第十一章

三、Prometheus

PS: 在这里部署的prometheus,是使用的coreos提供的prometheus项目。

MetricsServer:是k8s集群资源使用情况的聚合器,收集数据给k8s集群内使用,如kubectl,hpa,scheduler等。

Prometheus Operator: 是一个系统检测和警报工具箱,用来存储监控数据。

Prometheus node-exporter:收集k8s集群资源的数据,指定告警规则。

Prometheus:收集apiserver,scheduler,controller-manager,kubelet组件的数据,通过http协议传输。

1、//克隆prometheus的项目地址到本地。

(打开github.com,搜索kube-prometheus,第一个项目prometheus-operator/kube-prometheus

找到对应版本)

git clone https://github.com/prometheus-operator/kube-prometheus.git

download zip

2、修改grafana-service.yaml文件,更改为nodePort的暴露方式,暴露端口为31001.

[root@master manifests]# pwd
/root/kube-prometheus-0.6.0/manifests
[root@master manifests]# vim grafana-service.yaml
spec:
  type: NodePort
  ports:
  - name: http
    port: 3000
    targetPort: http
    nodePort: 31001
  selector:

3、修改prometheus-service.yaml文件,更改为nodePort的暴露方式,暴露端口为31002.

[root@master manifests]# vim prometheus-service.yaml
...
spec:
  type: NodePort
  ports:
  - name: web
    port: 9090
    targetPort: web
    nodePort: 31002
...

4、修改alertmanager-service.yaml文件,更改为nodePort的暴露方式,暴露端口为31003.

[root@master manifests]# vim alertmanager-service.yaml
...
spec:
  type: NodePort
  ports:
  - name: web
    port: 9093
    targetPort: web
    nodePort: 31003
  selector:
...

5、将这个目录中的yaml文件,全部运行。是运行以上yaml文件的基础环境配置。有可能因为目录内yaml文件过多,一次不能全部运行,所以咋运行的时候,多运行两遍

cd /root/kube-prometheus-0.6.0/manifests

kubectl create -f setup/

6、运行主yaml文件。有可能因为目录内yaml文件过多,一次不能全部运行,所以运行的时候,多运行两遍

cd /root/kube-prometheus-0.6.0

kubectl create -f manifests/

7、浏览器访问grafana

用户名: admin

密码: admin

8、导入监控模板

https://grafana.com/grafana/dashboards/8588

------------------------------------------------------

kuboard:

   k8s图形化管理工具  

网站:https://kuboard.cn

安装:使用华为源

kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3-swr.yaml

查看部署情况:

kubectl get pod -n kuboard

部署后访问:

http://192.168.8.10:30080

添加k8s集群

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
7天前
|
存储 运维 Kubernetes
Kubernetes 集群的监控与维护策略
【4月更文挑战第23天】 在微服务架构日益盛行的当下,容器编排工具如 Kubernetes 成为了运维工作的重要环节。然而,随着集群规模的增长和复杂性的提升,如何确保 Kubernetes 集群的高效稳定运行成为了一大挑战。本文将深入探讨 Kubernetes 集群的监控要点、常见问题及解决方案,并提出一系列切实可行的维护策略,旨在帮助运维人员有效管理和维护 Kubernetes 环境,保障服务的持续可用性和性能优化。
|
2月前
|
Prometheus 监控 Kubernetes
如何用 Prometheus Operator 监控 K8s 集群外服务?
如何用 Prometheus Operator 监控 K8s 集群外服务?
|
2月前
|
存储 Kubernetes 监控
Kubecost | Kubernetes 开支监控和管理 🤑🤑🤑
Kubecost | Kubernetes 开支监控和管理 🤑🤑🤑
|
6月前
|
Prometheus 监控 Kubernetes
【K8S系列】深入解析K8S监控
【K8S系列】深入解析K8S监控
258 0
|
6月前
|
Prometheus Kubernetes 监控
prometheus operator监控k8s集群之外的haproxy组件
prometheus operator监控k8s集群之外的haproxy组件
|
4月前
|
Kubernetes 监控 容器
k8s学习-CKA真题-监控Pod日志
k8s学习-CKA真题-监控Pod日志
78 0
|
6月前
|
Prometheus 监控 Kubernetes
【云原生】k8s集群资源监控平台搭建—20230227
【云原生】k8s集群资源监控平台搭建—20230227
|
1月前
|
Prometheus 监控 Kubernetes
Kubernetes 集群监控与日志管理实践
【2月更文挑战第29天】 在微服务架构日益普及的当下,Kubernetes 已成为容器编排的事实标准。然而,随着集群规模的扩大和业务复杂度的提升,有效的监控和日志管理变得至关重要。本文将探讨构建高效 Kubernetes 集群监控系统的策略,以及实施日志聚合和分析的最佳实践。通过引入如 Prometheus 和 Fluentd 等开源工具,我们旨在为运维专家提供一套完整的解决方案,以保障系统的稳定性和可靠性。
|
2月前
|
Prometheus 监控 Kubernetes
监控 Kubernetes 集群证书过期时间的三种方案
监控 Kubernetes 集群证书过期时间的三种方案
|
17天前
|
Kubernetes 监控 API
Kubernetes指标监控metrics-server
Kubernetes指标监控metrics-server
22 0
Kubernetes指标监控metrics-server

推荐镜像

更多