Envoy Gateway Operator
TOC
Understanding Envoy Gateway
Terminology
Envoy Gatewayis an open-source project for managing Envoy Proxy as a standalone or Kubernetes-based application gateway.Gateway APIis a Kubernetes-official collection of custom resources for declaring routing rules and traffic management policies.Envoy Gatewayis one implementation of theGateway APIspecification.Gatewayorgatewayapi/gatewayis a CR defined by the Gateway API specification.envoy-gateway instanceisEnvoy Gatewayinstance and all its related resources running in a Kubernetes cluster.envoy-gateway-operatoris a helm-operator wrapper aroundEnvoy Gatewayand useEnvoyGatewayCtlto simplify the deployment and management ofenvoy-gateway instance.EnvoyProxyis a CR defined by theEnvoy Gatewayspecification, used byenvoy-gateway instanceto manageenvoy-proxy instance.envoy-proxy instanceis a running deployment which handles incoming traffic.
Architecture
-
After installing the
envoy-gateway-operator, it watchesEnvoyGatewayCtland deploys anenvoy-gateway instancealong with a default GatewayClass. -
When you create a
Gatewaythat references this GatewayClass and specifies anEnvoyProxyconfiguration, theenvoy-gateway instancedeploys anenvoy-proxy instanceto handle incoming traffic. -
HTTP, TCP, or UDP Route resources can then be created and attached to this Gateway to define traffic routing policies.
-
For more granular configuration, you can create
ClientTrafficPolicyorBackendTrafficPolicyresources and attach them to routes to implement advanced traffic management features.
Related custom resources
Envoy Gateway and envoy-gateway-operator introduce additional custom resources that, combined with the Gateway API custom resource, comprehensively control all aspects of gateway deployment and routing policy configurations.
Gateway API related custom resources
For more details about these resources, please refer to the Gateway API Concepts.
Envoy Gateway-related custom resources
In the recommended deployment pattern, each Gateway uses .spec.infrastructure.parametersRef to reference its own dedicated EnvoyProxy resource.
This one-to-one mapping allows users to control the Gateway's deployment configuration (replicas, resources, scheduling, etc.) by modifying the corresponding EnvoyProxy resource.
Operator-related custom resources
We recommend deploying a single envoy-gateway instance via EnvoyGatewayCtl per cluster, which is sufficient for typical use cases.
However, the EnvoyGatewayCtl resource allows you to deploy multiple envoy-gateway instance within the same cluster, enabling more flexible control and isolation for advanced scenarios such as different deployment mode
Install Envoy Gateway via Envoy Gateway Operator
Prerequisites
Please ensure that you have read the Understanding Envoy Gateway documentation before proceeding.
Overview
The envoy-gateway-operator is provided to facilitate advanced management of envoy-gateway instance deployments.
The operational architecture functions as follows:
the envoy-gateway-operator continuously monitors EnvoyGatewayCtl and automatically provisions corresponding envoy-gateway instance deployment, service, etc.
Installation
Step 1: Install Envoy Gateway Operator
- Navigate to
Administrator -> Marketplace -> OperatorHub - Locate the
Alauda build of Envoy GatewayunderNetworkingCategory and clickInstall
Step 2: Create a Default EnvoyGatewayCtl
-
Navigate to
Administrator -> Marketplace -> OperatorHub -
Locate the
Alauda build of Envoy GatewayunderNetworkingCategory ,click to Open it. -
Navigate to the
All Instancestab -
Click
Create, then in the displayed dialog box, locate theEnvoyGatewayCtlInstance Type section and clickCreate -
The
Create EnvoyGatewayCtlpage displays the following configuration options:Recommendation: Use the default values for typical deployments. Click Create to proceed.
Configuration Via YAML
You could also apply EnvoyGatewayCtl via yaml.
Default Config:
Each EnvoyGatewayCtl will create a GatewayClass named as $NS-$NAME, for example envoy-gateway-operator-cpaas-default.
Advanced Config Via EnvoyGatewayCtl
EnvoyGatewayCtl is essentially the envoy-gateway Helm chart wrapped with helm-operator. Its spec corresponds to the values of the envoy-gateway chart, allowing you to configure various global-level features of Envoy Gateway in one source.
For detailed information about available configuration options, please refer to envoy-gateway-chart-values.
You should only configure the envoy-gateway instance through the EnvoyGatewayCtl resource. Do not directly modify rendered resources such as ConfigMaps, Deployments, as these changes may be lost during upgrades or reconciliation.
Backend Routing
For example you can configure backend routing in the EnvoyGatewayCtl spec: