首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >如何在腾讯云的 TKE2 上安装 kube-state-metrics

如何在腾讯云的 TKE2 上安装 kube-state-metrics

原创
作者头像
大自然的疯
发布2025-08-06 11:41:20
发布2025-08-06 11:41:20
2630
举报

在腾讯云 TKE (Tencent Kubernetes Engine) 上安装 kube-state-metrics,您可以根据具体需求选择多种方式,从全自动化的托管服务到手动的自定义部署。本文将为您详细介绍几种主流的安装方法。

方法一:使用腾讯云容器服务 TKE 托管的 Prometheus 服务 (TMP)

对于追求便捷性和高度集成体验的用户,推荐使用腾讯云的 Prometheus 监控服务 (Tencent Managed Service for Prometheus, TMP)。在创建或关联 TKE 集群到 TMP 实例时,通常会自动为您部署包含 kube-state-metrics 在内的核心监控组件。

优势:

  • 一键开启:在关联集群时,TKE 会自动在您的集群中安装和配置包括 kube-state-metrics 在内的监控套件。
  • 免运维:腾讯云负责监控组件的维护和升级,您无需关心其运行状态。
  • 无缝集成:与腾讯云监控、Grafana 等产品无缝集成,方便地进行数据可视化和告警设置。
  • 国内镜像:自动使用腾讯云在国内的镜像仓库,无需担心镜像拉取失败的问题。

操作步骤:

  1. 创建或选择一个 Prometheus 监控实例 (TMP):kubectl get pods -n kube-system | grep kube-state-metrics * 您应该能看到类似 `tke-kube-state-metrics-xxxx` 的 Pod 处于 `Running` 状态。
  2. 关联 TKE 集群
    • 在 TMP 实例的管理页面,选择“集成容器服务”。
    • 点击“关联集群”,选择您需要监控的 TKE 集群。
    • 在关联过程中,TKE 会自动在目标集群中安装监控组件,其中就包含了 tke-kube-state-metrics
  3. 验证安装
    • 关联成功后,您可以通过 kubectl 命令查看相关 Pod 是否正常运行:

方法二:使用 Helm Chart 安装

如果您希望对 kube-state-metrics 的版本和配置有更多的控制权,或者您没有使用腾讯云的托管 Prometheus 服务,使用 Helm 是一个非常推荐的方式。社区维护的 kube-prometheus-stack chart 是一个包含了 Prometheus 和 kube-state-metrics 的流行选择。

前提条件:

  • 已在您的本地环境或集群中安装了 Helm
  • 您的 kubectl 已配置为指向您的 TKE 集群。

操作步骤:

  1. 添加 Helm 仓库:helm repo add prometheus-community https://prometheus-community.github.io/ helm-charts helm repo update
  2. 创建配置文件 (values.yaml)

由于默认的 Helm chart 可能使用 k8s.gcr.io 作为镜像仓库,在国内环境中可能会拉取失败。建议创建一个 values.yaml 文件,指定使用国内的镜像源。

创建一个名为 ksp-values.yaml 的文件,内容如下:

代码语言:yaml
复制
    kube-state-metrics:
      image:
        # 您可以从 Docker Hub 或其他国内镜像源查找可用的镜像
        # 例如:ccr.ccs.tencentyun.com/k8s-mirror/kube-state-metrics:v2.5.0
        # 请根据您需要的版本自行替换
        repository: ccr.ccs.tencentyun.com/k8s-mirror/kube-state-metrics
        tag: v2.5.0 # 请替换为您希望安装的版本
      
      # 如果您的集群有特殊的网络或安全配置,可能需要在此处添加 tolerations 或 nodeSelector
      
    # 如果您只需要安装 kube-state-metrics,可以禁用其他组件
    prometheus:
      enabled: false
    grafana:
      enabled: false
    alertmanager:
      enabled: false
    nodeExporter:
      enabled: false

注意: 请访问腾讯云容器镜像服务 (TCR) 或其他国内镜像仓库,查找一个可用的 kube-state-metrics 镜像地址和版本。

  1. 使用 Helm 安装:
代码语言:bash
复制
helm install kube-state-metrics prometheus-community/kube-prometheus-stack -f ksp-values.yaml --namespace monitoring --create-namespace

这里我们将所有资源安装在 monitoring 命名空间下。

  1. 验证安装:
代码语言:bash
复制
kubectl get pods -n monitoring

检查 kube-state-metrics-xxxx Pod 是否成功运行。

方法三:手动使用 kubectl 和 YAML 文件安装

这是一种最灵活但也是最繁琐的方式,您需要手动下载官方的 YAML 文件并进行修改和部署。

操作步骤:

  1. 下载官方 YAML 文件: 访问 kube-state-metrics 的官方 GitHub 仓库examples/standard 目录,下载部署所需的一系列 YAML 文件,通常包括:
  • cluster-role-binding.yaml
  • cluster-role.yaml
  • deployment.yaml
  • service-account.yaml
  • service.yaml
  1. 修改镜像地址: 打开 deployment.yaml 文件,找到 spec.template.spec.containers.image 字段,将其值从官方的 registry.k8s.io/kube-state-metrics/kube-state-metrics:vX.Y.Z 修改为一个国内可以访问的镜像地址。

修改前:

代码语言:yaml
复制
# image: registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.5.0

修改后 (示例):

代码语言:yaml
复制
image: ccr.ccs.tencentyun.com/k8s-mirror/kube-state-metrics:v2.5.0
  1. 部署到 TKE 集群: 将所有修改后的 YAML 文件放在一个目录下,然后使用 kubectl 应用这些配置:
代码语言:bash
复制
kubectl apply -f .

默认情况下,这会将 kube-state-metrics 安装在 kube-system 命名空间。

  1. 验证安装:
代码语言:bash
复制
kubectl get pods -n kube-system | grep kube-state-metrics

确认 Pod 启动并正常运行。您也可以通过其 Service 访问 metrics 端点来验证:

代码语言:bash
复制
# 获取 Service 名称
kubectl get svc -n kube-system | grep kube-state-metrics

# 在集群内部通过 curl 访问 (例如在一个临时的 Pod 中)
# curl <service-name>.<namespace>.svc.cluster.local:8080/metrics

总结

安装方式

优点

缺点

推荐场景

腾讯云托管 Prometheus (TMP)

简单、自动化、免运维、官方支持

配置灵活性较低

TKE 新用户,希望快速搭建监控系统,不希望过多关注细节。

Helm Chart

灵活、易于管理和升级、社区活跃

需要手动处理国内镜像问题

需要自定义配置或版本,有一定 Kubernetes 和 Helm 使用经验的用户。

手动 kubectl apply

完全控制所有配置细节

繁琐、易出错、升级困难

深度定制化需求,或在无法使用 Helm 的环境中。

对于大多数在腾讯云 TKE 上运行工作负载的用户,首选推荐使用腾讯云托管的 Prometheus 服务,因为它极大地简化了部署和运维的复杂度。如果需要更高的灵活性,Helm 是次优的绝佳选择

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 方法一:使用腾讯云容器服务 TKE 托管的 Prometheus 服务 (TMP)
  • 方法二:使用 Helm Chart 安装
  • 方法三:手动使用 kubectl 和 YAML 文件安装
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档