Envoy Gateway 快速入门指南:从安装到实践

Envoy Gateway 快速入门指南:从安装到实践

【免费下载链接】gateway Manages Envoy Proxy as a Standalone or Kubernetes-based Application Gateway 【免费下载链接】gateway 项目地址: https://gitcode.com/gh_mirrors/gate/gateway

前言

Envoy Gateway 作为基于 Envoy 代理构建的云原生 API 网关,为 Kubernetes 环境提供了强大的流量管理能力。本文将带领您快速完成 Envoy Gateway 的安装和基础配置,并通过一个完整的示例演示其核心功能。

环境准备

在开始之前,您需要确保具备以下环境:

  1. 一个可用的 Kubernetes 集群(建议版本 1.20+)
  2. kubectl 命令行工具已配置并可以访问集群
  3. Helm 3+ 版本已安装

重要提示:如果您的 Kubernetes 集群没有 LoadBalancer 实现,建议安装 MetalLB 等解决方案,以便 Gateway 资源能够获取外部 IP 地址。

安装步骤

1. 安装 Gateway API CRDs 和 Envoy Gateway

使用 Helm 可以快速完成安装:

helm install eg oci://docker.io/envoyproxy/gateway-helm -n envoy-gateway-system --create-namespace

这个命令会:

  • 创建 envoy-gateway-system 命名空间
  • 安装所有必要的 CRDs (Custom Resource Definitions)
  • 部署 Envoy Gateway 控制器

2. 等待部署完成

执行以下命令等待部署就绪:

kubectl wait --timeout=5m -n envoy-gateway-system deployment/envoy-gateway --for=condition=Available

3. 部署示例应用和路由配置

应用快速启动配置:

kubectl apply -f https://github.com/envoyproxy/gateway/releases/download/latest/quickstart.yaml -n default

这个配置文件包含:

  • 一个 GatewayClass 定义
  • 一个 Gateway 实例
  • 一个 HTTPRoute 路由规则
  • 一个示例后端服务

技术细节:Envoy Gateway 会监听 80 端口的流量。当使用特权端口(<1024)时,Envoy 内部会将其映射到非特权端口,这样就不需要额外的权限。这个映射对用户透明,但在调试时需要了解。

验证配置

根据您的环境选择以下测试方式:

方式一:有外部负载均衡支持的环境

  1. 获取 Gateway 的外部 IP:
export GATEWAY_HOST=$(kubectl get gateway/eg -o jsonpath='{.status.addresses[0].value}')
  1. 测试访问:
curl --verbose --header "Host: www.example.com" http://$GATEWAY_HOST/get

方式二:无负载均衡支持的环境

  1. 获取 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}')
  1. 端口转发:
kubectl -n envoy-gateway-system port-forward service/${ENVOY_SERVICE} 8888:80 &
  1. 测试访问:
curl --verbose --header "Host: www.example.com" http://localhost:8888/get

学习路径建议

通过本快速入门,您已经完成了:

  • Envoy Gateway 的安装
  • 后端服务和网关的部署
  • 使用 Gateway 和 HttpRoute API 配置路由规则

接下来可以探索更多高级功能:

  • HTTP 路由的高级配置
  • 流量拆分和蓝绿部署
  • 安全网关配置(TLS 终止)
  • 全局速率限制
  • gRPC 流量管理

环境清理

完成测试后,可以执行以下命令清理资源:

  1. 删除示例应用和路由配置:
kubectl delete -f https://github.com/envoyproxy/gateway/releases/download/latest/quickstart.yaml --ignore-not-found=true
  1. 卸载 Envoy Gateway:
helm uninstall eg -n envoy-gateway-system

总结

Envoy Gateway 通过标准的 Kubernetes Gateway API 提供了强大的流量管理能力。本快速入门展示了最基本的安装和使用流程,实际生产环境中您可以根据需求配置更复杂的路由规则、安全策略和监控方案。Envoy Gateway 的设计遵循云原生原则,是构建现代微服务架构的理想选择。

【免费下载链接】gateway Manages Envoy Proxy as a Standalone or Kubernetes-based Application Gateway 【免费下载链接】gateway 项目地址: https://gitcode.com/gh_mirrors/gate/gateway

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值