要将外部的 Kubernetes 集群接入 Prometheus 的 Kubernetes SD(Service Discovery)中,你可以按照以下步骤进行操作:
确保 Prometheus 部署在一个与目标集群不同的 Kubernetes 集群或环境中。
在 Prometheus 的配置文件
prometheus.yml中添加kubernetes_sd_configs部分,并指定外部集群的访问信息。示例如下:
scrape_configs:
- job_name: 'external-kubernetes'
kubernetes_sd_configs:
- api_server: 'https://external-cluster-api-server'
bearer_token_file: '/path/to/external-cluster-token-file'
tls_config:
ca_file: '/path/to/ca-certificate-file'
relabel_configs:
# 添加适当的标签和重命名配置
- source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
target_label: __address__
replacement: '${1}.${2}:${3}'
...
请确保替换示例中的相应字段:api_server、bearer_token_file 和 tls_config 字段。它们用于连接到外部集群的 API 服务器并进行身份验证。
- 将修改后的
prometheus.yml文件应用到 Prometheus 实例中。
这样,Prometheus 就会通过使用 Kubernetes SD 配置,从指定的外部 Kubernetes 集群获取目标服务和端点信息。你可以根据实际需求自定义相关配置和标签重命名规则。
注意:确保 Prometheus 实例能够访问外部集群的 API 服务器,并具有足够的权限进行查询。
内容由零声教学AI助手提供,问题来源于学员提问




