Gateway API 支持

查看本文大纲

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 页面的通用和设置验证步骤。