Skip to content

Kubernetes Gateway API ingress gateway

Page as Markdown

    

Deploy an ingress gateway using the native Kubernetes Gateway API in ambient mesh.

Create an ingress gateway

  1. Create a Gateway resource with gatewayClassName: istio so that the Istio control plane creates and manages the gateway.

    apiVersion: gateway.networking.k8s.io/v1
    kind: Gateway
    metadata:
      name: httpbin-gateway
    spec:
      gatewayClassName: istio
      listeners:
      - name: http
        port: 80
        protocol: HTTP
        allowedRoutes:
          namespaces:
            from: All

    By default, Istio creates a LoadBalancer service for the gateway, which causes a load balancer to be provisioned on most cloud providers. Annotations and labels on the Gateway are copied to the generated Service and Deployment, which you can use to set options such as internal load balancers.

  2. Verify that the gateway is ready and has been assigned an external address.

    kubectl get gateway httpbin-gateway

    Example output: The PROGRAMMED status confirms the gateway is ready. The ADDRESS field is the external IP or hostname you use to route traffic to the gateway.

    NAME              CLASS   ADDRESS        PROGRAMMED   AGE
    httpbin-gateway   istio   34.36.XX.XXX   True         60s

Attach routes

Attach route resources to the gateway using parentRefs. Route objects can attach to either gateways or waypoints; for the differences, see the route attachment guide.

Add TLS certificates

To configure TLS for a gateway listener, refer to the Gateway API TLS guide.