Using the BeeInstana Kubernetes Operator
BeeInstana is a metric database to perform more complex metric queries. Some functionality within Instana depends on BeeInstana to store metric data.
Self-hosted Instana environments on Kubernetes can be configured to use BeeInstana on Kubernetes as described in the Run and configure BeeInstana via Operator topic.
- Prerequisites
- Architecture
- Sizing BeeInstana on Kubernetes
- Deploying the BeeInstana Kubernetes Operator
- Updating the BeeInstana Kubernetes Operator
- Deploying the BeeInstana instance on Kubernetes
- BeeInstana configuration options
- Determining the file system group ID on Red Hat OpenShift
- Removing the BeeInstana instance and the BeeInstana Kubernetes Operator
Prerequisites
Before you deploy BeeInstana, you need to set up data stores as high-performing and distributed data store cluster. For more information, see Using third-party Kubernetes Operators.
For an offline (air-gapped) installation, complete steps 1, 2, 6 and 7 of the Preparing for an offline (air-gapped) installation section in the Using third-party Kubernetes Operators topic.
Architecture
BeeInstana has four components:
- Kubernetes Operator: The Kubernetes Operator handles deploying, updating, and resizing the BeeInstana instance as configured.
- Configuration service: The configuration service provides the cluster information to the aggregators and the ingestors.
- Ingestor: The ingestor uses the metric data from a Kafka topic, processes it, and sends it to the appropriate aggregator.
- Aggregator: The aggregator writes the metric data to the disk and processes the queries that are made for the stored data.
Sizing BeeInstana on Kubernetes
The amount of resources that is needed for the BeeInstana instance is based on the number of metrics that need to be stored. If this number is not known in advance, then use the following method as an initial rough estimate:
number_of_metrics = number_of_instana_agents * 60 * 15
Where 60 is an estimated number of entities that each agent monitors, and 15 is an estimate for the number of metrics per entity. These numbers vary greatly depending on the agent and type of entity, so it might not be accurate in many environments.
A minimal configuration contains the following resources, which can store up to 250,000 metrics with one ingestor replica and one aggregator shard:
Component | CPU (cores) | RAM (GiB) | Volume Size (TiB) | Replication |
---|---|---|---|---|
Ingestor | 4 | 3 | None | 1 replica |
Aggregator | 4 | 16 | 1 | 1 shard |
To support between 250,000 and 750,000 metrics, keep the same resource level per replica and shard, but configure two or three replicas and shards. More replicas provide extra resiliency. For 750,000 metrics, use this configuration:
Component | CPU (cores) | RAM (GiB) | Volume Size (TiB) | Replication |
---|---|---|---|---|
Ingestor | 4 | 3 | None | 3 replicas |
Aggregator | 4 | 16 | 1 | 3 shards |
To support between 750,000 metrics and 9,000,000 metrics, increase the resources in the three replicas and shards up to this level:
Component | CPU (cores) | RAM (GiB) | Volume Size (TiB) | Replication |
---|---|---|---|---|
Ingestor | 16 | 12 | None | 3 replicas |
Aggregator | 16 | 128 | 5 | 3 shards |
Beyond 9,000,000 metrics, increase the number of replicas and shards as needed. The number of ingestor replicas does not need to be the same as the number of aggregator shards. You might need to increase either one more quickly than the other based on the following considerations:
Ingestor replicas can be added or removed as needed. You can increase the number of aggregator shards; you must not decrease it.
After BeeInstana is running, some key indicators show whether BeeInstana is sized correctly for the environment, or if you must resize BeeInstana.
For the ingestor, take the following items into consideration:
- CPU: Add more CPU cores or increase the number of replicas if the average CPU load exceeds 50%. The remaining CPU might be needed to account for spikes in the incoming metric rate.
- Memory: The memory usage is consistent normally around 30% or lower. The remaining memory is needed as a buffer when aggregators are offline while they are being updated.
For the aggregator, take the following items into consideration:
- Memory: The amount of memory must be double the amount of the resident set size (RSS), otherwise BeeInstana query performance and stability decline.
- Emergency flushes: An aggregator starts an emergency flush when available memory is low. If this occurs regularly, aggregators require more memory or more shards. You can monitor emergency flushes on a custom dashboard with the
Aggregator.AggregatorHouseKeeping.EmergencyFlush.sum
metric. Use RSS to measure aggregator memory usage because other measurements might be inaccurate if the file system cache uses memory. - File system: If the number of metrics remains constant, then the aggregator volume size will be steady after 13 months, which is the maximum retention time of metrics in BeeInstana.
- CPU: Add more CPU cores if the other resources are at expected levels but CPU usage regularly exceeds 50% when no queries are running. The remaining CPU might be needed for user-driven queries.
High availability: The aggregator can have more than one shard, where multiple shards increase the metric capacity of BeeInstana. However, each shard can also have a mirror, which contains an identical copy of the metric data. This redundancy provides high availability for BeeInstana because all data is still available when a mirror in a shard fails. When the aggregator is updated, one of the mirrors is always active to avoid downtime during an upgrade. Unless the resource cost of aggregator mirrors is unacceptable, set the number of mirrors to 2.
Deploying the BeeInstana Kubernetes Operator
The BeeInstana Kubernetes Operator is provided as a Helm chart.
To get the Helm chart and deploy the BeeInstana Kubernetes Operator, complete the following steps:
Installing the BeeInstana Kubernetes Operator offline (air-gapped)
Complete these steps to install the operator offline:
-
Mirror the BeeInstana Operator images in the image registry (bastion host).
- amd64
docker pull --platform linux/amd64 artifact-public.instana.io/beeinstana/operator:v1.61.0 docker pull --platform linux/amd64 artifact-public.instana.io/beeinstana/aggregator:v1.85.36-release docker pull --platform linux/amd64 artifact-public.instana.io/beeinstana/monconfig:v2.19.0 docker pull --platform linux/amd64 artifact-public.instana.io/beeinstana/ingestor:v1.85.36-release docker tag artifact-public.instana.io/beeinstana/operator:v1.61.0 <internal-image-registry>/beeinstana/operator:v1.61.0 docker tag artifact-public.instana.io/beeinstana/aggregator:v1.85.36-release <internal-image-registry>/beeinstana/aggregator:v1.85.36-release docker tag artifact-public.instana.io/beeinstana/monconfig:v2.19.0 <internal-image-registry>/beeinstana/monconfig:v2.19.0 docker tag artifact-public.instana.io/beeinstana/ingestor:v1.85.36-release <internal-image-registry>/beeinstana/ingestor:v1.85.36-release docker push <internal-image-registry>/beeinstana/operator:v1.61.0 docker push <internal-image-registry>/beeinstana/aggregator:v1.85.36-release docker push <internal-image-registry>/beeinstana/monconfig:v2.19.0 docker push <internal-image-registry>/beeinstana/ingestor:v1.85.36-release
- arm64
docker pull --platform linux/arm64 artifact-public.instana.io/beeinstana/operator:v1.61.0 docker pull --platform linux/arm64 artifact-public.instana.io/beeinstana/aggregator:v1.85.36-release docker pull --platform linux/arm64 artifact-public.instana.io/beeinstana/monconfig:v2.19.0 docker pull --platform linux/arm64 artifact-public.instana.io/beeinstana/ingestor:v1.85.36-release docker tag artifact-public.instana.io/beeinstana/operator:v1.61.0 <internal-image-registry>/beeinstana/operator:v1.61.0 docker tag artifact-public.instana.io/beeinstana/aggregator:v1.85.36-release <internal-image-registry>/beeinstana/aggregator:v1.85.36-release docker tag artifact-public.instana.io/beeinstana/monconfig:v2.19.0 <internal-image-registry>/beeinstana/monconfig:v2.19.0 docker tag artifact-public.instana.io/beeinstana/ingestor:v1.85.36-release <internal-image-registry>/beeinstana/ingestor:v1.85.36-release docker push <internal-image-registry>/beeinstana/operator:v1.61.0 docker push <internal-image-registry>/beeinstana/aggregator:v1.85.36-release docker push <internal-image-registry>/beeinstana/monconfig:v2.19.0 docker push <internal-image-registry>/beeinstana/ingestor:v1.85.36-release
- Power
docker pull --platform linux/ppc64le artifact-public.instana.io/beeinstana/operator:v1.58.0 docker pull artifact-public.instana.io/beeinstana/aggregator:v1.164.0-release-linux-ppc64le docker pull --platform linux/ppc64le artifact-public.instana.io/beeinstana/monconfig:v2.19.0 docker pull artifact-public.instana.io/beeinstana/ingestor:v1.164.0-release-linux-ppc64le docker tag artifact-public.instana.io/beeinstana/operator:v1.58.0 <internal-image-registry>/beeinstana/operator:v1.58.0 docker tag artifact-public.instana.io/beeinstana/aggregator:v1.164.0-release-linux-ppc64le <internal-image-registry>/beeinstana/aggregator:v1.164.0-release-linux-ppc64le docker tag artifact-public.instana.io/beeinstana/monconfig:v2.19.0 <internal-image-registry>/beeinstana/monconfig:v2.19.0 docker tag artifact-public.instana.io/beeinstana/ingestor:v1.164.0-release-linux-ppc64le <internal-image-registry>/beeinstana/ingestor:v1.164.0-release-linux-ppc64le docker push <internal-image-registry>/beeinstana/operator:v1.58.0 docker push <internal-image-registry>/beeinstana/aggregator:v1.164.0-release-linux-ppc64le docker push <internal-image-registry>/beeinstana/monconfig:v2.19.0 docker push <internal-image-registry>/beeinstana/ingestor:v1.164.0-release-linux-ppc64le
- amd64
-
On the Kubernetes cluster, create a namespace to deploy the BeeInstana instance.
kubectl create namespace beeinstana
-
Create an image pull secret for the internal registry (
<internal-image-registry>
). If the registry has a username and password, replace the<username>
and<password>
variables with the username and password of the internal registry.kubectl create secret docker-registry instana-registry --namespace=beeinstana --docker-server=<internal-image-registry> --docker-username=<username> --docker-password=<password>
-
Pull the required operators. The command returns a
.gzip
file.helm pull instana/beeinstana-operator
-
Use the gzip file that you got from the previous step to install the BeeInstana Operator. Run the command that is applicable to your cluster.
-
For a standard Kubernetes cluster, run the following command:
helm install beeinstana-operator ./beeinstana-operator-v1.61.0.tgz --namespace=beeinstana --set image.registry=<internal-image-registry>
-
For a Red Hat OpenShift cluster, run the following command:
helm install beeinstana-operator ./beeinstana-operator-v1.61.0.tgz --namespace=beeinstana --set operator.securityContext.seccompProfile.type=RuntimeDefault --set image.registry=<internal-image-registry>
-
-
Retrieve the pods that are created in the
beeinstana
namespace.kubectl get pod --namespace=beeinstana
From the command output, verify that a BeeInstana Kubernetes Operator pod is present and running. See the following example:
beeinstana-beeinstana-operator-569999cbfc-5ftf8 1/1 Running 0 1m
Installing the BeeInstana Kubernetes Operator online
Complete these steps to install the operator online:
-
On the host that is used to access the Kubernetes cluster, add the Instana Helm repository. Use the Instana agent key that was provided to you as the
<agent_key>
value.helm repo add beeinstana https://helm.instana.io/artifactory/rel-helm-customer-virtual --username _ --password <agent_key>
-
On the Kubernetes cluster, create a namespace to deploy the BeeInstana instance by using the following command:
kubectl create namespace beeinstana
-
Create an image pull secret in the created namespace by using the following command, and replace the
agent_key
in the command with the Instana agent key that was provided to you:kubectl create secret docker-registry instana-registry --namespace=beeinstana --docker-server=artifact-public.instana.io --docker-username _ --docker-password=<agent_key>
-
Inspect the Kubernetes resources before they are deployed by using the following command:
helm template beeinstana/beeinstana-operator --name-template=beeinstana --namespace=beeinstana
-
Perform one of the following steps:
-
For a standard Kubernetes cluster, deploy the BeeInstana Kubernetes Operator into the created namespace by using the following command:
helm install beeinstana beeinstana/beeinstana-operator --namespace=beeinstana
-
For a Red Hat OpenShift cluster, deploy the BeeInstana Kubernetes Operator into the created namespace by using the following command:
helm install beeinstana beeinstana/beeinstana-operator --namespace=beeinstana --set operator.securityContext.seccompProfile.type=RuntimeDefault
-
-
Retrieve the pods in the created namespace by using the following command:
kubectl get pod --namespace=beeinstana
From the command output, verify that a BeeInstana Kubernetes Operator pod is present and running. See the following example:
beeinstana-beeinstana-operator-569999cbfc-5ftf8 1/1 Running 0 1m
Updating the BeeInstana Kubernetes Operator
To update the BeeInstana Kubernetes Operator after it is installed as described in the Deploying the BeeInstana Kubernetes Operator section, complete the following steps:
-
Retrieve updates from the Instana Helm repository that is added in step 1 of the Deploying the BeeInstana Kubernetes Operator section by using the following command:
helm repo update instana
-
Perform one of the following steps:
-
For a standard Kubernetes cluster, update the BeeInstana Kubernetes Operator by using the following command:
helm upgrade beeinstana instana/beeinstana-operator --namespace=beeinstana
-
For a Red Hat OpenShift cluster, update the BeeInstana Kubernetes Operator by using the following command:
helm upgrade beeinstana instana/beeinstana-operator --namespace=beeinstana --set operator.securityContext.seccompProfile.type=RuntimeDefault
-
-
Retrieve the pods in the namespace where BeeInstana is deployed by using the following command:
kubectl get pod --namespace=beeinstana
-
Validate that one BeeInstana Kubernetes Operator pod is present and running. See the following example:
beeinstana-beeinstana-operator-569999cbfc-5ftf8 1/1 Running 0 1m
Updating the BeeInstana Kubernetes Operator does not change the version of BeeInstana that is deployed. The version of BeeInstana that is deployed is configured by setting spec.version
as described in the BeeInstana configuration options section.
Deploying the BeeInstana instance on Kubernetes
After you deploy the BeeInstana Kubernetes Operator, you can deploy the BeeInstana instance on Kubernetes. Create a file to store the configuration of BeeInstana. Save this configuration file, and use this file to update the BeeInstana instance in the future.
You can start with the following BeeInstana configuration:
-
amd64 and arm64 (offline)
apiVersion: beeinstana.instana.com/v1beta1 kind: BeeInstana metadata: name: instance namespace: beeinstana spec: version: 1.3.13 imageRegistry: <internal-image-registry> adminCredentials: secretName: beeinstana-admin-creds kafkaSettings: brokers: # Update KAFKA_NAMESPACE to the namespace where Kafka is installed - instana-kafka-bootstrap.<KAFKA_NAMESPACE>:9092 securityProtocol: SASL_PLAINTEXT saslMechanism: SCRAM-SHA-512 saslPasswordCredential: secretName: beeinstana-kafka-creds config: cpu: 200m memory: 200Mi replicas: 1 image: name: beeinstana/monconfig tag: v2.19.0 ingestor: cpu: 8 memory: 4Gi limitMemory: true env: on-prem metricsTopic: raw_metrics replicas: 1 image: name: beeinstana/ingestor tag: v1.85.36-release aggregator: cpu: 4 memory: 16Gi limitMemory: true mirrors: 2 shards: 1 volumes: live: size: 2000Gi # Replace <storage_class> with your own storage class in the following line. storageClass: <storage_class> image: name: beeinstana/aggregator tag: v1.85.36-release useMultiArchImages: true
-
amd64 and arm64 (online)
apiVersion: beeinstana.instana.com/v1beta1 kind: BeeInstana metadata: name: instance namespace: beeinstana spec: version: 1.3.13 adminCredentials: secretName: beeinstana-admin-creds kafkaSettings: brokers: # Update KAFKA_NAMESPACE to the namespace where Kafka is installed - instana-kafka-bootstrap.<KAFKA_NAMESPACE>:9092 securityProtocol: SASL_PLAINTEXT saslMechanism: SCRAM-SHA-512 saslPasswordCredential: secretName: beeinstana-kafka-creds config: cpu: 200m memory: 200Mi replicas: 1 ingestor: cpu: 8 memory: 4Gi limitMemory: true env: on-prem metricsTopic: raw_metrics replicas: 1 aggregator: cpu: 4 memory: 16Gi limitMemory: true mirrors: 2 shards: 1 volumes: live: size: 2000Gi # Replace <storage_class> with your own storage class in the following line. storageClass: <storage_class> # Should set useMultiArchImages to true for s390x and ppc64le useMultiArchImages: false
-
For IBM Z or LinuxONE:
apiVersion: beeinstana.instana.com/v1beta1 kind: BeeInstana metadata: name: instance namespace: beeinstana spec: version: 1.4.0 adminCredentials: secretName: beeinstana-admin-creds kafkaSettings: brokers: # Update KAFKA_NAMESPACE to the namespace where Kafka is installed - instana-kafka-bootstrap.<KAFKA_NAMESPACE>:9092 securityProtocol: SASL_PLAINTEXT saslMechanism: SCRAM-SHA-512 saslPasswordCredential: secretName: beeinstana-kafka-creds config: cpu: 200m memory: 200Mi replicas: 1 ingestor: cpu: 8 memory: 4Gi limitMemory: true env: on-prem metricsTopic: raw_metrics replicas: 1 aggregator: cpu: 4 memory: 16Gi limitMemory: true mirrors: 2 shards: 1 volumes: live: size: 2000Gi # Replace <storage_class> with your own storage class in the following line. storageClass: <storage_class> # Should set useMultiArchImages to true for s390x and ppc64le useMultiArchImages: true
-
Power (online)
apiVersion: beeinstana.instana.com/v1beta1 kind: BeeInstana metadata: name: instance namespace: beeinstana spec: version: 1.4.0 kafkaSettings: brokers: # Update KAFKA_NAMESPACE to the namespace where Kafka is installed - instana-kafka-bootstrap.<KAFKA_NAMESPACE>:9092 config: cpu: 200m memory: 200Mi replicas: 1 ingestor: cpu: 8 memory: 4Gi limitMemory: true env: on-prem metricsTopic: raw_metrics replicas: 1 image: name: beeinstana/ingestor registry: artifact-public.instana.io tag: v1.164.0-release-linux-ppc64le aggregator: cpu: 4 memory: 16Gi limitMemory: true mirrors: 2 shards: 1 image: name: beeinstana/aggregator registry: artifact-public.instana.io tag: v1.164.0-release-linux-ppc64le volumes: live: size: 2000Gi # Replace <storage_class> with your own storage class in the following line. storageClass: <storage_class> # Should set useMultiArchImages to true for s390x and ppc64le useMultiArchImages: true
Change the configuration as necessary. For more information, see the BeeInstana configuration options section.
Add the following configuration to the BeeInstana spec for the aggregator
pods to run:
spec:
fsGroup: <GROUP_ID>
seccompProfile:
type: RuntimeDefault
The file system group ID must be set as described in the Determining the file system group ID on Red Hat OpenShift section.
To easily obtain the group ID, run the following command:
oc get namespace beeinstana -o jsonpath='{.metadata.annotations.openshift\.io\/sa\.scc\.uid-range}' | cut -d/ -f 1
To deploy the BeeInstana instance with the configuration file that was created, complete the following steps:
-
Generate a random password for the BeeInstana admin credentials secret by using the following command:
PASSWORD=$(base64 < /dev/urandom | head -c32); echo "Password: $PASSWORD";
-
Store this password safely in your
config.yaml
file as follows:datastoreConfigs: ... beeInstanaConfig: user: beeinstana-user password: <USER_GENERATED_PASSWORD> ...
-
Create a secret that contains the username and password for connecting to Kafka by running the following command:
kubectl create secret generic beeinstana-kafka-creds -n beeinstana \ --from-literal=username=strimzi-kafka-user \ --from-literal=password=<RETRIEVED_PASSWORD>
Replace <RETRIEVED_PASSWORD> with the password that you obtained when Kafka was deployed on your cluster. For more information, see Creating a SASL/SCRAM user in Kafka.
-
Create a secret that contains the username and password for connecting to BeeInstana by running the following command:
kubectl create secret generic beeinstana-admin-creds -n beeinstana \ --from-literal=username=beeinstana-user \ --from-literal=password=<USER_GENERATED_PASSWORD>
-
Apply the configuration to the same namespace where the BeeInstana Kubernetes Operator is deployed. Replace
</path/to/configuration/file.yaml>
with the path to the configuration file that you created earlier.kubectl apply -f </path/to/configuration/file.yaml> --namespace beeinstana
-
Wait for the BeeInstana Kubernetes Operator to deploy BeeInstana. To validate the installation, check the pod status.
kubectl get pods --namespace beeinstana
Validate that pods for all of the components are running. See the following example:
NAME READY STATUS RESTARTS AGE aggregator-0-0 1/1 Running 0 2m aggregator-0-1 1/1 Running 0 75s beeinstana-beeinstana-operator-79c8fd74c8-vchh6 1/1 Running 0 169m config-546999994-rfvnc 1/1 Running 0 31m ingestor-9c569cbf9-ncrzs 1/1 Running 0 39s
-
Check the deployment. Save the command output in a YAML format and verify the configuration in the YAML file.
kubectl get beeinstana instance --namespace beeinstana -o yaml
If the deployment status is successful, the
status.reconciledAt
property is a recent timestamp within the past minute, thestatus.version
property is the configured version, and thestatus.canBeReconciled
property istrue
. See the following example:... status: ... canBeReconciled: true reconciledAt: "2023-03-30T22:47:08Z" version: 1.1.5
Then, you need to configure Instana to use the deployed BeeInstana instance. For more information, see the Run and configure BeeInstana via Operator topic.
To change an existing BeeInstana instance, modify the configuration file that was saved in the beginning of this section, and repeat steps 2 through 4.
BeeInstana configuration options
You can customize the values of the following keys in the configuration file that is used for deploying the BeeInstana instance on Kubernetes:
Many of the following keys are related to sizing. For more information about how to determine an appropriate value for a key, see the Sizing section.
Key | Value Type | Description |
---|---|---|
spec.version |
string | Determines the version of the BeeInstana instance to be deployed. |
spec.fsGroup |
integer | Determines the file system group set for persistent volumes. On a Red Hat OpenShift cluster, the value must be set as described in the Determining the file system group ID on Red Hat OpenShift section. Otherwise, leave the value unset. |
spec.seccompProfile.type |
string | Determines the seccomp profile type that is used. On a Red Hat OpenShift cluster, the value must be set to RuntimeDefault . |
spec.adminCredentials.secretName |
string | The name of a Kubernetes secret that contains the username and password data fields, which is used to connect to BeeInstana. |
spec.kafkaSettings.brokers |
list of strings | A list of the Kafka broker network addresses. |
spec.kafkaSettings.securityProtocol |
string | Determines the security protocol that is used to connect to Kafka. If this value is not provided, then no security protocol is used. |
spec.kafkaSettings.saslMechanism |
string | Determines the SASL mechanism that is used when a value for spec.kafkaSettings.securityProtocol is provided. |
spec.kafkaSettings.saslUsername |
string | Determines the username that is used to connect to Kafka when a value for spec.kafkaSettings.securityProtocol is provided. |
spec.kafkaSettings.saslPasswordCredential.secretName |
string | The name of a Kubernetes secret that contains a password data field that is used to connect to Kafka when a value for spec.kafkaSettings.securityProtocol is provided. |
spec.aggregator.cpu |
string | Determines the CPU that is requested by the aggregator pods. |
spec.aggregator.memory |
string | Determines the memory that is requested by the aggregator pods. |
spec.aggregator.limitMemory |
boolean | Limits the memory that an aggregator pod is allowed to use. Set this value to true if the aggregator pod is running on a shared node. |
spec.aggregator.mirrors |
integer | Determines the amount of data replication and availability. When this value is set to 2 and one aggregator pod goes down, BeeInstana can tolerate it without impacting availability. |
spec.aggregator.shards |
integer | Determines the number of shards in the cluster and is used to horizontally scale the aggregator. The value of this key cannot be decreased. |
spec.aggregator.volumes.live.size |
string | Determines the initial size of the persistent volume claim when the aggregator pods are created. To increase the size of the persistent volume claim after creation, modify the claim directly. |
spec.aggregator.volumes.live.storageClass |
string | Determines the storage class of the persistent volume claim. Specify a storage class to deploy BeeInstana. |
spec.ingestor.brokerList |
string | A comma-separated list of the Kafka broker network addresses. This key is deprecated and is replaced with spec.kafkaSettings.brokers |
spec.ingestor.cpu |
string | Determines the CPU that is requested by the ingestor pods. |
spec.ingestor.memory |
string | Determines the memory that is requested by the ingestor pods. |
spec.ingestor.limitMemory |
boolean | Limits the memory that an ingestor pod is allowed to use. Set this option to true if the ingestor pod is running on a shared node. |
spec.ingestor.replicas |
integer | Used to horizontally scale the ingestor. The value of this key can be increased or decreased as you need. |
spec.ingestor.env |
string | Used as a part of the Kafka consumer name to ensure uniqueness. |
spec.ingestor.metricsTopic |
string | Determines the Kafka topic name that the ingestor pods consume from. |
spec.config.cpu |
integer | Determines the CPU that is requested by the configuration service pods. |
spec.config.memory |
string | Determines the memory that is requested by the configuration service pods. |
spec.config.replicas |
integer | Controls the availability of the configuration service pods. |
spec.useMultiArchImages |
boolean | Enables the use of multiple-architecture images, a requirement for running official versions on arm64, ppc64le, and s390x. |
You can also customize the retention time for metrics in BeeInstana. Metrics are rolled up into intervals that cover ten seconds, one minute, five minutes, and one hour. Metrics that are rolled up into each of the preceding intervals have a
different retention time. To customize the retention time, you can set environment variable overrides in the spec.aggregator
section of the configuration file. The rollup intervals and retention times are configured in seconds.
The environment variables and default retention times are shown in the following table:
Rollup interval | Environment variable name | Default retention time | Default retention time in seconds |
---|---|---|---|
10 seconds | FLAGS_retention_10s | 1 day | 86,400 |
1 minute | FLAGS_retention_60s | 30 days | 2,592,000 |
5 minutes | FLAGS_retention_300s | 90 days | 7,776,000 |
1 hour | FLAGS_retention_3600s | 395 days | 34,128,000 |
The following example shows how retention values are entered in the configuration file. The values in the example are all default values and do not change the metric retention times, but they can be changed. The rollup interval times cannot be changed.
spec:
...
aggregator:
environmentOverrides:
- name: FLAGS_retention_10s
value: "86400"
- name: FLAGS_retention_60s
value: "2592000"
- name: FLAGS_retention_300s
value: "7776000"
- name: FLAGS_retention_3600s
value: "34128000"
...
Determining the file system group ID on Red Hat OpenShift
Red Hat OpenShift requires that file system groups are within a range of values specific to the namespace. On the cluster where the BeeInstana Kubernetes Operator was deployed, run the following command:
kubectl get namespace beeinstana -o yaml
An output similar to the following example is shown for the command:
apiVersion: v1
kind: Namespace
metadata:
annotations:
...
openshift.io/sa.scc.supplemental-groups: 1000000000/10000
name: beeinstana
The openshift.io/sa.scc.supplemental-groups
annotation contains the range of allowed IDs. The range 1000000000/10000 indicates 10,000 values starting with ID 1000000000, so it specifies the range of IDs from 1000000000 to 1000009999.
In this example, the value 1000000000 might be used as a file system group ID.
Removing the BeeInstana instance and the BeeInstana Kubernetes Operator
To remove the BeeInstana instance from Kubernetes, complete the following steps:
-
Delete the Beeinstana instance by running the following command. Replace
</path/to/configuration/file.yaml>
with the path to the configuration file that was created in deploying the BeeInstana instance on Kubernetes.kubectl delete -f </path/to/configuration/file.yaml> --namespace beeinstana
-
To confirm the successful removal of the BeeInstana instance, complete the following steps:
-
Retrieve the Kubernetes pods by running the following command:
kubectl get pods --namespace beeinstana
-
Confirm that only the BeeInstana Operator pod remains as shown in the following example:
NAME READY STATUS RESTARTS AGE beeinstana-beeinstana-operator-79c8fd74c8-vchh6 1/1 Running 0 169m
-
-
Remove the persistent volume claims by completing the following steps:
-
Retrieve the persistent volume claims by running the following command:
kubectl get pvc --namespace beeinstana
The following example shows the retrieved persistent volume claims:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE live-volumeclaim-template-aggregator-0-0 Bound pvc-156e2acd-0676-4d6d-9631-0621dbb2c3e9 10Gi RWO standard 3m44s live-volumeclaim-template-aggregator-0-1 Bound pvc-beb9ebb2-2137-4222-8643-e7878f5fb2fc 10Gi RWO standard 2m35s
-
Delete each aggregator persistent volume claim by running the following command. Replace
<NAME>
with the persistent volume claim name.kubectl delete pvc --namespace beeinstana <NAME>
-
-
Remove the generated cluster configmap by running the following command:
kubectl delete configmap cluster-42.json --namespace beeinstana
-
Remove the created secrets by running the following command:
kubectl delete secret --namespace beeinstana beeinstana-kafka-creds beeinstana-admin-creds
To remove the BeeInstana Operator from Kubernetes, complete the following steps:
-
Uninstall the BeeInstana Kubernetes Operator Helm chart by running the following command:
helm uninstall beeinstana --namespace beeinstana
-
To confirm the successful removal of the Operator, complete the following steps:
-
Retrieve the Kubernetes pods by running the following command:
kubectl get pods --namespace beeinstana
-
Confirm that no pods are listed.
-
To remove the namespace where the BeeInstana Kubernetes Operator and instance were deployed, run the following command:
kubectl delete namespace beeinstana