HTTP/3 support for Google Kubernetes Engine (GKE)
How to configure HTTP/3 support for Google Kubernetes Engine (GKE). This guide shows how to setup the LoadBalancer service for GKE to support both TCP and UDP communications.
This guide shows how to setup HTTP/3 support for Google Kubernetes Engine (GKE). The instructions provided in this page are a continuation of the HTTP/3 in Emissary documentation.
Configuring an external load balancer for GKE
Currently, GKE only supports adding feature flags to alpha
clusters, and doesn’t support the creation of mixed protocol services of type LoadBalancer
. To configure an external load balancer for GKE, you need to:
- Reserve a public static IP address.
- Create two
LoadBalancer
services, one for TCP and one for UDP. - Assign the public static IP address to the
loadBalancerIP
field.
An example of the two load balancer services described above looks as follows:
# selectors and labels removed for clarity
apiVersion: v1
kind: Service
metadata:
name: $productDeploymentName$
namespace: $productNamespace$
spec:
type: LoadBalancer
loadBalancerIP: xx.xx.xx.xx # Enter your public static IP address here.
ports:
- name: http
port: 80
targetPort: 8080
protocol: TCP
- name: https
port: 443
targetPort: 8443
protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
name: $productDeploymentName$-udp
namespace: $productNamespace$
spec:
type: LoadBalancer
loadBalancerIP: xx.xx.xx.xx # Enter your public static IP address here.
ports:
- name: http3
port: 443 # Default support for HTTP/3 requires you to use 443 for the external client-facing port.
targetPort: 8443
protocol: UDP
In the above example, GKE generates two LoadBalancer
services, one for UDP and the other for TCP.
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.