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!