Get started with Kubernetes observability
However, if you're interested in gaining a more comprehensive view of your environment that includes aspects such as Application observability and user experience, you should consider a full Kubernetes observability approach, such as cloud native full stack or classic full stack.
This page provides instructions for deploying the Dynatrace Operator in host monitoring configuration to a Kubernetes cluster.
Before you begin
Before installing Dynatrace on your Kubernetes cluster, ensure that you meet the following requirements:
- Your
kubectl
CLI is connected to the Kubernetes cluster that you want to monitor. - You have sufficient privileges on the monitored cluster to run
kubectl
oroc
commands.
Cluster setup and configuration
You must allow egress for Dynatrace pods (default: Dynatrace namespace) to your Dynatrace environment or to your Environment ActiveGate
- For OpenShift Dedicated, you need the cluster-admin role.
- Helm installation Use Helm version 3.
Supported versions
See supported Kubernetes/OpenShift platform versions and distributions.
Installation options
Choose one of the installation methods that best suits your needs.
Manifest
-
Create a
dynatrace
namespace1kubectl create namespace dynatrace -
Install Dynatrace Operator
1kubectl apply -f https://github.com/Dynatrace/dynatrace-operator/releases/download/v0.14.0/kubernetes.yaml2kubectl apply -f https://github.com/Dynatrace/dynatrace-operator/releases/download/v0.14.0/kubernetes-csi.yamlWhenever the CSI driver is in use the host file-system is mounted readonly by OneAgent. If you don't want to use the CSI driver, the file-system needs to be mounted read-write by disabling the readonly-mode. For more information how to disable readonly-mode, see Read-only file systems support.
1kubectl apply -f https://github.com/Dynatrace/dynatrace-operator/releases/download/v0.14.0/kubernetes.yamlFor VMware Tanzu Kubernetes Grid Integrated Edition (formerly PKE), follow the steps below instead.
- Get
kubernetes-csi.yaml
from GitHub. - Adjust the YAML file by replacing the
/var/lib/kubelet/
path with/var/vcap/data/kubelet/
in all instances. Run the commands below.
1kubectl apply -f https://github.com/Dynatrace/dynatrace-operator/releases/download/v0.14.0/kubernetes.yaml2kubectl apply -f kubernetes-csi.yamlFor IBM Cloud Kubernetes Service (IKS), follow the steps below.
- Get
kubernetes-csi.yaml
from GitHub. - Adjust the YAML file by replacing the
/var/lib/kubelet/
path with/var/data/kubelet
in all instances. Run the commands below.
1kubectl apply -f https://github.com/Dynatrace/dynatrace-operator/releases/download/v0.11.0/kubernetes.yaml2kubectl apply -f kubernetes-csi.yamlRun the following command to see when Dynatrace Operator components finish initialization:
1kubectl -n dynatrace wait pod --for=condition=ready --selector=app.kubernetes.io/name=dynatrace-operator,app.kubernetes.io/component=webhook --timeout=300s - Get
-
Create secret for access token
Create a secret named
dynakube
for the Dynatrace Operator token obtained in Tokens and permissions required.1kubectl -n dynatrace create secret generic dynakube --from-literal="apiToken=<OPERATOR_TOKEN>" -
Apply the DynaKube custom resource
Download the DynaKube custom resource sample for host monitoring from GitHub. In addition, you can review the available parameters or how-to guides, and adapt the DynaKube custom resource according to your requirements.
Enable Infrastructure Monitoring mode in your DynaKube configuration if you want to reduce billed units.
1oneagent:2 hostMonitoring:3 args:4 - --set-monitoring-mode=infra-onlyRun the command below to apply the DynaKube custom resource, making sure to replace
<your-DynaKube-CR>
with your actual DynaKube custom resource file name. A validation webhook will provide helpful error messages if there's a problem.1kubectl apply -f <your-DynaKube-CR>.yaml -
optional Verify deployment
Verify that your DynaKube is running and all pods in your Dynatrace namespace are running and ready.
1> kubectl get dynakube -n dynatrace2NAME APIURL STATUS AGE3dynakube https://<ENVIRONMENTID>.live.dynatrace.com/api Running 45sIn a default DynaKube configuration with CSI driver, you should see the following pods:
1> kubectl get pods -n dynatrace2NAME READY STATUS RESTARTS AGE3dynakube-activegate-0 1/1 Running 0 50s4dynakube-oneagent-b88rn 1/1 Running 0 50s5dynakube-oneagent-m5jm4 1/1 Running 0 50s6dynakube-oneagent-qhd9u 1/1 Running 0 50s7dynatrace-oneagent-csi-driver-qxfwx 4/4 Running 0 2m49s8dynatrace-oneagent-csi-driver-xk5c4 4/4 Running 0 2m49s9dynatrace-oneagent-csi-driver-mz6ch 4/4 Running 0 2m49s10dynatrace-operator-7dc8dc7d8c-wmh4z 1/1 Running 0 2m59s11dynatrace-webhook-7bb6957fb5-l8fsq 1/1 Running 0 2m59s12dynatrace-webhook-7bb6957fb5-rqnqk 1/1 Running 0 2m59sAs OneAgent and CSI-driver are deployed as DaemonSet you should have a OneAgent and CSI-driver pod on each node.
Helm
Dynatrace Operator version 0.8.0+
-
Add the Dynatrace Helm repository
1helm repo add dynatrace \2https://raw.githubusercontent.com/Dynatrace/dynatrace-operator/main/config/helm/repos/stableNote that attempting to access the above URL will result in a 404 error page as it is only used internally by the Helm client.
-
Install Dynatrace Operator
You have two options:
Option 1: Install Dynatrace Operator using the default values:
1helm install dynatrace-operator dynatrace/dynatrace-operator \2 --set "installCRD=true" \3 --set "csidriver.enabled=true" \4 --atomic \5 --create-namespace --namespace dynatraceOption 2: For additional configuration to the Helm chart, edit the
values.yaml
sample from GitHub, then run the install command passing the YAML file as an argument:Whenever the CSI driver is in use the host file-system is mounted readonly by OneAgent. If you don't want to use the CSI driver, the file-system needs to be mounted read-write by disabling the readonly-mode. For more information how to disable readonly-mode, see Read-only file systems support.
1kubectl apply -f https://github.com/Dynatrace/dynatrace-operator/releases/download/v0.12.1/kubernetes.yamlFor VMware Tanzu Kubernetes Grid Integrated Edition (formerly PKE), you need to set the
csidriver.kubeletPath
value invalues.yaml
to/var/vcap/data/kubelet/
.1csidriver:2 enabled: true3 kubeletPath: "/var/vcap/data/kubelet"Dynatrace Operator version 0.9.0+
For IBM Cloud Kubernetes Service (IKS), you need to set the
csidriver.kubeletPath
value invalues.yaml
to/var/data/kubelet
.1csidriver:2 enabled: true3 kubeletPath: "/var/data/kubelet"1helm install dynatrace-operator dynatrace/dynatrace-operator \2 -f values.yaml \3 --atomic \4 --create-namespace --namespace dynatraceIf
installCRD
is set tofalse
, you need to create the custom resource definition manually before starting the Helm installation:1kubectl apply -f https://github.com/Dynatrace/dynatrace-operator/releases/download/v0.14.0/dynatrace-operator-crd.yaml -
Create secret for access token
Create a secret named
dynakube
for the Dynatrace Operator token obtained in Tokens and permissions required.1kubectl -n dynatrace create secret generic dynakube --from-literal="apiToken=<OPERATOR_TOKEN>" -
Apply the DynaKube custom resource
Download the DynaKube custom resource sample for host monitoring from GitHub. In addition, you can review the available parameters or how-to guides, and adapt the DynaKube custom resource according to your requirements.
Run the command below to apply the DynaKube custom resource, making sure to replace
<your-DynaKube-CR>
with your actual DynaKube custom resource file name. A validation webhook will provide helpful error messages if there's a problem.1kubectl apply -f <your-DynaKube-CR>.yaml -
optional Verify deployment
Verify that your DynaKube is running and all pods in your Dynatrace namespace are running and ready.
1> kubectl get dynakube -n dynatrace2NAME APIURL STATUS AGE3dynakube https://<ENVIRONMENTID>.live.dynatrace.com/api Running 45sIn a default DynaKube configuration with CSI driver, you should see the following pods:
1> kubectl get pods -n dynatrace2NAME READY STATUS RESTARTS AGE3dynakube-activegate-0 1/1 Running 0 50s4dynakube-oneagent-b88rn 1/1 Running 0 50s5dynakube-oneagent-m5jm4 1/1 Running 0 50s6dynakube-oneagent-qhd9u 1/1 Running 0 50s7dynatrace-oneagent-csi-driver-qxfwx 4/4 Running 0 2m49s8dynatrace-oneagent-csi-driver-xk5c4 4/4 Running 0 2m49s9dynatrace-oneagent-csi-driver-mz6ch 4/4 Running 0 2m49s10dynatrace-operator-7dc8dc7d8c-wmh4z 1/1 Running 0 2m59s11dynatrace-webhook-7bb6957fb5-l8fsq 1/1 Running 0 2m59s12dynatrace-webhook-7bb6957fb5-rqnqk 1/1 Running 0 2m59sAs OneAgent and CSI-driver are deployed as DaemonSet you should have a OneAgent and CSI-driver pod on each node.
Learn more
After you've successfully installed the Dynatrace Operator, you may find the following resources helpful for further learning and troubleshooting.
Get actionable answers
Start to analyze your Kubernetes clusters and containerized Apps with Dynatrace and benefit from actionable answers.
Guides
Learn how you can configure Dynatrace Operator to support specific use cases.
Troubleshooting
Troubleshoot any challenges you may encounter while working with the Dynatrace Operator and its various components.
How it works
Want to learn more about the Dynatrace components in your Kubernetes cluster?
Reference
API reference and configuration options for all Dynatrace components within your Kubernetes cluster.
Dynatrace Operator release notes
See release notes for Dynatrace Operator.
Update or uninstall
This page provides a detailed instructions on how to update and uninstall Dynatrace Operator.