Implement Multi-Zone Availability :: Kloudfuse Docs

Implement Multi-Zone Availability

Deploy Kloudfuse across multiple availability zones (multi-AZ) to ensure high availability and fault tolerance. A multi-AZ setup minimizes downtime and maintains observability workflows in the event of a zone failure. Each zone must have at least one pod to run the supported components.

Benefits of Multi-AZ Deployment

Prerequisites

Before you begin:

Step 1: Configure Helm Values

In your custom_values.yaml, configure the following fields:

global:
  cloudProvider: <aws | gcp | azure>
  numNodes: <Total number of nodes across all zones>
  multiAzDeployment:
    enabled: true
  configDB:
    host: <Postgres host for configDB>
  orchestratorDB:
    host: <Postgres host for orchestratorDB>

installKfusePgCredentials: false

This configuration ensures Kloudfuse uses external Postgres and skips deploying its own credentials secret.

Step 2: Disable Embedded PostgreSQL

To use cloud-managed Postgres, disable the internal PostgreSQL services:

ingester:
  postgresql:
    enabled: false

kfuse-configdb:
  enabled: false

Step 3: Automatic Scaling and Anti-Affinity Rules

When multiAzDeployment.enabled is set to true, Kloudfuse automatically:

You do not need to manually set replicaCount for most services.

Service Behavior in Multi-AZ Mode

Services that auto-scale based on numNodes

Logs Parser uses the Kafka topic partition count (logs_ingest_topic) to determine its replica count.

Services that default to 3 replicas (1 pod per zone)

Services that always use 1 replica

These components remain single-instance. On zone failure, Kubernetes reschedules the pod to a healthy node in another zone.

Notes

Validation Checklist

After deployment, validate your setup:

kubectl get pods -o wide -n <kloudfuse-namespace>

Confirm: