news 2026/7/5 3:00:32

Gateway API:Ingress 的下一代替代方案

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Gateway API:Ingress 的下一代替代方案

文章目录

    • 前言
      • 两者之间相比
    • 部署
      • 环境
      • 操作步骤
        • 部署
          • 安装 Gateway API CRD + Envoy Gateway
          • 安装metallb
          • 配 MetalLB 的 IP 池
          • 安装GatewayClass + Gateway
        • 示例
          • 创建httproute
          • 添加dns解析
          • 结果展示

前言

因为ingress在今年3 月就已经停止维护,后面不再发布新版本、修复漏洞或更新安全补丁。所以来写一下k8s官方推荐的ingress的下一代替代方案Gateway api

两者之间相比

对比项IngressGateway API
定位早期入口标准,已停止功能演进官方钦定的下一代标准
路由能力仅 host + path原生支持 header/query 匹配、流量权重、重定向、重写
高级功能依赖厂商 annotation,不可移植标准字段实现,跨实现通用
协议支持仅 HTTP/HTTPSHTTP、gRPC、TCP、TLS 多协议
权限模型单一资源,运维/开发职责混杂GatewayClass / Gateway / HTTPRoute 分层,角色分离,RBAC 更精细
灰度发布需 annotation 或多个 Ingress 拼凑原生支持按权重分流
跨 namespace本身不支持原生支持跨 namespace 路由
生态趋势Ingress NGINX 2026 年 3 月退役官方推荐迁移方向,服务网格也在统一

部署

环境

Ip主机名cpu内存
192.168.10.12master014c6G
192.168.10.13node14c6G
192.168.10.14node24c6G
192.168.10.100nfs2c2g
组件版本
UbuntuUbuntu 26.04 server
containerdv2 2.2.2
Kubernetesv1.36.1
victoria-metrics-k8s-stackv1.146.0

操作步骤

部署
安装 Gateway API CRD + Envoy Gateway
kubectl apply--server-side-f https://github.com/envoyproxy/gateway/releases/download/v1.8.2/install.yaml# 等待几分钟kubectl get crd|grep gateway.networking

安装metallb
kubectl apply-f https://raw.githubusercontent.com/metallb/metallb/v0.16.1/config/manifests/metallb-native.yaml
配 MetalLB 的 IP 池
cat<<EOF|kubectl apply-f-apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: name: default-pool namespace: metallb-system spec: addresses:-192.168.10.200-192.168.10.250---apiVersion: metallb.io/v1beta1 kind: L2Advertisement metadata: name: default namespace: metallb-system EOF
安装GatewayClass + Gateway
cat<<EOF|kubectl apply-f-apiVersion: gateway.networking.k8s.io/v1 kind: GatewayClass metadata: name: envoy spec: controllerName: gateway.envoyproxy.io/gatewayclass-controller---apiVersion: gateway.networking.k8s.io/v1 kind: Gateway metadata: name: main-gw namespace: monitoring spec: gatewayClassName: envoy listeners:-name: http protocol: HTTP port: 80 allowedRoutes: namespaces:from: All# 所有命名空间能挂路由EOF kubectl get gateway-n monitoring

PROGRAMMED如果为false是因为pod还没有running

示例

以本地部署的victoria-metrics-k8s-stack举例
链接: victoria-metrics-k8s-stack部署

victoria-metrics-k8s-stack里需要暴露的是 5 个:grafana(看板)、vmselect(vmui 查询)、vmalert(规则状态)、vmalertmanager(告警管理)、vmagent(抓取目标状态)。其他都是纯接口,不用暴露。

