GatewayClass capabilities


This page lists the capabilities of the GatewayClass resources available on Google Kubernetes Engine (GKE) and their supported specifications.

Table legend

For the various tables in this document, the legend for the tables is as follows:

  • indicates that the field is supported.
  • - indicates that the field is not supported.
  • If GKE supports some values in the field, the table describes what values are supported.

GatewayClass capabilities

The following table lists the distinguishing features of the GatewayClass resources available on GKE.

Architecture

Feature gke-l7-global-external-managed gke-l7-global-external-managed-mc gke-l7-regional-external-managed gke-l7-regional-external-managed-mc gke-l7-rilb gke-l7-rilb-mc gke-l7-gxlb gke-l7-gxlb-mc
GKE Gateway Controller Google-hosted Gateway controller
Location Google Cloud infrastructure
Platform GKE
Cluster type GKE Autopilot or GKE Standard
Cluster scope Single cluster Multi-cluster Single cluster Multi-cluster Single cluster Multi-cluster Single cluster Multi-cluster
GKE version GKE Autopilot: 1.26 and later
GKE Standard: 1.24 and later
API type CRD
API version gateway.networking.k8s.io/v1beta1
API enablement GKE Autopilot: enabled by default
CRD version New clusters:
GKE 1.24 to 1.27.10, 1.28.4, 1.29.0: 0.7.0
GKE 1.27.10, 1.28.4, 1.29.0 and later: 0.8.1

Cluster upgrades:
GKE 1.24 to 1.27.10, 1.28.4, 1.29.0: 0.7.0
GKE 1.27.10, 1.28.4, 1.29.0 and later: 0.8.1
Launch stage GA

Multi-cluster Services

Feature gke-l7-global-external-managed gke-l7-global-external-managed-mc gke-l7-regional-external-managed gke-l7-regional-external-managed-mc gke-l7-rilb gke-l7-rilb-mc gke-l7-gxlb gke-l7-gxlb-mc
Required
API version net.gke.io/v1 net.gke.io/v1 net.gke.io/v1 net.gke.io/v1
Resource type ServiceExport ServiceExport ServiceExport ServiceExport

Load balancer

Feature gke-l7-global-external-managed gke-l7-global-external-managed-mc gke-l7-regional-external-managed gke-l7-regional-external-managed-mc gke-l7-rilb gke-l7-rilb-mc gke-l7-gxlb gke-l7-gxlb-mc
Type Global external Application Load Balancer Regional external Application Load Balancer Internal Application Load Balancer Classic Application Load Balancer
Load balancer scope Global Regional Regional Global
Container-native load balancing (Default, using GCE_VM_IP_PORT zonal NEGs)

VPC

Feature gke-l7-global-external-managed gke-l7-global-external-managed-mc gke-l7-regional-external-managed gke-l7-regional-external-managed-mc gke-l7-rilb gke-l7-rilb-mc gke-l7-gxlb gke-l7-gxlb-mc
Shared VPC support All clusters and fleet host project in the same Shared VPC host or service project
Shared Gateway/Ingress for multiple routes
Automated VPC firewall lifecycle management
Note: You must deploy firewall rules manually for Gateways in a Shared VPC environment.
For more information, see required firewall rules for Gateways.

Gateway IP address

Feature gke-l7-global-external-managed gke-l7-global-external-managed-mc gke-l7-regional-external-managed gke-l7-regional-external-managed-mc gke-l7-rilb gke-l7-rilb-mc gke-l7-gxlb gke-l7-gxlb-mc
Gateway IP address assignment Static or dynamic
Network Service tier IP address Premium Tier Standard Tier Premium Tier Premium Tier
Gateway IP address reachability Internet Internet VPC internal Internet
Same IP address for multiple ports (HTTP, HTTPS)

Routing and traffic management

Feature gke-l7-global-external-managed gke-l7-global-external-managed-mc gke-l7-regional-external-managed gke-l7-regional-external-managed-mc gke-l7-rilb gke-l7-rilb-mc gke-l7-gxlb gke-l7-gxlb-mc
Global Access Implicit for Global load balancers Implicit for Global load balancers Implicit for Global load balancers
Cross-region backend load balancing
Cross-project load balancing Backend services and NEGs must be in the same project
(Managed by the GKE Gateway controller)
Cross-namespace routing
Host/Path routing Prefix, Exact match
Header-based routing Exact match
Path redirects
URL rewrites
Traffic splitting
Traffic mirroring
Traffic cut over
Traffic-based autoscaling Preview Preview Preview
Custom request headers
Custom response headers

Frontend security

Feature gke-l7-global-external-managed gke-l7-global-external-managed-mc gke-l7-regional-external-managed gke-l7-regional-external-managed-mc gke-l7-rilb gke-l7-rilb-mc gke-l7-gxlb gke-l7-gxlb-mc
SSL policy
HTTP-to-HTTPS redirect
Multiple TLS certificates support
Kubernetes Secrets-based certificates
Self-managed Compute Engine SSL certificates
Google-managed Compute Engine SSL certificates
Self-managed SSL certificates with Certificate Manager
Google-managed SSL certificates with Certificate Manager

Backend service properties

Feature gke-l7-global-external-managed gke-l7-global-external-managed-mc gke-l7-regional-external-managed gke-l7-regional-external-managed-mc gke-l7-rilb gke-l7-rilb-mc gke-l7-gxlb gke-l7-gxlb-mc
Connection draining timeout
Session affinity
HTTP access logging configuration
Backend service timeout
Custom load balancer health check configuration
TLS to backend services
Supported backend services protocols HTTP, HTTPS, HTTP/2
Custom default backend

Additional Google Cloud services

Features gke-l7-global-external-managed gke-l7-global-external-managed-mc gke-l7-regional-external-managed gke-l7-regional-external-managed-mc gke-l7-rilb gke-l7-rilb-mc gke-l7-gxlb gke-l7-gxlb-mc
Identity-Aware Proxy (IAP)
Google Cloud Armor backend security policy
Cloud CDN

Supported Gateway API Fields

The following tables list the fields of the Gateway API specification that are supported by GKE.

Gateway

spec.addresses

For more information, see spec.addresses in the Gateway documentation.

Fields gke-l7-global-external-managed gke-l7-global-external-managed-mc gke-l7-regional-external-managed gke-l7-regional-external-managed-mc gke-l7-rilb gke-l7-rilb-mc gke-l7-gxlb gke-l7-gxlb-mc
type NamedAddress
value Static global external address Static regional external address Static regional internal address Static global external address

spec.listeners

For more information, see spec.listeners in the Gateway documentation.

Fields gke-l7-global-external-managed gke-l7-global-external-managed-mc gke-l7-regional-external-managed gke-l7-regional-external-managed-mc gke-l7-rilb gke-l7-rilb-mc gke-l7-gxlb gke-l7-gxlb-mc
protocol HTTP, HTTPS
port 80 or 8080 (HTTP), 443 (HTTPS)
name
hostname
tls
allowedRoutes

spec.listeners.tls

For more information, see spec.listeners.tls in the Gateway documentation.

Fields gke-l7-global-external-managed gke-l7-global-external-managed-mc gke-l7-regional-external-managed gke-l7-regional-external-managed-mc gke-l7-rilb gke-l7-rilb-mc gke-l7-gxlb gke-l7-gxlb-mc
mode Terminate
certificateRefs

spec.listeners.tls.options

For more information, see spec.listeners.tls.options in the Gateway documentation.

Fields gke-l7-global-external-managed gke-l7-global-external-managed-mc gke-l7-regional-external-managed gke-l7-regional-external-managed-mc gke-l7-rilb gke-l7-rilb-mc gke-l7-gxlb gke-l7-gxlb-mc
networking.gke.io/pre-shared-certs Global SSL certificate resource reference (self- or Google-managed) Regional, self-managed SSL certificate resource reference Regional, self-managed SSL certificate resource reference Global SSL certificate resource reference (self- or Google-managed)

HTTPRoute

The following tables list the values of the HTTPRoute API specification that are supported by GKE.

spec.parentRefs

For more information, see spec.parentRefs in the Gateway documentation.

Fields gke-l7-global-external-managed gke-l7-global-external-managed-mc gke-l7-regional-external-managed gke-l7-regional-external-managed-mc gke-l7-rilb gke-l7-rilb-mc gke-l7-gxlb gke-l7-gxlb-mc
parentRefs.group
parentRefs.kind
parentRefs.namespace
parentRefs.name
parentRefs.sectionName
parentRefs.port

spec.hostnames

For more information, see spec.hostnames in the Gateway documentation.

Fields gke-l7-global-external-managed gke-l7-global-external-managed-mc gke-l7-regional-external-managed gke-l7-regional-external-managed-mc gke-l7-rilb gke-l7-rilb-mc gke-l7-gxlb gke-l7-gxlb-mc
precise, wildcard

spec.rules

For more information, see spec.rules in the Gateway documentation.

Fields gke-l7-global-external-managed gke-l7-global-external-managed-mc gke-l7-regional-external-managed gke-l7-regional-external-managed-mc gke-l7-rilb gke-l7-rilb-mc gke-l7-gxlb gke-l7-gxlb-mc
path.type Exact, PathPrefix
path.value
headers.type Exact
headers.name
headers.value
queryParams
method

spec.rules.backendRefs

For more information, see spec.rules.backendRefs in the Gateway documentation.

Fields gke-l7-global-external-managed gke-l7-global-external-managed-mc gke-l7-regional-external-managed gke-l7-regional-external-managed-mc gke-l7-rilb gke-l7-rilb-mc gke-l7-gxlb gke-l7-gxlb-mc
backendRef.group (empty), gateway.networking.k8s.io, net.gke.io
backendRef.kind Service ServiceImport Service ServiceImport Service ServiceImport Service ServiceImport
backendRef.name
backendRef.namespace
backendRef.port
backendRef.weight

spec.rules.filters

For more information, see spec.rules.filters in the Gateway documentation.

Fields gke-l7-global-external-managed gke-l7-global-external-managed-mc gke-l7-regional-external-managed gke-l7-regional-external-managed-mc gke-l7-rilb gke-l7-rilb-mc gke-l7-gxlb gke-l7-gxlb-mc
type requestHeaderModifier, responseHeaderModifier, requestMirror, requestRedirect, urlRewrite
requestHeaderModifier.add
requestHeaderModifier.remove
requestHeaderModifier.set
responseHeaderModifier.add
responseHeaderModifier.remove
responseHeaderModifier.set
requestMirror.backendRef
requestRedirect.scheme HTTP, HTTPS
requestRedirect.hostname
requestRedirect.path replaceFullPath, replacePrefixMatch
requestRedirect.port
requestRedirect.statusCode
urlRewrite.hostname
urlRewrite.path replacePrefixMatch