通过Kubernetes (K8s) 查看Node资源的方式主要包括:kubectl命令、Kubernetes仪表盘、Prometheus和Grafana、Node Exporter。 其中,kubectl命令 是最常用且方便的方式,因为它直接与K8s API 服务器进行交互,可以实时获取节点的详细资源信息。通过kubectl命令,你可以查看到节点的CPU、内存、磁盘、Pod等资源的使用情况和分配情况。下面我将详细介绍这些方法。
一、KUBECTL命令
使用kubectl命令行工具是查看K8s节点资源最直接和常用的方法。以下是一些常用的命令:
-
查看节点列表:使用
kubectl get nodes
命令可以列出所有节点及其基本信息。输出包括节点名称、状态、角色、版本等。kubectl get nodes
-
查看节点详细信息:使用
kubectl describe node <node-name>
命令,可以获取指定节点的详细信息,包括资源分配、容量、条件、系统信息等。kubectl describe node <node-name>
-
查看节点资源使用情况:使用
kubectl top nodes
命令,可以查看各节点的CPU和内存使用情况。kubectl top nodes
kubectl top 命令需要Metrics Server的支持,确保已安装并配置好Metrics Server。
-
查看节点容量和可用资源:查看每个节点的资源容量和可用资源可以使用
kubectl get nodes -o json
命令,并结合jq工具进行解析。kubectl get nodes -o json | jq '.items[] | {name: .metadata.name, capacity: .status.capacity, allocatable: .status.allocatable}'
二、KUBERNETES仪表盘
Kubernetes仪表盘是一个基于Web的用户界面,允许你管理Kubernetes集群和应用程序。它提供了查看节点资源的图形化方式。
-
安装仪表盘:首先,你需要安装Kubernetes仪表盘,可以通过如下命令进行安装:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml
-
访问仪表盘:通过Proxy方式访问仪表盘:
kubectl proxy
然后在浏览器中打开
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
-
查看节点资源:登录仪表盘后,导航到“Nodes”页面,可以看到集群中所有节点的资源使用情况,包括CPU、内存、磁盘等。
三、PROMETHEUS和GRAFANA
Prometheus和Grafana是开源的监控和可视化工具,它们可以帮助你实时监控K8s节点资源。
-
安装Prometheus和Grafana:你可以使用Helm Chart进行安装:
helm install prometheus stable/prometheus
helm install grafana stable/grafana
-
配置数据源:在Grafana中配置Prometheus作为数据源。
-
创建仪表盘:在Grafana中创建新的仪表盘,添加Prometheus查询来显示节点的资源使用情况。以下是一些Prometheus查询示例:
-
CPU使用情况:
sum(rate(container_cpu_usage_seconds_total{job="kubelet", image!="", container_name!="POD"}[5m])) by (instance)
-
内存使用情况:
sum(container_memory_usage_bytes{job="kubelet", image!=""}) by (instance)
-
磁盘使用情况:
sum(container_fs_usage_bytes{job="kubelet", image!=""}) by (instance)
-
-
查看仪表盘:配置完成后,你可以通过Grafana仪表盘实时查看K8s节点的资源使用情况。
四、NODE EXPORTER
Node Exporter是Prometheus的一个组件,用于暴露节点级别的硬件和操作系统指标。
-
安装Node Exporter:你可以通过DaemonSet的方式在K8s集群中安装Node Exporter:
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: node-exporter
namespace: monitoring
spec:
selector:
matchLabels:
name: node-exporter
template:
metadata:
labels:
name: node-exporter
spec:
containers:
- name: node-exporter
image: prom/node-exporter:latest
ports:
- containerPort: 9100
hostPort: 9100
resources:
limits:
memory: 200Mi
requests:
cpu: 100m
memory: 100Mi
-
配置Prometheus抓取数据:在Prometheus的配置文件中添加Node Exporter的抓取配置:
scrape_configs:
- job_name: 'node-exporter'
static_configs:
- targets: ['<node-ip>:9100']
-
查看节点资源:通过Prometheus查询Node Exporter暴露的指标,并在Grafana中展示。例如:
-
CPU使用情况:
rate(node_cpu_seconds_total{mode!="idle"}[5m])
-
内存使用情况:
node_memory_MemAvailable_bytes
-
磁盘使用情况:
node_filesystem_avail_bytes
-
通过上述方法,你可以全面、实时地监控K8s节点的资源使用情况,确保集群的高效和稳定运行。
相关问答FAQs:
如何查看 Kubernetes 节点的资源使用情况?
在 Kubernetes (K8s) 中,节点是集群的基础组成部分,了解节点的资源使用情况对于确保集群的健康和性能至关重要。要查看节点的资源使用情况,您可以使用以下几种方法:
-
使用
kubectl
命令查看节点信息Kubernetes 提供了
kubectl
命令行工具来与集群进行交互。要查看所有节点的资源使用情况,可以使用以下命令:kubectl top nodes
这个命令会显示节点的 CPU 和内存使用情况,包括每个节点的当前资源使用率。这有助于您识别哪些节点可能处于资源紧张状态。请注意,
kubectl top
需要安装metrics-server
插件,如果未安装,您需要先部署它。 -
查看节点详细信息
如果您需要更详细的信息,例如节点的资源限制和请求情况,可以使用以下命令:
kubectl describe node <node-name>
替换
<node-name>
为您要查询的节点的名称。这会显示有关节点的详细信息,包括节点的容量、分配情况、条件以及各个 Pod 的资源请求和限制。 -
利用 Kubernetes 仪表盘
Kubernetes 仪表盘是一个基于 web 的用户界面,允许您查看集群的资源使用情况。通过仪表盘,您可以直观地查看每个节点的 CPU 和内存使用情况。首先,您需要在集群中安装仪表盘,然后通过浏览器访问仪表盘的地址来查看节点信息。
如何使用 Prometheus 监控 Kubernetes 节点资源?
Prometheus 是一个强大的监控工具,可以用来收集和查询 Kubernetes 集群的各种指标,包括节点的资源使用情况。以下是使用 Prometheus 监控 Kubernetes 节点资源的步骤:
-
安装 Prometheus
如果您还没有安装 Prometheus,可以通过 Helm Charts 或 Kubernetes 清单文件进行安装。Prometheus 的安装通常包括部署 Prometheus 服务器和配置服务发现以自动发现集群中的节点。
-
配置 Prometheus 监控 Kubernetes 节点
确保您的 Prometheus 配置文件包含用于监控节点的相关指标。您可能需要在
prometheus.yml
中添加适当的 scrape 配置,以确保 Prometheus 能够抓取节点的资源使用数据。 -
查询节点资源使用情况
在 Prometheus 的 web 界面中,您可以编写 PromQL 查询来获取节点的资源使用情况。例如,您可以使用如下查询来获取所有节点的 CPU 使用情况:
rate(container_cpu_usage_seconds_total[5m])
这种查询能够帮助您跟踪每个节点的 CPU 使用率,发现潜在的性能瓶颈。Prometheus 还提供了许多其他强大的查询功能,帮助您深入了解节点的资源使用情况。
如何在 Grafana 中可视化 Kubernetes 节点资源?
Grafana 是一个流行的开源数据可视化工具,常与 Prometheus 一起使用来可视化 Kubernetes 集群的指标数据。以下是将 Grafana 与 Prometheus 配合使用来可视化节点资源的步骤:
-
安装 Grafana
如果您尚未安装 Grafana,可以使用 Helm Charts 或 Kubernetes 清单文件进行部署。Grafana 的安装和配置相对简单,通常只需几步即可完成。
-
配置 Grafana 连接 Prometheus
在 Grafana 的 web 界面中,您需要添加 Prometheus 作为数据源。前往
Configuration
->Data Sources
,选择 Prometheus 并输入 Prometheus 服务器的地址。 -
创建仪表板
创建新的仪表板并添加面板,选择 Prometheus 作为数据源。然后,您可以使用 PromQL 查询语言创建图表,展示节点的资源使用情况。例如,您可以创建一个图表显示 CPU 和内存的使用情况,帮助您实时监控集群健康状况。
-
使用现有的仪表板模板
Grafana 提供了许多现成的仪表板模板,专门用于 Kubernetes 监控。您可以从 Grafana 的仪表板库中导入这些模板,快速启动并查看节点资源的可视化信息。
关于 GitLab 的更多内容,可以查看官网文档:
官网地址: https://gitlab.cn
文档地址: https://docs.gitlab.cn
论坛地址: https://forum.gitlab.cn
原创文章,作者:极小狐,如若转载,请注明出处:https://devops.gitlab.cn/archives/49499