Kubernetes integration release notes
Kubernetes integration release notes
- Added: Support for completely avoid querying Kube State Metrics. It's behind the
DISABLE_KUBE_STATE_METRICSenvironment variable and its default value is
false. Note that disabling this will imply missing metrics that are collected from KSM and possibly missing features in the Kubernetes Cluster Explorer. Please, refer to our official documentation on this configuration option for more information.
- Added: support for querying Kube State Metrics (KSM) instances behind kube-rbac-proxy. This feature only works when paired with the label-based KSM discovery (see release notes of version 1.11.0 for more information). This adds two new environment variables that allow deeper configuration of the feature:
KUBE_STATE_METRICS_SCHEME: Whether the query should use the
httpsprotocols. Defaults to
httpand doesn't introduce a breaking change in behavior.
KUBE_STATE_METRICS_PORT: The port in which the
kube-rbac-proxyinstance is listening on. You can confirm this by describing your KSM pod. Defaults to
8080and doesn't introduce a breaking change in behavior.
- Added: Added 4 new environment variables to explicitly set the control plane component base URLs. These variables can be used for Kubernetes configurations, such as OpenShift, that are different than the defaults defined in the section Discovery of master nodes and control plane components. See the section OpenShift 4.x Configuration for more information.
SCHEDULER_ENDPOINT_URL: The base URL of the scheduler pod metrics endpoint. The default is the empty string. In this case, the default configuration will be used.
ETCD_ENDPOINT_URL: The base URL of the ETCD pod metrics endpoint. The default is the empty string. In this case, the default configuration will be used.
CONTROLLER_MANAGER_ENDPOINT_URL: The base URL of the controller manager pod metrics endpoint. The default is the empty string. In this case, the default configuration will be used.
API_SERVER_ENDPOINT_URL: The base URL of the API server pod metrics endpoint. The default is the empty string. In this case, the default configuration will be used.
- Fixed: A bug preventing attributes named like
selector.<label_name>from being added to some entries in the
- Changed: The integration now uses newrelic/infrastructure-bundle as the base image. The tag used is for the version 1.2.0. For more information on this image please see the New Relic Infrastructure Bundle releases notes.
Added: samples for Statefulsets, Daemonsets, Endpoints and Services.
Added: API Server metrics can now be queried using the secure port. Configure the port using the
API_SERVER_SECURE_PORTenvironment variable. The ClusterRole has been updated to allow this query to happen.
Changed: The integration now uses the infrastructure agent v1.8.32-bundle. For more information, refer to the Infrastructure agent release notes between versions v1.8.23 and v1.8.32.
The bundle container contains a subset of On-host integrations that are supported by New Relic. This also includes the ability to "Auto Discover" services running on Kubernetes in a similar way to our Container auto-discovery
Changed: The integration has been renamed from
Follow standard procedures to install the New Relic integration for Kubernetes events.
Add custom attributes support. Custom attributes are added via environment variables of the form
Example: To add an attribute called
environmentwith a value of
stagingto all the events, you need to add the following environment variable to the spec of the
More detailed information can be found in the integration's documentation.
- Add retry with exponential back-off when sending events to the forwarder agent.
- Added: Control Plane components can now also be discovered using the
k8s-app. You can read more about this in the control plane monitoring section of the docs.
newrelic-infra-ctlbinary is now included as part of the image.
- Changed: The integration now uses the infrastructure agent v1.8.23. For more information refer to the infrastructure agent release notes between versions v1.5.75 and v1.8.23.
- Added: Control Plane Monitoring: from this release on the Kubernetes integration will automatically monitor your Control Plane, showing each component and their health status in the Kubernetes Cluster Explorer. Managed Kubernetes Clusters (GKE, EKS, AKS, DO, etc) are not supported, due to technical restrictions.
- Added: KSM can now be discovered using custom pod labels. By default we look for pods with the labels
app.kubernetes.io/namewith the value
If you want to use a custom label for the discovery, you should put the label name in the environment variable named
If more than 1 pod is found with the label, it will always choose the first one based on a sorted list of IP addresses.
# Label a specific KSM pod. Always set the value to the string "true". kubectl label pod kube-state-metrics newrelic-ksm=true
Update the newrelic-infrastructure-k8s manifest to use this labeled KSM pod:
env: - name: KUBE_STATE_METRICS_POD_LABEL value: newrelic-ksm
Changed: The integration reverts to the Infrastructure agent v1.5.31, because there were some issues, like clusters not showing in the New Relic One entity list UI, caused by use of agent version v1.5.51.
Added: Node labels are now retrieved from the Kubernetes API and added to the
K8sNodeSample. They can now be selected in the Narrow Down Entities section of the infrastructure alerts page to filter entities when using the
K8sNodeSample, and can also be used on any NRQL statement when querying the
FROM K8sNodeSample SELECT average(cpuUsedCoreMilliseconds) WHERE `label.kubernetes.io/role` = 'master'
By default, Information retrieved from the Kubernetes API is cached for 5 minutes. The cache time can be changed with the
API_SERVER_CACHE_TTL environment variable.
Changed: The integration now uses the Infrastructure Agent v1.5.51. For more information, please refer to the infrastructure agent release notes between versions v1.5.31 and v1.5.51.
- Changed: The integration now uses the Infrastructure Agent v1.5.31. The biggest changes were major improvements to logging and to the StorageSampler. For more information, please refer to the infrastructure agent release notes between versions v1.3.18 and v1.5.31.
- Fixed: The unprivileged version of Kubernetes integration was running as root after a restart of the container due to kubernetes/kubernetes#78308.
- Fixed: Autodiscovery cache directory permissions got changed from
744in order to let the
nri-agentuser write inside. This change was necessary to release an unprivileged version of the Kubernetes integration.
- Added: The integration reports the name of the cluster as Infrastructure inventory.
- Added: The integration reports a new event type
K8sClusterSample. At this moment, these events contain only the cluster name as an attribute.