news 2026/5/6 2:22:29

使用 Cilium + Gateway API 替代 Nginx Ingress 的完整实施与验证指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用 Cilium + Gateway API 替代 Nginx Ingress 的完整实施与验证指南

最新北京时间1月30日,Kubernetes 指导委员会和安全响应委员会在 kubernetes.io 再次发出公告《Ingress NGINX: Statement from the Kubernetes Steering and Security Response Committees》,强调立即迁移 Ingress NGINX,并通过 CNCF 官方微信公众号 发布中文版公告。

英文版公告:https://kubernetes.io/blog/2026/01/29/ingress-nginx-statement/

一、环境信息:
Kubernetes:1.35.0
集群中 未安装 kube-proxy(或计划替换) 我的环境已经替换
集群节点间网络三层互通
Pod CIDR 已规划(示例使用 10.244.0.0/16)

二、为什么选择 Cilium + Gateway API
维度 Nginx Ingress Cilium + Gateway API
标准化 低(annotations) 高(K8s 原生 API)
数据面 iptables / userspace eBPF + Envoy
安全能力 L4 为主 L4 + L7 原生
可观测 插件化 Hubble 原生
官方趋势 维护 重点发展

三、安装 Cilium(kube-proxy replacement 模式)

3.1 安装 Cilium CLI

curl -L --fail --remote-name-all https://github.com/cilium/cilium-cli/releases/latest/download/cilium-linux-amd64.tar.gz sudo tar xzvf cilium-linux-amd64.tar.gz -C /usr/local/bin cilium version

3.2 安装 Cilium(v1.18.x 推荐)

cilium install \ --set kubeProxyReplacement=true \ --set ipam.mode=kubernetes \ --set routingMode=native \ --set autoDirectNodeRoutes=true \ --set ipam.operator.clusterPoolIPv4PodCIDRList=10.244.0.0/16 \ --set ipam.operator.clusterPoolIPv4MaskSize=24 \ --set ipv4NativeRoutingCIDR=10.244.0.0/16 \ --set hubble.enabled=true \ --set hubble.relay.enabled=true \ --set hubble.ui.enabled=true

3.3 验证 Cilium 状态
cilium status

root@ops-test-025:~# cilium status /¯¯\ /¯¯\__/¯¯\ Cilium: OK \__/¯¯\__/ Operator: OK /¯¯\__/¯¯\ Envoy DaemonSet: OK \__/¯¯\__/ Hubble Relay: OK \__/ ClusterMesh: disabled DaemonSet cilium Desired: 2, Ready: 2/2, Available: 2/2 DaemonSet cilium-envoy Desired: 2, Ready: 2/2, Available: 2/2 Deployment cilium-operator Desired: 1, Ready: 1/1, Available: 1/1 Deployment hubble-relay Desired: 1, Ready: 1/1, Available: 1/1 Deployment hubble-ui Desired: 1, Ready: 1/1, Available: 1/1 Containers: cilium Running: 2 cilium-envoy Running: 2 cilium-operator Running: 1 clustermesh-apiserver hubble-relay Running: 1 hubble-ui Running: 1 Cluster Pods: 4/4 managed by Cilium Helm chart version: 1.18.3 Image versions cilium quay.io/cilium/cilium:v1.18.3@sha256:5649db451c88d928ea585514746d50d91e6210801b300c897283ea319d68de15: 2 cilium-envoy quay.io/cilium/cilium-envoy:v1.34.10-1761014632-c360e8557eb41011dfb5210f8fb53fed6c0b3222@sha256:ca76eb4e9812d114c7f43215a742c00b8bf41200992af0d21b5561d46156fd15: 2 cilium-operator quay.io/cilium/operator-generic:v1.18.3@sha256:b5a0138e1a38e4437c5215257ff4e35373619501f4877dbaf92c89ecfad81797: 1 hubble-relay quay.io/cilium/hubble-relay:v1.18.3@sha256:e53e00c47fe4ffb9c086bad0c1c77f23cb968be4385881160683d9e15aa34dc3: 1 hubble-ui quay.io/cilium/hubble-ui-backend:v0.13.3@sha256:db1454e45dc39ca41fbf7cad31eec95d99e5b9949c39daaad0fa81ef29d56953: 1 hubble-ui quay.io/cilium/hubble-ui:v0.13.3@sha256:661d5de7050182d495c6497ff0b007a7a1e379648e60830dd68c4d78ae21761d: 1 root@ops-test-025:~#

关键检查项: - Cilium: OK - Operator: OK - Envoy DaemonSet: OK - Hubble Relay: OK

四、启用 Ingress Controller(为 Gateway API 打基础)
Gateway API 与 Ingress Controller 在 Cilium 1.18 中 解耦,需要显式开启。

cilium upgrade \ --set ingressController.enabled=true \ --set ingressController.default=true

验证:
kubectl get ingressclass

root@ops-test-025:~# kubectl get ingressclass NAME CONTROLLER PARAMETERS AGE cilium cilium.io/ingress-controller <none> 51m

五、安装 Gateway API CRD(官方标准)

kubectl apply -f \ https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.1.0/standard-install.yaml

验证:
kubectl get crd | grep gateway

root@ops-test-025:~# kubectl get crd | grep gateway gatewayclasses.gateway.networking.k8s.io 2026-02-02T08:52:00Z gateways.gateway.networking.k8s.io 2026-02-02T08:52:00Z grpcroutes.gateway.networking.k8s.io 2026-02-02T08:52:00Z httproutes.gateway.networking.k8s.io 2026-02-02T08:52:01Z referencegrants.gateway.networking.k8s.io 2026-02-02T08:52:01Z root@ops-test-025:~#

六、启用 Cilium Gateway API Controller(关键步骤)
cilium upgrade
–set gatewayAPI.enabled=true

验证 GatewayClass:
kubectl get gatewayclass

root@ops-test-025:~# kubectl get gatewayclass NAME CONTROLLER ACCEPTED AGE cilium io.cilium/gateway-controller Unknown 46m

期望看到:
cilium io.cilium/gateway-controller
注:ACCEPTED=Unknown 在 Cilium 1.18 属于正常现象,不影响使用。

七、创建 Gateway(入口边界)
7.1 创建 Gateway

apiVersion: gateway.networking.k8s.io/v1 kind: Gateway metadata: name: edge-gateway namespace: default spec: gatewayClassName: cilium listeners: - name: http protocol: HTTP port: 80

kubectl apply -f gateway.yaml

7.2 验证 Gateway 状态
kubectl get gateway

root@ops-test-025:~# kubectl get gateway NAME CLASS ADDRESS PROGRAMMED AGE edge-gateway cilium Unknown 38m

八、创建 HTTPRoute(业务路由)
假设已有 Service:demo-svc:80

apiVersion: gateway.networking.k8s.io/v1 kind: HTTPRoute metadata: name: demo-route spec: parentRefs: - name: edge-gateway rules: - matches: - path: type: PathPrefix value: / backendRefs: - name: demo-svc port: 80

kubectl apply -f httproute.yaml

九、流量入口
9.1查看 Gateway Service
kubectl get svc -n kube-system | grep gateway

9.2 访问验证
http://

十、安全加固(推荐)
10.1 只允许 Gateway 作为入口

apiVersion: cilium.io/v2 kind: CiliumNetworkPolicy metadata: name: only-from-gateway spec: endpointSelector: matchLabels: app: demo ingress: - fromEntities: - gateway toPorts: - ports: - port: "80" protocol: TCP

十一、可观测性验证(Hubble)
hubble observe --protocol http

十二、迁移建议(从 Nginx Ingress 到 Gateway API)
推荐迁移路径:

  1. 保留 Nginx Ingress(不新增)
  2. 新业务统一使用 Gateway API
  3. 存量 Ingress 逐步改写为 HTTPRoute
  4. 最终下线 Nginx Ingress Controller
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/6 15:11:00

零基础玩转BEYOND REALITY Z-Image:一键生成高清写实人像的秘诀

零基础玩转BEYOND REALITY Z-Image&#xff1a;一键生成高清写实人像的秘诀 1. 为什么普通人也能做出影楼级人像&#xff1f;——这台“AI人像打印机”不讲玄学 你有没有试过在AI绘图工具里输入“一位优雅的亚洲女性&#xff0c;柔焦背景&#xff0c;自然光”&#xff0c;结果生…

作者头像 李华
网站建设 2026/4/23 12:08:12

开箱即用!Qwen1.5-0.5B-Chat WebUI一键体验智能对话

开箱即用&#xff01;Qwen1.5-0.5B-Chat WebUI一键体验智能对话 【一键部署】Qwen1.5-0.5B-Chat 轻量级智能对话服务 镜像地址&#xff1a;https://ai.csdn.net/mirror/qwen15-05b-chat?utm_sourcemirror_blog_title 1. 为什么0.5B模型值得你花3分钟试试&#xff1f; 你有没…

作者头像 李华
网站建设 2026/4/18 2:22:23

YOLOv10官方镜像导出ONNX,端到端部署全流程

YOLOv10官方镜像导出ONNX&#xff0c;端到端部署全流程 在工业质检产线的实时视频流中&#xff0c;当一颗直径仅2.3毫米的芯片焊点出现微裂纹&#xff0c;传统检测模型还在等待NMS后处理完成时&#xff0c;YOLOv10已将带坐标的缺陷框、类别标签与置信度数值&#xff0c;以毫秒级…

作者头像 李华
网站建设 2026/5/2 12:42:03

8G显存也能玩!AnimateDiff写实风格视频生成实战教程

8G显存也能玩&#xff01;AnimateDiff写实风格视频生成实战教程 1. 为什么8G显存突然能做文生视频了&#xff1f; 你可能已经试过SVD、Pika或者Runway&#xff0c;但每次点下“生成”按钮前&#xff0c;都要先确认显存是否够用——24G&#xff1f;40G&#xff1f;甚至要租云G…

作者头像 李华
网站建设 2026/5/6 15:11:08

实测Phi-4-mini-reasoning:用Ollama快速搭建数学解题助手

实测Phi-4-mini-reasoning&#xff1a;用Ollama快速搭建数学解题助手 你有没有过这样的经历——看到一道数学题&#xff0c;思路卡在某个关键步骤&#xff0c;翻遍资料却找不到清晰的推导过程&#xff1f;或者正在辅导孩子作业&#xff0c;面对一道逻辑严密的代数题&#xff0…

作者头像 李华
网站建设 2026/5/1 16:26:48

小白也能懂:CTC算法实现移动端语音唤醒的完整教程

小白也能懂&#xff1a;CTC算法实现移动端语音唤醒的完整教程 你有没有想过&#xff0c;手机里那个轻轻一说“小云小云”就立刻响应的语音唤醒功能&#xff0c;背后到底怎么工作的&#xff1f;它既不按按钮、也不联网等待&#xff0c;几毫秒内就完成判断——这可不是魔法&…

作者头像 李华