Sample configuration for micro sized cluster with AWS ALB Ingress controller (micro, no HA)

Warning

Beginning with ITRS Analytics 2.14.2, the Micro t-shirt size is now supported for production deployments.

This update is not backward compatible. To use Micro in production, you must upgrade to ITRS Analytics version 2.14.2 or newer.

Download this sample Micro sized cluster with AWS ALB Ingress controller configuration provided by ITRS for installations with High Availability (HA) disabled.

# Example ITRS Analytics configuration for micro-sized instance handling ~100,000 entities, ~400,000 time series,
# ~3000 datapoints/sec (tested with approximately 2200 metrics/sec, 800 logs/sec, 10 signals/sec, 10 audit events/sec);
# and ~3000 span/sec (pre-sampling).
# Actual ingestion composition may vary by deployment.
# No HA and with ALB Ingress controller.
#
# The resource requests total ~18 cores / ~51 GiB requests (~60 cores / ~72 GiB limits)
# These totals include optional Linkerd sidecar resources
#
# It is recommended to use a storage class with defaults of 3000 IOPS and 125 MiB/s throughput.
#
# DISK REQUIREMENTS:
# Estimated disk requirements based on default retention and the ingestion rate above
# (actual size will vary depending on the shape of the data being ingested).
# - Kafka: 100 GiB
# - Kafka controller: 10 GiB
# - Postgres: 3 GiB
# - ClickHouse Keeper: 2 GiB
# - ClickHouse Platform: 20 GiB
# - ClickHouse Metrics: 200 GiB
# - ClickHouse Logs: 60 GiB
# - ClickHouse Traces: 30 GiB
# - etcd: 16 GiB
#
# The AWS Load Balancer Controller is required in order to support external ingestion.  This example assumes version
# 2.3.0 or later is installed. See https://kubernetes-sigs.github.io/aws-load-balancer-controller/.
#
# The AWS Load Balancer Controller requires annotations for each ingress configured below.
# Be sure to change the certificate ARN and group names.  The group name can be any unique value (for example
# use the same value you set for externalHostname) but it must be the same for the `apps` and `iam` ingresses.
#
# The `alb.ingress.kubernetes.io/target-type` annotation controls how traffic is routed to pods.  The simplest
# option ("ip") is used below.  If this is not supported in your cluster, the default setting of "instance" must be
# used instead and all services backed by each ingress must be changed to NodePort instead of the default ClusterIP.
#

apps:
  externalHostname: "iax.mydomain.internal"
  ingress:
    className: "alb"
    annotations:
      alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:...
      alb.ingress.kubernetes.io/group.name: iax.mydomain.internal
      alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]'
      alb.ingress.kubernetes.io/scheme: internet-facing
      alb.ingress.kubernetes.io/ssl-redirect: "443"
      alb.ingress.kubernetes.io/target-type: ip
ingestion:
  externalHostname: "iax-ingestion.mydomain.internal"
  ingress:
    className: "alb"
    annotations:
      alb.ingress.kubernetes.io/backend-protocol-version: GRPC
      alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:...
      alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}]'
      alb.ingress.kubernetes.io/scheme: internet-facing
      alb.ingress.kubernetes.io/target-type: ip
# If OTel traces are ingested, the resources of trace-ingestion workload should be overridden with the following:
#  traces:
#    jvmOpts: "-XX:MaxDirectMemorySize=80M"
#    resources:
#      requests:
#        memory: "1500Mi"
#        cpu: "250m"
#      limits:
#        memory: "2500Mi"
#        cpu: "1"
iam:
  ingress:
    className: "alb"
    annotations:
      alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:...
      alb.ingress.kubernetes.io/group.name: iax.mydomain.internal
      alb.ingress.kubernetes.io/ssl-redirect: "443"
      alb.ingress.kubernetes.io/target-type: ip
etcd:
  diskSize: "16Gi"
kafka:
  resources:
    limits:
      memory: "3Gi"
    requests:
      memory: "3Gi"
  diskSize: "100Gi"
clickhouse:
  traces:
    diskSize: "30Gi"
    resources:
      limits:
        cpu: "1"
        memory: "6Gi"
      requests:
        cpu: "1"
        memory: "6Gi"
  metrics:
    diskSize: "200Gi"
    resources:
      limits:
        cpu: "2"
        memory: "6Gi"
      requests:
        cpu: "2"
        memory: "6Gi"
  platform:
    diskSize: "20Gi"
    resources:
      limits:
        cpu: "3"
        memory: "8Gi"
      requests:
        cpu: "3"
        memory: "8Gi"
  logs:
    diskSize: "60Gi"
    resources:
      limits:
        cpu: "2"
        memory: "6Gi"
      requests:
        cpu: "2"
        memory: "6Gi"
["ITRS Analytics"] ["User Guide", "Technical Reference"]

Was this topic helpful?