/k3s_bind9_dns_fluentbit_azure_log_ingest_api

A K3S Deployment of Bind9 DNS, Fluent-Bit configured for the [output] Azure Log Ingestion API

K3S : Bind9 DNS : Fluent-Bit : Azure Logs Ingestion API

A K3S Deployment of Bind9 DNS, Fluent-Bit configured for the [output] Azure Log Ingestion API

Pre-Condition

  • Microsoft Azure Subscription

  • Operational K3S Node/Cluster image

  • Fluent Bit: Azure Log Ingestion API

  • bind9-dns namespace must exist

    kubectl create ns bind9-dns
  • A label of 'bind9' : 'true' must exist on a K3S node for 'nodeSelector'

    kubectl label nodes <your-node-name> bind9=true
    kubectl get nodes --show-labels
    • This is required for two containers to write/read from the same volume mount set as RWO (Read Write Once)
    • Both containers MUST run on the SAME K3S (Kubernetes) NODE
  • Kubernetes storage (e.g. LongHorn) must exist for K3S node/cluster

    • Volume name: bind9-logs set as RWO image
  • K3S Load Balancer must be configured (e.g. KubeVIP)

Order of Operations

  • Add your info & secrets from Azure Entra ID (App Registration) & Azure Monitor (DCE/DCR) and deploy the manifest
kubectl create -f ./bind9-appreg-secrets.yaml

image

  • Modify this manifest & deploy the Fluent-Bit Sidecar ConfigMap
kubectl create -f ./fluentbit-sidecar-cm.yaml
  • Modify this manifest & deploy Bind9 DNS w/ Fluent-Bit Sidecar
kubectl create -f ./bind9-fb-sc-deployment.yaml