我已经使用Kube spray设置了一个1.13版的Kubernetes集群。我们的etcd在K8s集群之外作为docker容器运行。如果我检查etcd证书,我可以看到每个etcd都有自己的ca、客户端证书和密钥。
如果我想抓取这些etcd conatiners for Prometheus的/metrics端点,应该使用哪些证书作为HTTPS端点?
发布于 2019-07-24 03:02:14
我还不确定,这是不是最安全的方式。但我拿到了其中一个etcd使用的ca.pem、证书和密钥。
我从这三个中创建了一个Kubernetes secret对象:
kubectl create secret generic etcd-metrics -n monitoring --from-file=etcd-secrets/然后,我将密码作为configmap添加到Prometheus config中,并在下面添加为我的擦除
targets:
- job_name: etcd
scrape_interval: 15s
scrape_timeout: 10s
metrics_path: /metrics
scheme: https
static_configs:
- targets:
- 172.xxxxx:2379
- 172.xxxxx:2379
- 172.xxxxx:2379
tls_config:
ca_file: /etc/ssl/etcd/ca.pem
cert_file: /etc/ssl/etcd/etcd-node.pem
key_file: /etc/ssl/etcd/etcd-key.pem
insecure_skip_verify: false发布于 2019-07-21 09:19:11
虽然不完全符合您的要求,但通过使用在监听etcd's prometheus port :9379的sidecar容器中运行的socat,我成功地将身份验证下推到了实际的机器上,然后您可以将prometheus指向http://${etcd_hostname}:9379/metrics,而不必处理这些指标端点的身份验证。
我面前没有socat调用,但类似于:
socat tc4-listen:9379,reuseaddr,fork \
openssl:127.0.0.1:2379,capath=/etc/kubernetes/pki/etcd/cacert.crt,key=/etc/kubernetes/pki/etcd/peer.key,cert=/etc/kubernetes/pki/etcd/peer.crthttps://stackoverflow.com/questions/57129368
复制相似问题