我正在尝试第一次将kubernetes应用于我的minikube集群。我在集群管理方面的经验有限,并且从未使用过Prometheus,因此我为菜鸟错误表示歉意。
我运行以下命令:
docker build -t my-prometheus .
docker run -p 9090:9090 my-prometheus
这是我的Yaml:
global:
scrape_interval: 15s
external_labels:
monitor: 'codelab-monitor'
scrape_configs:
- job_name: 'kubernetes-apiservers'
scheme: http
tls_config:
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
kubernetes_sd_configs:
- role: endpoints
- api_server: localhost:30000
我通过YAMLlint运行了此程序,并确认它是有效的。但是,当我运行第二个docker命令时,出现以下错误:
level=error ts=2018-09-18T21:49:34.365671918Z caller=main.go:617 err="error
loading config from \"/etc/prometheus/prometheus.yml\": couldn't load
configuration (--config.file=\"/etc/prometheus/prometheus.yml\"): parsing
YAML file /etc/prometheus/prometheus.yml: role missing (one of: pod,
service, endpoints, node)"
但是,您会看到我在- role: endpoints
中指定了kubernetes_sd_configs
。
有人可以帮我吗
答案 0 :(得分:2)
@media (max-width: 767.98px) {
.mx-w-100 {
max-width: 100% !important;
}
}
是配置列表,以YAML术语表示为块顺序。
现在,您的配置列表如下:
kubernetes_sd_configs
因此,您要定义两个配置,并且只有第一个具有角色。这就是为什么您得到错误。您很可能只想创建一个配置了- role: endpoints
- api_server: localhost:3000
和role
的配置。删除第二个api_server
,使-
属于第一个配置:
api_server