返回

用 Metrics Server 对 Kubernetes 集群资源进行监控

开发工具

Metrics Server 是一个在 Kubernetes 集群中运行的组件,它负责收集和聚合来自各个节点和 Pod 的资源使用指标。这些指标可以通过 Prometheus 等监控工具进行查询和可视化。通过使用 Metrics Server,您可以监控集群中各种资源的使用情况,包括 CPU、内存、存储和网络等。这对于确保集群的稳定性和性能至关重要。

在本文中,我们将引导您逐步在 Kubernetes 集群中部署 Metrics Server。我们将介绍如何安装和配置 Metrics Server,以及如何使用 Prometheus 和 Grafana 来可视化集群资源使用情况。

1. 安装 Metrics Server

首先,您需要在 Kubernetes 集群中安装 Metrics Server。您可以通过以下命令来安装 Metrics Server:

kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/manifests/metrics-server.yaml

等待几分钟,直到 Metrics Server 安装完成。您可以通过以下命令来检查 Metrics Server 是否已经安装成功:

kubectl get pods -n kube-system | grep metrics-server

如果 Metrics Server 已经安装成功,您应该会看到类似以下的输出:

NAME                                 READY   STATUS    RESTARTS   AGE
metrics-server-758c67777f-kqpsp   1/1     Running   0          7m47s

2. 配置 Metrics Server

接下来,您需要配置 Metrics Server。您可以通过编辑 /etc/metrics-server/config.yaml 文件来配置 Metrics Server。在该文件中,您可以设置以下选项:

  • kubelet-preferred-address-types: 用于从 kubelet 获取指标的地址类型。
  • kubelet-insecure-port: kubelet 的不安全端口。
  • kubelet-port: kubelet 的安全端口。

例如,以下配置将 Metrics Server 配置为使用 kubelet 的不安全端口 10255:

kubelet-insecure-port: 10255

您也可以通过设置 --kubelet-preferred-address-types 标志来配置 Metrics Server 使用特定类型的地址。例如,以下标志将 Metrics Server 配置为仅使用 kubelet 的 NodeIP 地址:

--kubelet-preferred-address-types=NodeIP

3. 安装 Prometheus

接下来,您需要在 Kubernetes 集群中安装 Prometheus。Prometheus 是一个开源的监控工具,它可以收集和存储来自各种来源的指标。您可以通过以下命令来安装 Prometheus:

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm install prometheus prometheus-community/prometheus

等待几分钟,直到 Prometheus 安装完成。您可以通过以下命令来检查 Prometheus 是否已经安装成功:

kubectl get pods -n prometheus | grep prometheus

如果 Prometheus 已经安装成功,您应该会看到类似以下的输出:

NAME                                 READY   STATUS    RESTARTS   AGE
prometheus-prometheus-0              1/1     Running   0          8m41s

4. 配置 Prometheus

接下来,您需要配置 Prometheus。您可以通过编辑 /etc/prometheus/prometheus.yml 文件来配置 Prometheus。在该文件中,您可以设置以下选项:

  • global: 全局配置,包括刮削间隔、超时等。
  • scrape_configs: 刮削配置,包括要刮削的目标、刮削间隔等。

例如,以下配置将 Prometheus 配置为每 5 分钟刮削一次 Metrics Server:

global:
  scrape_interval: 5m

scrape_configs:
  - job_name: 'metrics-server'
    kubernetes_sd_configs:
    - role: endpoints
      namespaces:
        - kube-system
    relabel_configs:
      - source_labels: [__meta_kubernetes_pod_node_name]
        target_label: node
      - target_label: __address__
        replacement: metrics-server:8080

5. 安装 Grafana

接下来,您需要在 Kubernetes 集群中安装 Grafana。Grafana 是一个开源的可视化工具,它可以将 Prometheus 收集的指标可视化。您可以通过以下命令来安装 Grafana:

helm repo add grafana https://grafana.github.io/helm-charts
helm repo update
helm install grafana grafana/grafana

等待几分钟,直到 Grafana 安装完成。您可以通过以下命令来检查 Grafana 是否已经安装成功:

kubectl get pods -n grafana | grep grafana

如果 Grafana 已经安装成功,您应该会看到类似以下的输出:

NAME                                 READY   STATUS    RESTARTS   AGE
grafana-57d6d9688d-h7qqm            1/1     Running   0          6m30s

6. 配置 Grafana

接下来,您需要配置 Grafana。您可以通过编辑 /etc/grafana/grafana.ini 文件来配置 Grafana。在该文件中,您可以设置以下选项:

  • server: 服务器配置,包括监听地址、端口等。
  • auth: 认证配置,包括用户名、密码等。
  • datasources: 数据源配置,包括数据源名称、类型、URL 等。

例如,以下配置将 Grafana 配置为使用 Prometheus 作为数据源:

[server]
listen_address = 0.0.0.0
port = 3000

[auth]
enabled = false

[datasources]
default = Prometheus
Prometheus = http://prometheus-server:9090

7. 访问 Grafana

现在,您可以通过以下 URL 访问 Grafana:

http://<your-grafana-server-address>

您应该会看到 Grafana 的登录页面。使用您在 /etc/grafana/grafana.ini 文件中配置的用户名和密码登录。

登录后,您应该会看到 Grafana 的仪表板页面。您可以单击仪表板页面上的“添加面板”按钮来添加新的仪表板。在“添加面板”对话框中,您可以选择要显示的指标和可视化类型。

例如,您可以选择显示集群中所有节点的 CPU 使用情况。您也可以选择将 CPU 使用情况可视化为折线图或饼图。

添加仪表板后,您可以单击仪表板页面上的“保存”按钮来保存仪表板。您还可以单击仪表板页面上的“共享”按钮来与其他用户共享仪表板。