Cilium 支持 Gateway API v1.1.0,包括以下资源,并且通过了所有核心一致性测试:
安装前提条件
- Cilium 必须配置 NodePort 启用,使用
nodePort.enabled=true
或启用kubeProxyReplacement=true
。 - Cilium 必须启用 L7 代理,使用
l7Proxy=true
(默认启用)。 - 必须预先安装 Gateway API v1.1.0 的以下 CRDs。具体安装步骤请参考此文档。
安装步骤
确保你安装了 Cilium CLI v0.15.0 或更高版本。使用 Cilium CLI 可以安装 Cilium,检查 Cilium 安装状态,并启用/禁用各种功能(如 clustermesh, Hubble)。
使用 Helm 可以启用 Cilium Gateway API Controller,设置 gatewayAPI.enabled
为 true。更新 Cilium 设置后,重新启动相关的部署和守护进程。
主机网络模式
从 Cilium 1.16+ 开始支持。主机网络模式允许你直接在主机网络上暴露 Cilium Gateway API Gateway。这在无法使用 LoadBalancer 服务的开发环境或其他环境中特别有用。
- 启用 Cilium Gateway API 主机网络模式会自动禁用 LoadBalancer 类型服务模式。这两种模式是互斥的。
- 可以通过 Helm 启用主机网络模式。
高级端口绑定
默认情况下,Cilium L7 Envoy 进程没有任何 Linux 权限,因此不允许监听特权端口(低于或等于 1023 的端口)。如果你选择了这样的端口,确保配置了 Helm 值 envoy.securityContext.capabilities.keepCapNetBindService=true
并添加 NET_BIND_SERVICE
权限。
示例和故障排除
你可以参考以下示例来使用和利用 Cilium 的 Gateway API 功能:
此外,如果你遇到任何问题,可以参考故障排除 Ingress & Service Mesh 页面的通用和设置验证步骤。