Skip to content

Adoption & Ecosystem

Who uses it

k8gb keeps an ADOPTERS.md in the repository, with a contact and a description of use for each entry. The table below is that file, read at commit 34b4535c.

OrganisationUse caseSource
AbsaCreated k8gb; first production use across regional data centresADOPTERS.md
Millennium bcpMulticloud and multi-region cloud native load balancingCNCF case study
EficodeCloud native and DevOps consultancy, used in customer engagementsADOPTERS.md
Open SystemsMulti-cluster load balancing inside a private WANADOPTERS.md
PagBankMulticloud global load balancing across multiple regionsADOPTERS.md
DaredeCloud consultancy, supports customers running k8gbADOPTERS.md
envio.devCross-region availability for a blockchain data engineADOPTERS.md

The CNCF's incubation announcement describes adoption as concentrated in fintech and cloud consultancies, and names Millennium bcp, Portugal's largest privately owned bank, as an example (CNCF, 2026-08-05).

Two shapes show up in that list. Banks with a regulatory reason to run in more than one place and a real cost to being down (Absa, Millennium bcp, PagBank), and consultancies that deploy it for clients (Eficode, Darede). Both are the profile of a tool chosen for a specific failure scenario rather than adopted by default.

Adoption signals

The project reached CNCF incubating on 2026-07-18, announced 2026-08-05, after five years in the sandbox from 2021-03-30 (CNCF). Passing an incubation review requires documented adopters, which is the strongest available signal for a project of this size: the ADOPTERS.md entries are what the CNCF Technical Oversight Committee reviewed.

Ongoing activity is published at k8gb DevStats. Project health scores are tracked publicly at CLOMonitor and through the OpenSSF Scorecard and CII Best Practices badges the README carries (README.md). Release artefacts, both images and Helm charts, are signed with cosign and published to ghcr.io/k8gb-io (docs/CONTRIBUTING.md).

v1.0.0 was tagged on 2026-09-02, six weeks after the promotion to incubating.

Ecosystem

k8gb is built almost entirely out of other people's components, which is worth stating plainly because it changes what you are adopting:

  • CoreDNS, in a k8gb-specific build carrying the k8s_crd plugin (chart/k8gb/values.yaml:119). This is what answers queries.
  • external-dns, both as the source of the DNSEndpoint type k8gb writes and as the mechanism for putting NS delegation records into the parent zone (go.mod).
  • DNS providers: Route 53, Azure DNS, NS1, Cloudflare, Infoblox, Windows DNS, and RFC 2136, each with a setup page under docs/deploy_*.md. Infoblox is the one with a bespoke client in the tree (controllers/providers/dns/infoblox-client.go); the rest go through external-dns.
  • Prometheus and Grafana: metrics in controllers/providers/metrics/ and dashboards in grafana/.
  • Admiralty and Crossplane: documented combinations, in docs/admiralty.md and docs/examples/crossplane/.

Alternatives

AlternativeDiffers by
Route 53 latency and failover routing, Azure Traffic Manager, Google Cloud Load BalancingThe managed answer, and the right one if everything is in one cloud. k8gb earns its place when clusters span providers or include on-premises, and when you want the policy to be a Kubernetes object
F5 and Infoblox GSLB appliancesThe traditional answer. Note that k8gb integrates with Infoblox as a DNS backend rather than competing with it outright
SubmarinerAlso multi-cluster, but a different layer: Submariner builds L3 reachability between pods and services. k8gb decides which cluster inbound traffic goes to. They solve different halves and can be used together
Istio or Linkerd multi-clusterRequires the mesh's data plane in every cluster and connectivity between them. k8gb requires only that a DNS zone be delegated

The distinguishing axis is what each option demands between clusters. A mesh or Submariner asks for network reachability and a trust relationship. A cloud provider's GSLB asks that you be in that cloud. k8gb asks for a delegated DNS zone and nothing else, and in exchange gives you DNS-granularity control rather than per-request control.