K8s-Infra is a set of observability components that help you monitor and gain insights into your Kubernetes clusters. This guide will walk you through the steps to deploy K8s-Infra using the official Helm Chart provided by SigNoz. By following these instructions, you'll be able to collect metrics, logs, and traces from your Kubernetes workloads and send them to your SigNoz backend for analysis.
To add the SigNoz Helm repository to your helm client, run the following command:
helm repo add signoz https://charts.signoz.io
If the chart is already present, update the chart to the latest version:
helm repo update
Based on how you are running SigNoz (e.g. SigNoz Cloud, in an independent VM or Kubernetes cluster), you have to provide the address to send data from the above receivers.
For generic Kubernetes clusters, you can use the following configuration:
override-values.yaml
global:
cloud: others
clusterName: <CLUSTER_NAME>
deploymentEnvironment: <DEPLOYMENT_ENVIRONMENT>
otelCollectorEndpoint: ingest.{region}.signoz.cloud:443
otelInsecure: false
signozApiKey: <SIGNOZ_INGESTION_KEY>
presets:
otlpExporter:
enabled: true
loggingExporter:
enabled: false
For AWS Elastic Kubernetes Service (EKS), you can use the following configuration:
override-values.yaml
global:
cloud: aws
clusterName: <CLUSTER_NAME>
deploymentEnvironment: <DEPLOYMENT_ENVIRONMENT>
otelCollectorEndpoint: ingest.{region}.signoz.cloud:443
otelInsecure: false
signozApiKey: <SIGNOZ_INGESTION_KEY>
presets:
otlpExporter:
enabled: true
loggingExporter:
enabled: false
resourceDetection:
detectors:
- eks
- system
For Google Kubernetes Engine (GKE) Standard, you can use the following configuration:
override-values.yaml
global:
cloud: gcp
clusterName: <CLUSTER_NAME>
deploymentEnvironment: <DEPLOYMENT_ENVIRONMENT>
otelCollectorEndpoint: ingest.{region}.signoz.cloud:443
otelInsecure: false
signozApiKey: <SIGNOZ_INGESTION_KEY>
presets:
otlpExporter:
enabled: true
loggingExporter:
enabled: false
resourceDetection:
detectors:
- gcp
- system
For Google Kubernetes Engine (GKE) Autopilot, you can use the following configuration:
override-values.yaml
global:
cloud: gcp/autogke
clusterName: <CLUSTER_NAME>
deploymentEnvironment: <DEPLOYMENT_ENVIRONMENT>
otelCollectorEndpoint: ingest.{region}.signoz.cloud:443
otelInsecure: false
signozApiKey: <SIGNOZ_INGESTION_KEY>
presets:
kubeletMetrics:
authType: none
endpoint: ${K8S_NODE_NAME}:10255
otlpExporter:
enabled: true
loggingExporter:
enabled: false
resourceDetection:
detectors:
- gcp
- system
For Azure Kubernetes Service (AKS), you can use the following configuration:
override-values.yaml
global:
cloud: aks
clusterName: <CLUSTER_NAME>
deploymentEnvironment: <DEPLOYMENT_ENVIRONMENT>
otelCollectorEndpoint: ingest.{region}.signoz.cloud:443
otelInsecure: false
signozApiKey: <SIGNOZ_INGESTION_KEY>
presets:
otlpExporter:
enabled: true
loggingExporter:
enabled: false
resourceDetection:
detectors:
- azure
- system
For Kubernetes clusters with Windows hosts, you can use the following configuration:
override-values.yaml
global:
cloud: aws
clusterName: <CLUSTER_NAME>
deploymentEnvironment: <DEPLOYMENT_ENVIRONMENT>
otelCollectorEndpoint: ingest.{region}.signoz.cloud:443
otelInsecure: false
signozApiKey: <SIGNOZ_INGESTION_KEY>
presets:
otlpExporter:
enabled: true
loggingExporter:
enabled: false
resourceDetection:
detectors:
- eks
- system
hostMetrics:
# Root path configuration is only required for Linux environments.
# On Windows, this must be set to empty string to prevent installation failures.
root_path: ""
otelAgent:
# Use Windows-compatible OpenTelemetry Collector Contrib images for Windows hosts
image:
tag: 0.123.0-windows-2022-amd64
otelDeployment:
# Use Windows-compatible OpenTelemetry Collector Contrib images for Windows hosts
image:
tag: 0.123.0-windows-2022-amd64
Depending on the choice of your region for SigNoz cloud, the ingestion endpoint will vary according to this table.
Region | Endpoint |
---|---|
US | ingest.us.signoz.cloud:443 |
IN | ingest.in.signoz.cloud:443 |
EU | ingest.eu.signoz.cloud:443 |
- Replace
<SIGNOZ_INGESTION_KEY>
with the one provided by SigNoz. - Replace
<CLUSTER_NAME>
with the name of the Kubernetes cluster or a unique identifier of the cluster. - Replace
<DEPLOYMENT_ENVIRONMENT>
with the deployment environment of your application. Example: "staging", "production", etc.
For generic Kubernetes clusters, you can use the following configuration:
override-values.yaml
global:
cloud: others
clusterName: <CLUSTER_NAME>
deploymentEnvironment: <DEPLOYMENT_ENVIRONMENT>
otelCollectorEndpoint: <IP-or-Endpoint-of-SigNoz-OtelCollector>:4317
otelInsecure: true
presets:
otlpExporter:
enabled: true
loggingExporter:
enabled: false
For AWS Elastic Kubernetes Service (EKS), you can use the following configuration:
override-values.yaml
global:
cloud: aws
clusterName: <CLUSTER_NAME>
deploymentEnvironment: <DEPLOYMENT_ENVIRONMENT>
otelCollectorEndpoint: <IP-or-Endpoint-of-SigNoz-OtelCollector>:4317
otelInsecure: true
presets:
otlpExporter:
enabled: true
loggingExporter:
enabled: false
resourceDetection:
detectors:
- eks
- system
For Google Kubernetes Engine (GKE) Standard, you can use the following configuration:
override-values.yaml
global:
cloud: gcp
clusterName: <CLUSTER_NAME>
deploymentEnvironment: <DEPLOYMENT_ENVIRONMENT>
otelCollectorEndpoint: <IP-or-Endpoint-of-SigNoz-OtelCollector>:4317
otelInsecure: true
presets:
otlpExporter:
enabled: true
loggingExporter:
enabled: false
resourceDetection:
detectors:
- gcp
- system
For Google Kubernetes Engine (GKE) Autopilot, you can use the following configuration:
override-values.yaml
global:
cloud: gcp/autogke
clusterName: <CLUSTER_NAME>
deploymentEnvironment: <DEPLOYMENT_ENVIRONMENT>
otelCollectorEndpoint: <IP-or-Endpoint-of-SigNoz-OtelCollector>:4317
otelInsecure: true
presets:
otlpExporter:
enabled: true
loggingExporter:
enabled: false
kubeletMetrics:
authType: none
endpoint: ${K8S_NODE_NAME}:10255
resourceDetection:
detectors:
- gcp
- system
For Kubernetes clusters with Windows hosts, you can use the following configuration:
override-values.yaml
global:
cloud: aks
clusterName: <CLUSTER_NAME>
deploymentEnvironment: <DEPLOYMENT_ENVIRONMENT>
otelCollectorEndpoint: <IP-or-Endpoint-of-SigNoz-OtelCollector>:4317
otelInsecure: true
presets:
otlpExporter:
enabled: true
loggingExporter:
enabled: false
resourceDetection:
detectors:
- azure
- system
hostMetrics:
# Root path configuration is only required for Linux environments.
# On Windows, this must be set to empty string to prevent installation failures.
root_path: ""
otelAgent:
# Use Windows-compatible OpenTelemetry Collector Contrib images for Windows hosts
image:
tag: 0.123.0-windows-2022-amd64
otelDeployment:
# Use Windows-compatible OpenTelemetry Collector Contrib images for Windows hosts
image:
tag: 0.123.0-windows-2022-amd64
For Azure Kubernetes Service (AKS), you can use the following configuration:
override-values.yaml
global:
cloud: aks
clusterName: <CLUSTER_NAME>
deploymentEnvironment: <DEPLOYMENT_ENVIRONMENT>
otelCollectorEndpoint: <IP-or-Endpoint-of-SigNoz-OtelCollector>:4317
otelInsecure: true
presets:
otlpExporter:
enabled: true
loggingExporter:
enabled: false
resourceDetection:
detectors:
- azure
- system
- Replace
<CLUSTER_NAME>
with the name of the Kubernetes cluster or a unique identifier of the cluster. - Replace
<DEPLOYMENT_ENVIRONMENT>
with the deployment environment of your application. Example: "staging", "production", etc. - If the OtelCollector endpoint is secured, you would have to disable
otelInsecure
configuration and often make other changes such as including either config or path to the TLS certificate and private key.
To install the k8s-infra
chart with the above configuration, run the following command:
helm install my-release signoz/k8s-infra -f override-values.yaml