Envoy Gateway Helm安装与配置完全指南
前言
Envoy Gateway作为云原生环境下的高性能API网关,采用Helm方式部署可以极大简化在Kubernetes集群中的安装和管理流程。本文将详细介绍如何使用Helm chart安装和配置Envoy Gateway,包含基础安装、高级定制以及关键配置说明。
核心概念解析
Helm与Envoy Gateway的关系
Helm是Kubernetes的包管理工具,而Envoy Gateway的Helm chart则封装了所有必要的Kubernetes资源定义,包括:
- 控制器Deployment
- 服务Account和RBAC配置
- 自定义资源定义(CRD)
- 服务暴露配置
版本兼容性矩阵
不同版本的Envoy Gateway Helm chart对Kubernetes和Gateway API有特定要求,建议在安装前确认:
- Kubernetes集群版本
- Gateway API CRD版本
- Envoy Proxy兼容版本
基础安装流程
前置准备
- 确保已安装Helm 3.0+
- 准备Kubernetes集群(生产环境建议至少3节点)
- 配置kubectl访问集群的权限
安装步骤分解
- 安装CRD和核心组件
helm install eg oci://docker.io/envoyproxy/gateway-helm \
--version v1.1.0 \
-n envoy-gateway-system \
--create-namespace
- 验证部署状态
kubectl wait --timeout=5m -n envoy-gateway-system \
deployment/envoy-gateway --for=condition=Available
- 部署示例应用
kubectl apply -f quickstart.yaml -n default
高级配置指南
副本数扩展配置
对于生产环境,建议至少配置2个副本确保高可用:
helm upgrade eg --set deployment.replicas=2
自定义集群域名
当使用非默认集群域名时:
helm upgrade eg --set kubernetesClusterDomain=mycluster.local
通过values.yaml深度定制
示例配置片段:
deployment:
resources:
limits:
cpu: "2"
memory: 2Gi
nodeSelector:
node-role: gateway
config:
envoyGateway:
logging:
level:
default: info
应用配置:
helm upgrade eg -f custom-values.yaml
关键端口说明
控制平面端口
| 服务类型 | 默认端口 | 可配置性 | 安全建议 | |-------------------|----------|----------|-----------------| | XDS服务 | 18000 | 否 | 需网络策略保护 | | 速率限制服务 | 18001 | 否 | 内部通信加密 | | 管理接口 | 19000 | 是 | 限制访问源IP |
数据平面端口
| 功能 | 默认端口 | 协议 | |-------------------|----------|---------| | HTTP流量 | 80 | TCP | | HTTPS流量 | 443 | TLS | | 健康检查 | 19001 | HTTP |
生产环境建议
- 资源配额:至少分配1CPU和512Mi内存给控制平面
- 节点亲和性:将网关Pod调度到专用节点
- 网络策略:限制管理端口的访问范围
- 监控集成:配置Prometheus抓取指标数据
排错技巧
- 查看日志:
kubectl logs -n envoy-gateway-system deploy/envoy-gateway
- 检查CRD状态:
kubectl get crd gateways.gateway.networking.k8s.io
- 验证网络连通性:
kubectl exec -it pod/eg-example -c envoy -- curl localhost:19000/ready
后续学习路径
掌握基础安装后,建议进一步探索:
- 多集群部署模式
- 自定义EnvoyFilter配置
- 与服务网格的集成方案
- 基于WASM的扩展开发
通过Helm管理Envoy Gateway可以实现版本可控、配置即代码的现代化部署方式,是生产环境的最佳实践。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考