创建httproute
cat<<EOF|kubectl apply-f-apiVersion: gateway.networking.k8s.io/v1 kind: HTTPRoute metadata: name: grafana# httproute名称namespace: monitoring# httproute命名空间spec: parentRefs:-name: main-gw# gateway名称hostnames:["grafana.monitoring.sit.internal"]# 域名rules:-backendRefs:-name: vmks-grafana#svc名称port: 80#svc端口---apiVersion: gateway.networking.k8s.io/v1 kind: HTTPRoute metadata: name: vmui namespace: monitoring spec: parentRefs:-name: main-gw hostnames:["vmui.monitoring.sit.internal"]rules:-backendRefs:-name: vmselect-vmks-victoria-metrics-k8s-stack port: 8481---apiVersion: gateway.networking.k8s.io/v1 kind: HTTPRoute metadata: name: vmalert namespace: monitoring spec: parentRefs:-name: main-gw hostnames:["vmalert.monitoring.sit.internal"]rules:-backendRefs:-name: vmalert-vmks-victoria-metrics-k8s-stack port: 8080---apiVersion: gateway.networking.k8s.io/v1 kind: HTTPRoute metadata: name: alertmanager namespace: monitoring spec: parentRefs:-name: main-gw hostnames:["alertmanager.monitoring.sit.internal"]rules:-backendRefs:-name: vmalertmanager-vmks-victoria-metrics-k8s-stack port: 9093---apiVersion: gateway.networking.k8s.io/v1 kind: HTTPRoute metadata: name: vmagent namespace: monitoring spec: parentRefs:-name: main-gw hostnames:["vmagent.monitoring.sit.internal"]rules:-backendRefs:-name: vmagent-vmks-victoria-metrics-k8s-stack port: 8429 EOF

可以通过获取httproute来管理域名

kubectl get httproute-A

添加dns解析

win11 host路径

C:\Windows\System32\drivers\etc\hosts

在最后添加

192.168.10.200 grafana.monitoring.sit.internal vmui.monitoring.sit.internal vmalert.monitoring.sit.internal alertmanager.monitoring.sit.internal vmagent.monitoring.sit.internal

注:通过本地dns解析时需要把代理关闭,不然会访问不到

结果展示

grafana.monitoring.sit.internal

注;vmui有后缀
vmui.monitoring.sit.internal/select/0/vmui/

vmalert.monitoring.sit.internal

alertmanager.monitoring.sit.internal

vmagent.monitoring.sit.internal

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/5 2:59:25

GPT-5.6下周将发布!与Fable 5对比优势明显,OpenAI或趁机抢用户

1. GPT-5.6发布消息曝光GPT-5.6&#xff0c;将于下周发布&#xff1f;就在昨天&#xff0c;网友们激动发现&#xff0c;Codex应用的底层代码中惊现GPT-5.6 Sol、Terra和Luna三大子模型标识。同时&#xff0c;一个全新的「速度拨盘」功能也出现在代码中&#xff0c;这暗示着用户…

作者头像 李华
网站建设 2026/7/5 2:58:59

别错过机会!2026亲测好用的AI论文工具|实测避坑硬核版

2026 年学术写作工具已高度分化&#xff0c;千笔AI与ThouPen为全流程首选&#xff0c;豆包、DeepSeek 为专项强手&#xff1b;避坑关键&#xff1a;拒绝假文献、严控 AIGC 率、优先国内适配、免费试用先行。 一、TOP3 全流程首选&#xff08;亲测不踩雷&#xff09; 1. 千笔AI&…

作者头像 李华
网站建设 2026/7/5 2:57:00

Windows 安装 Claude Code 及配置 ccswitch 教程

1. 安装 Claude Code 在终端输入以下命令进行安装&#xff1a; winget install Anthropic.ClaudeCode注意&#xff1a;国内网络可能受限&#xff0c;如果遇到以下错误提示&#xff0c;需要开启网络代理后重试。 常见错误信息&#xff1a; An unexpected error occurred whil…

作者头像 李华
网站建设 2026/7/5 2:55:45

虚拟化技术深度解析:从底层原理到产业实践,读懂云计算的核心基石

在今天的云计算时代&#xff0c;我们随手创建的云服务器、一键部署的应用容器&#xff0c;背后都离不开虚拟化技术的支撑。它像一双隐形的手&#xff0c;将庞大的物理计算资源拆解、重组&#xff0c;变成灵活可调的逻辑单元&#xff0c;支撑起整个数字世界的高效运转。很多人对…

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

Free Claude Code:让你免费用上 Claude Code 的代理工具

文章目录Free Claude Code&#xff1a;让你免费用上 Claude Code 的代理工具这工具到底干啥&#xff1f;为什么这么火&#xff1f;1. 踩中了程序员的痛点2. 支持的 provider 多3. 安装简单&#xff0c;开箱即用实际用起来怎么样&#xff1f;适合谁用&#xff1f;我的看法Free C…

作者头像 李华