1 of 17

Yury Tsarev, Upbound��Steven Borrelli, Upbound

Resilient Multiregion

Global Control Planes

With Crossplane

and K8GB

2 of 17

Building A Global Platform

Platform

Region b

Region A

End users

App Devs

Platform

Engineers

App

CI/CD

consume

push

manage

Platform API

provision

Cloud Infra

K8

Apps

3 of 17

Goals

Run workloads and infra provisioning across two clusters

Active/Passive Control Planes with automated failover

Use app health status to determine active cluster

Automatically update DNS for failover�

4 of 17

Core Technology

Global Load Balancer

Universal Control Plane

5 of 17

Cluster A

High-Level Architecture

Crossplane NS

providers

functions

App NS

K8GB NS

coredns

external-dns

k8gb

ō

Cluster B

Crossplane NS

providers

functions

App NS

1. dns lookup

shared app cache

K8gb providers

2. Zone delegation

K8GB NS

coredns

external-dns

k8gb

6 of 17

Crossplane

Universal Control Plane built on Kubernetes

Models Every Resource as a CRD

Extended by Providers and Functions

v2 (August) native app support

7 of 17

Crossplane

CRDs Model APIs

Functions Create Desired State

8 of 17

K8GB

🌐 Application resilience across multiple Kubernetes clusters and regions

⚙️ Seamless traffic management with multiple load balancing strategies

🛡️ No single point of failure and no management cluster

🎛️ Simple control with a single Custom Resource

📈 Backed by a community and trusted by enterprises

9 of 17

K8GB is architected to run on top of any CNCF-conformant K8s cluster�and Ingress controller, Istio Virtual Service, GatewayAPI is on the roadmap�

✅ Operates in any on-prem, cloud or hybrid scenarios

✅ Supported external DNS providers for full zone delegation automation:

✅ AWS Route53

✅ Azure Public DNS

✅ NS1

✅ Infoblox

✅ Cloudflare

✅ RFC2136 implementations (e.g. Bind/Windows DNS)

K8GB | Integrations

10 of 17

Global Load Balancing Strategies

50% 30% 20%

Round Robin

Weighted�Round Robin

Failover

GeoIP

11 of 17

K8GB | Custom Resource

12 of 17

Demo

Active Cluster

Passive Cluster

13 of 17

Crossplane GlobalApp CRD

apiVersion: example.crossplane.io/v1

kind: GlobalApp

metadata:

name: gslb-kubecon-china

spec:

region: southeastasia # Shared infrastructure region

primaryGeoTag: "cn" # Same primary geo tag for consistent failover

namespace: "demo"

hostname: "globalapp.cloud.example.com"

managementPolicies: ["Observe"] # Initial policy (will be overridden)

autoApplyRecommendedPolicy: true # Automatic GSLB-driven failover

GSLB Object

App Release:�Podinfo

Azure Resource Group�Azure Redis Cache

GlobalApp Composite Creates

14 of 17

Integrating GSLB Health with Crossplane Resources

status:�� health: {}�

if active && healthy: �� managementPolicies: [“*”]

else:

managementPolicies: [“Observe”]

GSLB

Crossplane Function

Managed Resources

Redis Cache

Resource Group

Helm Chart

Ingress

Set

provider-kubernetes

Dynamic

Watch

15 of 17

Demo

managementPolicies:

- “Create”

- “Delete”

- “Observe”

- “Update”

Active Cluster

managementPolicies:

- “Observe”

Passive Cluster

16 of 17

  • K8GB Crossplane Function�
  • Global Dashboard

  • Operation Functions (coming in Crossplane v2)

Future Directions

17 of 17

Thank You!