快速入门
less than a minute
本指南将帮助您通过几个简单的步骤开始使用 Envoy Gateway。
前置条件
一个 Kubernetes 集群。
注意: 请参考兼容性表格来查看所支持的 Kubernetes 版本。
注意: 如果您的 Kubernetes 集群没有负载均衡器实现,我们建议安装一个 ,以便 Gateway 资源能够关联一个地址。我们推荐使用 MetalLB。
安装
安装 Gateway API CRD 和 Envoy Gateway:
helm install eg oci://docker.io/envoyproxy/gateway-helm --version v0.0.0-latest -n envoy-gateway-system --create-namespace
等待 Envoy Gateway 至可用后:
kubectl wait --timeout=5m -n envoy-gateway-system deployment/envoy-gateway --for=condition=Available
安装 GatewayClass,Gateway,HTTPRoute 和示例应用:
kubectl apply -f https://github.com/envoyproxy/gateway/releases/download/latest/quickstart.yaml -n default
注意:quickstart.yaml
定义了 Envoy Gateway 将侦听其全局可路由 IP 地址上端口
80 上的流量,以便轻松使用浏览器测试 Envoy Gateway。当 Envoy Gateway 看到它的侦听器使用特权端口(<1024),
它将在内部映射到非特权端口,因此 Envoy Gateway 不需要额外的特权。
了解此映射很重要,当您调试时您可能需要将其考虑在内。
测试配置
获取由示例 Gateway 创建的 Envoy 服务的名称:
export ENVOY_SERVICE=$(kubectl get svc -n envoy-gateway-system --selector=gateway.envoyproxy.io/owning-gateway-namespace=default,gateway.envoyproxy.io/owning-gateway-name=eg -o jsonpath='{.items[0].metadata.name}')
端口转发到 Envoy 服务:
kubectl -n envoy-gateway-system port-forward service/${ENVOY_SERVICE} 8888:80 &
通过 Envoy 代理,使用 curl 测试示例应用:
curl --verbose --header "Host: www.example.com" http://localhost:8888/get
您还可以通过将流量发送到外部 IP 来测试相同的功能。运行下面的命令可以获取 Envoy 服务的外部 IP 地址:
export GATEWAY_HOST=$(kubectl get svc/${ENVOY_SERVICE} -n envoy-gateway-system -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
在某些环境中,负载均衡器可能会公开主机名而不是 IP 地址,如果是这样,将上述命令中的 ip
替换为 hostname
。
使用 curl 来通过 Envoy Proxy 访问示例应用:
curl --verbose --header "Host: www.example.com" http://$GATEWAY_HOST/get
接下来的探索?
在快速开始(本节),您将:
- 完成 Envoy Gateway 的安装
- 部署一个后端服务和一个网关
- 使用 Kubernetes Gateway API 资源 Gateway 和 HttpRoute 配置网关。将网关传入的 HTTP 请求转发到后端服务。
以下是建议的后续任务列表,可指导您探索 Envoy Gateway:
请查看与您使用情况相符的场景下的任务部分。Envoy Gateway 的任务按照流量管理、安全、扩展性、可观察性和运维等分类组织。
清理
请按照本节中的步骤将快速入门中的所有内容卸载。
删除 GatewayClass,Gateway,HTTPRoute 和示例应用:
kubectl delete -f https://github.com/envoyproxy/gateway/releases/download/latest/quickstart.yaml --ignore-not-found=true
删除 Gateway API CRD 和 Envoy Gateway:
helm uninstall eg -n envoy-gateway-system
接下来
浏览开发者指南 ,了解如何参与项目。
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.