My kubernetes node is tls configured. I am tring to use the metricset node, system, pod, container and volume which would be fetched from https://IP_k8s:10255. It gives me logs saying "error making http request: Get https://IP_k8s:10255/stats/summary: http: server gave HTTP response to HTTPS client"
Couuld you share the settings you are using for the module? I'm wondering if you put httpsin the hosts field
metricbeat.modules:
Node metrics, from kubelet:
- module: kubernetes
protocol: https
enabled: true
metricsets:- node
- system
- pod
- container
- volume
period: 10s
in_cluster: true
hosts: ["https://a.b.c.d:10255"]
ssl.certificate_authorities: ["ca.pem"]
ssl.certificate: "abc.pem"
ssl.key: "abc-key.pem"
I tried using it without https. It was connecting using http.
Uhm, it looks to me like the service doesn't provide HTTPS, you can use http instead, I think that should work.
You can test this by hand, using curl for instance:
$ curl http://ip_k8s:10255/stats/summary
and
$ curl https://ip_k8s:10255/stats/summary
Which one is correct?
curl command works with https://ip_k8s:10255/stats/summary
What's the output of curl in both cases?
That info comes from kube-state-metrics, you will need to launch this service in kubernetes: https://github.com/kubernetes/kube-state-metrics (check https://github.com/kubernetes/kube-state-metrics/tree/master/kubernetes)
then kube-state-metrics host dns should be available within the cluster, so you can use curl against it: curl http://kube-state-metrics:8080
Let me know how it goes
Hey Thanks!! I shall try this and let you know about it.
For now you may close the issue.
