This is the "latest" release of Envoy Gateway, which contains the most recent commits from the main branch.
This release might not be stable.
Please refer to the /docs documentation for the most current information.
Install with Kubernetes YAML
3 minute read
This task walks you through installing Envoy Gateway in your Kubernetes cluster.
The manual installation process does not allow for as much configuration control (e.g. when you are using a custom domain Kubernetes cluster) as the Helm install method, so if you need more control over your Envoy Gateway installation, it is recommended that you use helm.
Before you begin
Refer to the Version Compatibility Matrix to learn more.
Envoy Gateway is typically deployed in a Kubernetes cluster.
If you don’t have one yet, you can use kind to create a local cluster for testing purposes.
Refer to the Developer Guide to learn more.
Install with YAML
The install.yaml manifest includes Gateway API CRDs and Envoy Gateway CRDs. If your Kubernetes provider already
manages compatible Gateway API CRDs for the cluster, do not use install.yaml; follow the
provider-managed Gateway API CRD Helm steps
instead. If the provider-managed Gateway API CRDs are not compatible with your Envoy Gateway release or required
Gateway API resources, use a compatible Gateway API CRD installation method before installing Envoy Gateway.
In your terminal, run the following command:
kubectl apply --server-side -f https://github.com/envoyproxy/gateway/releases/download/latest/install.yamlNext Steps
Envoy Gateway should now be successfully installed and running, but in order to experience more abilities of Envoy Gateway, you can refer to Tasks.
Upgrading from the previous version
Some manual migration steps are required to upgrade Envoy Gateway.
This release reconciles TCPRoute and UDPRoute via the gateway.networking.k8s.io/v1 API group (promoted in Gateway API v1.6).
You must upgrade the Gateway API CRDs to v1.6 before upgrading Envoy Gateway to avoid traffic disruption.
Standard channel users: v1alpha2 is no longer served in the Gateway API v1.6 standard channel.
You must update all TCPRoute and UDPRoute manifests to apiVersion: gateway.networking.k8s.io/v1
before upgrading the CRDs, or those routes will stop being served and traffic will be dropped.
Experimental channel users: both v1 and v1alpha2 are served after the CRD upgrade, so existing
v1alpha2 manifests continue to work without immediate changes. Updating manifests to v1 is still recommended.
If the v1.6 CRDs are not installed before Envoy Gateway is upgraded, TCP and UDP routes will be silently skipped until the CRDs are applied.
The stored version of TCPRoute and UDPRoute moves from v1alpha2 to v1. Plan a storage-version migration
before v1alpha2 is eventually removed:
kubectl get tcproutes.gateway.networking.k8s.io -A -o json | kubectl replace -f -
kubectl get udproutes.gateway.networking.k8s.io -A -o json | kubectl replace -f -
- Update Gateway-API and Envoy Gateway CRDs:
helm template eg-crds oci://docker.io/envoyproxy/gateway-crds-helm \
--version latest \
--set crds.gatewayAPI.enabled=true \
--set crds.envoyGateway.enabled=true \
| kubectl apply --force-conflicts --server-side -f -
- Install Envoy Gateway latest:
helm upgrade eg oci://docker.io/envoyproxy/gateway-helm --version latest -n envoy-gateway-system
Open Ports
These are the ports used by Envoy Gateway and the managed Envoy Proxy.
Envoy Gateway
| Envoy Gateway | Address | Port | Configurable |
|---|---|---|---|
| Xds EnvoyProxy Server | 0.0.0.0 | 18000 | No |
| Xds RateLimit Server | 0.0.0.0 | 18001 | No |
| Admin Server | 127.0.0.1 | 19000 | Yes |
| Metrics Server | 0.0.0.0 | 19001 | No |
| Health Check | 127.0.0.1 | 8081 | No |
EnvoyProxy
| Envoy Proxy | Address | Port |
|---|---|---|
| Admin Server | 127.0.0.1 | 19000 |
| Stats | 0.0.0.0 | 19001 |
| Shutdown Manager | 0.0.0.0 | 19002 |
| Readiness | 0.0.0.0 | 19003 |
Envoy Gateway should now be successfully installed and running. To experience more abilities of Envoy Gateway, refer to Tasks.
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.