k8spacket — are your TLS connections inside the cluster still secure?

Don’t you know the k8spacket tool yet? Check this article.

How long ago did you check if TLS communications in the cluster were secure? You have TLS, so you are secured — is this information good enough for you? Do you know when and where your services or third-party libraries establish TLS communication inside and outside the cluster?


k8spacket has a new feature that helps you understand and monitor the phase of establishing secure connections. New metrics show which workloads establish TLS connections and what kind of version and cipher suites they use. There isn’t a better option to understand the TLS versions and why the cipher suite is so significant for encryption than visit and read how HTTPS works comics. To go deeply about cipher suites, see this article.

In short words:

  • A TLS version tells about the freshness of secure protocol. It’s better secured and less vulnerable in the recent version.
  • A cipher suite contains ciphers used to establish a secure connection and encrypt transmitted data.

In the Kubernetes cluster, there is a lot of secure connection established, not always designed by you, f.e.

  • monitoring stack to external webhook, like slack or opsgenie
  • third-party libraries to external partners, like getting secrets from Key Management Service
  • any statistics sent through tools installed in the cluster like Grafana(see here)
  • incoming traffic from the Internet

k8spacket can pick TLS connections inside the K8S cluster, decode TLS parameters, and show them in the Grafana. There are two dashboards available about it currently:

  • with Prometheus time-series metrics — get information about called the domain and use TLS version and cipher suite
  • with a table-oriented panel to show more details about the server certificate chain and client-supported TLS versions
  • IP, name, and namespace of TLS client workload
  • destination name, IP, domain, and port of the TLS server
  • supported TLS versions and cipher suites by the client
  • chosen TLS version and cipher suite by the server


To install k8spacket, you need to have Helm and Grafana installed. Additionally, the tls-parser extension requires a JSON API plugin.

See all installation steps here.

Additional note

Since version 1.0.0 of k8spacket, the architecture has changed to pluggable. Now, you can write custom extensions with respect an interface of plugin-api and apply them through the helm configuration values file


If you want to check TLS connection parameters used by the clients in the Kubernetes cluster written by you or uses by a third-party library, try the k8spacket tls-parser plugin.

Find the source code at github.com/k8spacket



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store