To install a third-party data store, your cluster must have access to the supported version of the data store image.
To see the compatible data store versions for your Instana deployment, install the kubectl plug-in and run the kubectl instana --version command. For more information, see the Instana kubectl plug-in topic.
Before you install an Instana component, make sure that you taint and label the node that is intended for the installation. This step dedicates the node exclusively to Instana components, making sure proper resource allocation and isolation.
Your setup must include a minimum of four worker nodes, each with 16 vCPUs and 64 GB of memory, and one additional worker node with 8 vCPUs and 16 GB of memory.
Label the first 4 worker nodes or nodes of your choice by using the kubectl commands.
CLUSTER_NAME=$(hostname|cut -d . -f 2-)
for NODE in 0 1 2 3
do
oc label node worker${NODE}.${CLUSTER_NAME} node-role.kubernetes.io/monitor="true"
oc adm taint node worker${NODE}.${CLUSTER_NAME} node.instana.io/monitor="true":NoSchedule
done
Make sure that the nodes are tainted and labelled.
Verify that the nodes are labeled correctly.
oc get nodes -l node-role.kubernetes.io/monitor=true
The output must be identical to the following example:
NAME STATUS ROLES AGE VERSION
worker0.instana-odf5.cp.fyre.ibm.com Ready monitor,worker 5d5h v1.29.6+aba1e8d
worker1.instana-odf5.cp.fyre.ibm.com Ready monitor,worker 5d5h v1.29.6+aba1e8d
worker2.instana-odf5.cp.fyre.ibm.com Ready monitor,worker 5d5h v1.29.6+aba1e8d
worker3.instana-odf5.cp.fyre.ibm.com Ready monitor,worker 5d5h v1.29.6+aba1e8d
Verify that the nodes are tainted correctly.
kubectl get nodes -o=jsonpath='{range .items[*]}{.metadata.name}{"\t"}{range .spec.taints[*]}{.key}{"="}{.value}{"\t"}{end}{"\n"}{end}' |grep monitor
Make sure that cert-managerFigure 2. Opens in a new tab or window
, which is used to automatically provision the secret by default, is installed in your cluster. To install cert-manager, run the following command:
Note: Skip this step if cert-manager is already installed in your cluster.
Make sure that you set a default storage class on the cluster on which you are installing the data stores. You need a storage class with ReadWriteMany (RWX) or ReadWriteOnce (RWO) access mode. Make sure that you update the storage class that you set in your cluster with RWX or RWO access.
To verify whether a default storage class is set in your cluster, run the following command:
kubectl get storageclass -o=jsonpath='{.items[?(@.metadata.annotations.storageclass\.kubernetes\.io\/is-default-class=="true")].metadata.name}'
If the command doesn't return a value, then you need to set a default storage class by running the following command:
If you are using your bastion host as the Instana host in your air-gapped environment, you do not need to complete the following steps. However, if your bastion host and the air-gapped host are different, complete these steps:
On your bastion host, download the Helm binary for the operating system of your air-gapped host. For the available binary files, see Installation and UpgradingFigure 3. Opens in a new tab or window
. See the following example command.