Please ensure that you have read the Installation documentation before proceeding.
Navigate to Alauda Container Platform -> Networking -> Gateways
Click on Create Gateway button
In Create Gateway page select envoy-gateway-operator-cpaas-default under GatewayClass, it will display the following configuration options:
| Field | Description | YAML Path |
|---|---|---|
| Name | name | gateway: .metadata.nameenvoygateway: .metadata.name |
| GatewayClass | which GatewayClass it uses | gateway: .spec.gatewayClassName |
| Service Type | service type | envoygateway: .spec.provider.kubernetes.envoyService.type |
| Service Annotation | service annotation | envoygateway: .spec.provider.kubernetes.envoyService.annotations |
| Resource Limits | deployment resource limits | envoygateway: .spec.provider.kubernetes.envoyDeployment.container.resources |
| Replicas | deployment replicas | envoygateway: .spec.provider.kubernetes.envoyService.replicas |
| Node Labels | deployment node labels | envoygateway: .spec.provider.kubernetes.envoyService.nodeSelector |
| Listener | listener | gateway: .spec.listeners |
The Web Console form only supports GatewayClasses created by EnvoyGatewayCtl. For other GatewayClasses, use the YAML editor.
When using an EnvoyGatewayCtl-created GatewayClass, the Web Console automatically creates a companion envoyproxy resource matching the Gateway's name and namespace.
GatewayClass it belongs toenvoy-proxy instanceService Type essentially configures how the gateway is exposed. There are three modes: LoadBalancer NodePort and ClusterIP.
The advantage is ease of use, and high-availability load balancing capabilities. To use LoadBalancer, the cluster must have LoadBalancer support, which can be enabled via MetalLB.
The advantage is that it doesn't require any external dependencies.
However, using NodePort has these disadvantages:
The output is the NodePort
Very convenient if you don't need external exposure.
Listener defines the port and protocol for the gateway to listen on. In HTTP or HTTPS protocols, different hostnames can be treated as a different listener.
You cannot create a listener with a conflicting port or protocol or hostname.
You must create at least one listener in the Gateway.
Each listener supports different route kinds based on its protocol:
| Listener Protocol | Supported Route Kind |
|---|---|
| HTTP | HTTPRoute |
| HTTPS | HTTPRoute, GRPCRoute |
| TLS | TLSRoute |
| TCP | TCPRoute |
| UDP | UDPRoute |
When configuring routes, ensure they match the protocol of the listener they'll attach to. For example, you cannot attach an HTTPRoute to a TCP listener.
By default, Routes can only attach to a Gateway in the same namespace. To allow cross-namespace routing, you need to specify which namespaces are allowed to attach Routes to this Gateway's listener using the allowedRoutes field.
For more information, please reference attach to gateway create on other ns.
By default, you can only use secret created in the same namespace. Otherwise, please refer to use secret create on other ns.
By default, we use Terminate mode. Otherwise please refer to ssl passthrough.
The hostname in a listener is a unique identifier for listeners that have the same protocol. you cannot add or update a conflicting listener in a gateway.
When a request arrives, it is matched against the intersection of the Listener's hostname and the Route's hostnames. Only hostnames in the intersection are used for routing traffic.
| Listener Hostname | Route Hostnames | Intersection Result | Example |
|---|---|---|---|
| No hostname | No hostnames | Matches all hosts | Any incoming host header is accepted |
| No hostname | Has hostnames (e.g., api.example.com) | All Route hostnames | Only requests with api.example.com are matched |
Has hostname (e.g., api.example.com) | No hostnames | All Listener hostnames | Only requests with api.example.com are matched |
Has hostname (e.g., api.example.com) | Has matching exact hostname (e.g., api.example.com) | Exact match hostname | Only requests with api.example.com are matched |
Has wildcard (e.g., *.example.com) | Has matching hostnames (e.g., api.example.com, web.example.com) | Matching specific hostnames | Requests with api.example.com or web.example.com are matched |
Has hostname (e.g., api.example.com) | Has non-matching hostnames (e.g., web.example.com) | No intersection - Route status is abnormal | Route cannot process traffic |
Wildcards (*) perform suffix matching. For example, *.example.com matches foo.example.com and bar.example.com, but not example.com.
No intersection - Route status is abnormal, and cannot process traffic.
Envoy Gateway provides different granularities for controlling gateway deployments. We recommend creating a dedicated EnvoyProxy resource for each Gateway and referencing it through the Gateway's .spec.infrastructure.parametersRef field.
This one-to-one mapping approach provides better isolation and more granular control over deployment configurations such as replicas, resources, and scheduling constraints.
For other deployment configuration methods, please refer to deployment-mode.
This is the default value. It will be replaced by the actual image repository of the current cluster, please do not modify it.