Skip to content

Deployment

In order to deploy gateway api we need to deploy different components

Gateway API CRDs

We need to deploy the official gateway api CRDs. We have all the releases in the official repository.

https://github.com/kubernetes-sigs/gateway-api/releases

We have 2 options here:

Standard

The standard installation, includes CRDs in GA or beta status

  • GatewayClass
  • Gateway
  • HTTPRoute
  • ReferenceGrant

Experimental

The experimental installation add some experimental CRDs:

  • TCPRoute
  • TLSRoute
  • UDPRoute

Gateway Api Controller

Here we have a have a lot of implementations with different ways to be deployed.

Gateway Api Controller CDRs

The Gateway Api controller usually need to deploy its own CRDs. Read the documentation when deploying the controller. This CRDs permits to configure different aspects of the controller, sometime directly related with exclusive settings of its implementation.

Deployment Considerations

CRD Version Management

  • Check the deployment of the chosen gateway controller if it includes the Gateway API CRDs and the Gateway Api Controller CDRs
  • If planning to use only a gateway api controller, it can be a good idea to install the Gateway API CRDs concrete version found in its documentation
  • Mixing different controllers in the same k8s cluster adds a decision about what version of the Gateway API CRDs deploy

Multi-Controller Coordination

When using a gateway api implementation with a provider load balancer controller, we must choose who will configure the load balancer

For example: Envoy Gateway and AWS Load Balancer Controller

  • We can expose Envoy Gateway via service annottation using a CRD called EnvoyProxy (spec.provider.envoyService.annotations) This will make the aws load balancer controller to create the load balancer

  • AWS Load Balancer Controller with gateway api features enabled, provides its own CRDs (LoadBalancerConfiguration, TargetGroupConfiguration, ListenerRuleConfiguration) to configure the load balancer itself, ignoring envoy gateway.

We must choose what option do we prefer