Cloudability’s Metrics Agent runs within a k8s cluster and uses the in-tree cAdvisor component to gather usage metrics for cost allocation capabilities.
As of the 1.15 release, the k8s community began deprecating the JSON endpoints used by cAdvisor to collect usage metrics from nodes across a cluster. With the k8s 1.18 release, these endpoints are now turned off by default.
What you need to do
For users who deploy a self-managed k8s 1.18 cluster, these endpoints must be manually enabled in each node's kubelet. Once enabled, the Metrics Agent will operate normally. Note that none of the Cloud Service Providers currently support k8s 1.18 in their managed offerings.
Enabling the cAdvisor JSON endpoints is accomplished by setting the following flag on the kubelet:
For more information on how to specify kubelet flags, see kubelet.
Note: You will need to configure the kubelet on each node in the k8s cluster to turn on the cAdvisor endpoints.
Impact on Metrics Agent
Once the kubelet flag is enabled on each k8s node in the cluster, there should be no impact on the behavior of the Metrics Agent. The Metrics Agent will continue to gather resource usage metrics and the information displayed in the Cloudability UI and through our API should be unaffected.
What if you have a problem?
We do not anticipate any issues with enabling these cAdvisor flags. However, if you don’t enable this flag for every k8s cluster node, you may see errors in the Metrics Agent log file and your cost allocation may no longer report entirely accurate results.
Apptio Engineering is developing a next generation metrics-agent that will work in the absence of cAdvisor. It plans to release the Metrics Agent prior to the Cloud Service Providers rolling out 1.18 support.
If you have any questions, please contact your Account Manager or Apptio Support.