kubernetes Gateway API-1-部署和基础配置
文章目录
- 1 部署
- 2 最简单的 Gateway
- 3 基于主机名和请求头
- 4 重定向 Redirects
- 4.1 HTTP-to-HTTPS 重定向
- 4.2 路径重定向
- 4.2.1 ReplaceFullPath 替换完整路径
- 4.2.2 ReplacePrefixMatch 替换路径前缀
- 5 重写 Rewrites
- 5.1 重写 主机名
- 5.2 重写 路径
- 5.2.1 重新完整路径
- 5.2.1 重新部分路径(去除路径前缀)
- 6 HTTP Header 修饰符
- 6.1 HTTP Request Header Modifier
- 6.2 HTTP Response Header Modifier
- 7 HTTP流量拆分
- 7.1 指南示例
- 7.1.1 金丝雀流量发布
- 7.1.2 蓝绿流量发布
- 7.1.3 完成发布
- 8 请求镜像
1 部署
kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.2.0/standard-install.yaml
2 最简单的 Gateway
最简单的部署是由同一所有者一起部署的网关和路由资源。这代表了用于Ingress的类似模型。在本指南中,部署了一个网关和HTTPRoute,它们匹配所有HTTP流量,并将其定向到一个名为foo-svc的服务。

图片来自官方文档:https://gateway-api.sigs.k8s.io/guides/simple-gateway/
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:name: prod-web
spec:gatewayClassName: examplelisteners:- protocol: HTTPport: 80name: prod-web-gwallowedRoutes:namespaces:from: Same
3 基于主机名和请求头
HTTPRoute资源允许您匹配HTTP流量并将其定向到Kubernetes后端。本指南展示了HTTPRoute如何匹配主机、标头和路径字段上的流量,并将其转发到不同的Kubernetes服务。
下图描述了三种不同服务之间所需的流量:
-
foo.example.com/login的流量被转发到foo-svc -
请求头中带有
env:canary的bar.example.com/*流量被转发到bar-svc-canary -
请求头部不带
env:canary的bar.example.com/*流量被转发到bar-svc

图片来源-https://gateway-api.sigs.k8s.io/guides/http-routing/
为了从网关接收流量,必须使用 ParentRefs 配置 HTTPRoute 资源,ParentRefs引用它应该连接到的父网关。以下示例显示了如何配置 Gateway 和 HTTPRoute 的组合来服务HTTP流量:
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:name: example-gateway
spec:gatewayClassName: example-gateway-classlisteners:- name: httpprotocol: HTTPport: 80
---
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:name: example-route
spec:parentRefs:- name: example-gatewayhostnames:- "example.com"rules:- backendRefs:- name: example-svcport: 80
HTTPRoute可以与一组主机名匹配。在HTTPRoute中进行任何其他匹配之前,先匹配这些主机名。由于 foo.example.com 和 bar.example.com 是具有不同路由要求的独立主机,因此每个主机需要分别配置并创建自己的 HTTPRoute: foo-route 和 bar-route。
以下 foo-route 将匹配 foo.example.com 的任何流量,并应用其路由规则将流量转发到正确的后端。由于只指定了一个匹配项,因此只会转发foo.example.com/login/* 的流量。不以 /login 开头的任何其他路径的流量都不会与此路由匹配。
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:name: foo-route
spec:parentRefs:- name: example-gatewayhostnames:- "foo.example.com"rules:- matches:- path:type: PathPrefixvalue: /loginbackendRefs:- name: foo-svcport: 8080
同样,bar-route HTTPRoute与 bar.example.com 的流量相匹配。此主机名的所有流量都将根据路由规则进行评估。最具体的匹配将优先,这意味着任何带有 env:canary 标头的流量都将被转发到 bar-svc-canary,如果标头丢失或不是 canary,则将被转发给 bar-svc。
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:name: bar-route
spec:parentRefs:- name: example-gatewayhostnames:- "bar.example.com"rules:- matches:- headers:- type: Exact # 精确匹配name: envvalue: canarybackendRefs:- name: bar-svc-canaryport: 8080####################################- backendRefs: # 这个相当于默认的后端服务了- name: bar-svcport: 8080
4 重定向 Redirects
重定向是代理端返回给客户端修改后的,新的请求地址,让客户端用这个新的请求地址重新发送请求给代理端。
重定向向客户端返回HTTP 3XX响应,指示其检索其他资源。RequestRedirect规则筛选器指示网关对与筛选的HTTPRoute规则匹配的请求发出重定向响应。
重定向过滤器可以独立替换各种URL组件。例如,要发出从HTTP到HTTPS的永久重定向(301),请配置
requestRedirect.statusCode=301 和 requestRedirect.schem="HTTPS":
apiVersion相关文章:
kubernetes Gateway API-1-部署和基础配置
文章目录 1 部署2 最简单的 Gateway3 基于主机名和请求头4 重定向 Redirects4.1 HTTP-to-HTTPS 重定向4.2 路径重定向4.2.1 ReplaceFullPath 替换完整路径4.2.2 ReplacePrefixMatch 替换路径前缀5 重写 Rewrites5.1 重写 主机名5.2 重写 路径5.2.1 重新完整路径5.2.1 重新部分路…...
likeAdmin架构部署(踩坑后的部署流程
1、gitee下载 https://gitee.com/likeadmin/likeadmin_java.git 自己克隆 2、项目注意 Maven:>3.8 ❤️.9 (最好不要3.9已经试过失败 node :node14 (不能是18 已经测试过包打不上去使用14的换源即可 JDK:JDK8 node 需要换源 npm c…...
【一款超好用的开源笔记Logseq本地Docker部署与远程使用指南】
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
浅谈torch.utils.data.TensorDataset和torch.utils.data.DataLoader
1.torch.utils.data.TensorDataset 功能定位 torch.utils.data.TensorDataset 是一个将多个张量(Tensor)数据进行简单包装整合的数据集类,它主要的作用是将相关联的数据(比如特征数据和对应的标签数据等)组合在一起&…...
gesp(C++二级)(16)洛谷:B4037:[GESP202409 二级] 小杨的 N 字矩阵
gesp(C++二级)(16)洛谷:B4037:[GESP202409 二级] 小杨的 N 字矩阵 题目描述 小杨想要构造一个 m m m \times m m...
FFmpeg:详细安装教程与环境配置指南
FFmpeg 部署完整教程 在本篇博客中,我们将详细介绍如何下载并安装 FFmpeg,并将其添加到系统的环境变量中,以便在终端或命令行工具中直接调用。无论你是新手还是有一定基础的用户,这篇教程都能帮助你轻松完成 FFmpeg 的部署。 一、…...
《特征工程:自动化浪潮下的坚守与变革》
在机器学习的广阔天地中,特征工程一直占据着举足轻重的地位。它宛如一位幕后的工匠,精心雕琢着原始数据,将其转化为能够被机器学习模型高效利用的特征,从而推动模型性能迈向新的高度。然而,随着技术的飞速发展…...
webrtc 源码阅读 make_ref_counted模板函数用法
目录 1. 模板参数解析 1.1 typename T 1.2 typename... Args 1.3 typename std::enable_if::value, T>::type* nullptr 2. scoped_refptr 3. new RefCountedObject(std::forward(args)...); 4. 综合说明 5.在webrtc中的用法 5.1 peerConnectionFactory对象的构建过…...
【深度学习基础之多尺度特征提取】特征金字塔(Feature Pyramid)是如何在深度学习网络中提取多尺度特征的?附代码
【深度学习基础之多尺度特征提取】特征金字塔(Feature Pyramid)是如何在深度学习网络中提取多尺度特征的?附代码 【深度学习基础之多尺度特征提取】特征金字塔(Feature Pyramid)是如何在深度学习网络中提取多尺度特征…...
【Docker】离线安装 Docker
离线安装 Docker 在CentOS系统上安装Docker 1、下载 Docker 仓库文件 https://download.docker.com/linux/centos/docker-ce.repo 2、添加 Docker 仓库文件 将上一步下载的文件,移动到 /etc/yum.repos.d/ 目录 3、清除 YUM 缓存 sudo yum clean all sudo yum…...
三大行业案例:AI大模型+Agent实践全景
本文将从AI Agent和大模型的发展背景切入,结合51Talk、哈啰出行以及B站三个各具特色的行业案例,带你一窥事件驱动架构、RAG技术、人机协作流程,以及一整套行之有效的实操方法。具体包含内容有:51Talk如何让智能客服“主动进攻”&a…...
Dockerfile基础指令
1.FROM 基于基准镜像(建议使用官方提供的镜像作为基准镜像,相对安全一些) 举例: 制作基准镜像(基于centos:lastest) FROM cenots 不依赖于任何基准镜像 FROM scratch 依赖于9.0.22版本的tomcat镜像 FROM…...
12.30 linux 文件操作,磁盘分区挂载
ubuntu 在linux 对文件的相关操作【压缩,打包,软链接,文件权限】【head,tail,管道符,通配符,find,grep,cut等】脑图-CSDN博客 1.文件操作 在家目录下创建目录文件&#…...
[图形渲染]【Unity Shader】【游戏开发】 Shader数学基础17-法线变换基础与应用
在计算机图形学中,法线(normal) 是表示表面方向的向量。它在光照、阴影、碰撞检测等领域有着重要作用。本文将介绍如何在模型变换过程中正确变换法线,确保其在光照计算中的正确性,特别是法线与顶点的变换问题。 1. 法线与切线的基本概念 法线(Normal Vector) 法线(或…...
YOLOv9-0.1部分代码阅读笔记-train.py
train.py train.py 目录 train.py 1.所需的库和模块 2.def train(hyp, opt, device, callbacks): 3.def parse_opt(knownFalse): 4.def main(opt, callbacksCallbacks()): 5.def run(**kwargs): 6.if __name__ "__main__": 1.所需的库和模块 import …...
等保测评和密评的相关性和区别
等保测评和密评在网络安全领域均扮演着至关重要的角色,它们之间既存在相关性,又各具特色。 以下是对两者相关性和区别的详细阐述:相关性 1.法律基础:等保测评和密评都是依据国家相关法律法规开展的活动。 等保测评主要依据《网…...
活动预告 |【Part2】 Azure 在线技术公开课:迁移和保护 Windows Server 和 SQL Server 工作负载
课程介绍 通过 Microsoft Learn 免费参加 Microsoft Azure 在线技术公开课,掌握创造新机遇所需的技能,加快对 Microsoft 云技术的了解。参加我们举办的“迁移和保护 Windows Server 和 SQL Server 工作负载”活动,了解 Azure 如何为将工作负载…...
大语言模型(LLM)一般训练过程
大语言模型(LLM)一般训练过程 数据收集与预处理 收集:从多种来源收集海量文本数据,如互联网的新闻文章、博客、论坛,以及书籍、学术论文、社交媒体等,以涵盖丰富的语言表达和知识领域。例如,训练一个通用型的LLM时,可能会收集数十亿甚至上百亿字的文本数据.清洗:去除…...
单片机的基本组成
单片机,即单芯片微型计算机(Single-Chip Microcomputer),是一种将中央处理器(CPU)、内存、输入输出接口等功能集成在一块集成电路芯片上的微型计算机。它具有体积小、成本低、可靠性高、功耗低等优点,在现代电子产品中…...
GO性能优化的一些记录:trace工具的使用
使用场景: 1 想要查看接口延时性偏高 2 深入了解协程具体如何运营的详细信息(运行时长,或者什么原因导致了协程运行受阻) 可以使用 trace 功能,程序便会对下面的一系列事件进行详细记录,并且会依据所搜集到…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...
SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...
JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP
编辑-虚拟网络编辑器-更改设置 选择桥接模式,然后找到相应的网卡(可以查看自己本机的网络连接) windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置,选择刚才配置的桥接模式 静态ip设置: 我用的ubuntu24桌…...
深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...
基于PHP的连锁酒店管理系统
有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...
HubSpot推出与ChatGPT的深度集成引发兴奋与担忧
上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...
