当前位置: 首页 > news >正文

k8s笔记之创建Istio Gateway规则

创建Istio Gateway

  • 背景
  • 如何创建Istio Gateway
  • 规则配置方式
    • rewrite重写路径
    • 直接去除match,默认都转发到一个服务
    • 路由规则多种配置方式实践(即开头的完整版)
  • 涉及的命令补充
  • 注意事项

背景

为什么需要使用到Istio Gateway?充当k8s服务访问的外部流量访问入口,类似nginx一样的作用

如何创建Istio Gateway

1、检查是否已开启istio-ingressgateway服务

servicemesh:
enabled: true # 将“false”更改为“true”。
istio: https://istio.io/latest/docs/setup/additional-setup/customize-installation/components:ingressGateways:- name: istio-ingressgateway enabled: true # 将“false”更改为“true”

2、创建yaml配置文件

touch nginx-gateway.yaml

3、输入配置内容

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:name: mygateway
spec:selector:istio: ingressgateway # use istio default ingress gatewayservers:- port:number: 80name: httpprotocol: HTTPhosts:- forecast.example.com
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:name: mygateway
spec:hosts:- forecast.example.comgateways:- mygatewayhttp:- match:- uri:prefix: "/nginx/"  # 新路径, prefix 前缀匹配, 满足 /p1 的都要被重写rewrite:uri: "/"    # 老路径route:- destination:host: nginx-79zn9d  # 对应service中的名称,具有负责均衡- match:- uri:prefix: "/tomcat/"  # 新路径, prefix 前缀匹配, 满足 /p1 的都要被重写rewrite:uri: "/"    # 老路径route:- destination:host: tomcat-5tl05n # 对应service中的名称,具有负责均衡- match:- uri:prefix: "/myapp1/"  rewrite:uri: "/"route:- destination:host: my-app1       # 对应service中的名称,具有负责均衡- match:- uri:prefix: "/myapp2/"  rewrite:uri: "/"route:- destination:host: my-app2        # 对应service中的名称,具有负责均衡

4、执行创建,会同时创建gateway和VirtualService

kubectl apply -f nginx-gateway.yaml --namespace=project-demo

5、确定Istio入口ip和port (负载均衡器)

kubectl get svc istio-ingressgateway -n istio-system

6、最后客户端访问前,进行客户端host配置

ip【服务器 istio-ingressgateway的ip】 forecast.example.com

7、更新gateway,先导出->再修改->最后更新

kubectl get gw mygateway  -o yaml -n project-demo > /home/k8s/gateway-update.yaml
kubectl apply -f gateway-update.yaml

8、更新virtualservice

kubectl get virtualservice mygateway  -o yaml -n project-demo > /home/k8s/gatewaySvc-update.yaml
kubectl apply -f gatewaySvc-update.yaml

规则配置方式

rewrite重写路径

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:name: mygateway
spec:selector:istio: ingressgateway # use istio default ingress gatewayservers:- port:number: 80name: httpprotocol: HTTPhosts:- forecast.example.com
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:name: mygateway
spec:hosts:- forecast.example.comgateways:- mygatewayhttp:- match:- uri:prefix: "/nginx/"  # 新路径, prefix 前缀匹配, 满足 /p1 的都要被重写rewrite:uri: "/"    # 老路径route:- destination:host: nginx-79zn9d

直接去除match,默认都转发到一个服务

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:name: mygateway
spec:selector:istio: ingressgateway # use istio default ingress gatewayservers:- port:number: 80name: httpprotocol: HTTPhosts:- forecast.example.com
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:name: mygateway
spec:hosts:- forecast.example.comgateways:- mygatewayhttp:- route:- destination:host: nginx-79zn9d

路由规则多种配置方式实践(即开头的完整版)

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:name: mygateway
spec:selector:istio: ingressgateway # use istio default ingress gatewayservers:- port:number: 80name: httpprotocol: HTTPhosts:- forecast.example.com
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:name: mygateway
spec:hosts:- forecast.example.comgateways:- mygatewayhttp:- match:- uri:prefix: "/nginx/"  # 新路径, prefix 前缀匹配, 满足 /p1 的都要被重写rewrite:uri: "/"    # 老路径route:- destination:host: nginx-79zn9d  # 对应service中的名称,具有负责均衡- match:- uri:prefix: "/tomcat/"  # 新路径, prefix 前缀匹配, 满足 /p1 的都要被重写rewrite:uri: "/"    # 老路径route:- destination:host: tomcat-5tl05n # 对应service中的名称,具有负责均衡- match:- uri:prefix: "/myapp1/"  rewrite:uri: "/"route:- destination:host: my-app1       # 对应service中的名称,具有负责均衡- match:- uri:prefix: "/myapp2/"  rewrite:uri: "/"route:- destination:host: my-app2        # 对应service中的名称,具有负责均衡

涉及的命令补充

#networking.istio.io版本
kubectl api-versions | grep networking.istio.io#确定Istio入口ip和port (负载均衡器)
kubectl get svc istio-ingressgateway -n istio-system#检查有没有在相同的 IP和端口上定义 Kubernetes Ingress 资源
kubectl get ingress --all-namespaces#检查有没有在相同的端口上定义其它 Istio Ingress Gateway
kubectl get gateway --all-namespaces# 查看网关
kubectl get gw -A# 删除网关
-- kubectl delete gw my-gateway -n project-demo# 查看路由规则
kubectl get virtualservices my-VirtualService -n project-demo -o yaml# 删除virtualservice
kubectl delete virtualservice nginx-79zn9d -n project-demo# 更新gateway
kubectl get gw mygateway  -o yaml -n project-demo > /home/k8s/gateway-update.yaml
kubectl apply -f gateway-update.yaml# 更新virtualservice
kubectl get virtualservice mygateway  -o yaml -n project-demo > /home/k8s/gatewaySvc-update.yaml
kubectl apply -f gatewaySvc-update.yaml

注意事项

  • VirtualService中的metadata.name需要跟Gateway中的metadata.name一致

相关文章:

k8s笔记之创建Istio Gateway规则

创建Istio Gateway 背景如何创建Istio Gateway规则配置方式rewrite重写路径直接去除match,默认都转发到一个服务路由规则多种配置方式实践(即开头的完整版) 涉及的命令补充注意事项 背景 为什么需要使用到Istio Gateway?充当k8s服…...

NAND行业回归盈利:AI与云存储需求驱动

市场概览 根据Yole Group于2024年6月25日发布的市场报告,经过五个季度的亏损之后,NAND闪存行业在2024年第一季度(1Q24)实现了盈利回归。这一转变主要得益于企业级固态硬盘(SSD)领域的强劲需求增长&#xf…...

【限免】频控阵雷达:概念、原理与应用【附MATLAB代码】

​微信公众号:EW Frontier QQ交流群:949444104 主要内容 PDA、FDA MATLAB代码 %---------------------------------------- %功能:FDA和相控阵天线方向图 %版本:ver1.0 %时间:2017.11.1 %--------------------------------------- clear all; clc; disp…...

从0开始搭建vue + flask 旅游景点数据分析系统( 六):搭建后端flask框架

这一期开始开发header部分,预期实现两个目标: 创建 Flask 项目导入旅游数据后端实现旅游数据的查询 1 python 环境 & 开发环境 python 安装和pycharm安装需要去网上找包,建议python使用3.8 或者3.9版本 2 新建项目 我们新建一个文件…...

学习硬件测试04:触摸按键+PWM 驱动蜂鸣器+数码管(P62~P67、P71、P72)

一、触摸按键 1.1理论讲解 1.1.1实验现象 触摸按键 1 单击与长按,控制 LED1;触摸按键 2 单击与长按,控制 LED2;触摸按键 3 单击与长按,控制 LED3;触摸按键 4 单击与长按,控制继电器; 1.1.2硬件电路 是原理图上触摸…...

JS原型链

JS的原型链 文章目录 JS的原型链前言一、原型是什么?二、原型链总结 前言 在使用数组或对象中的方法时,你是不是会感觉很奇怪,为什么仅仅是创建了一个数组或是对象,就能够使用它提供的方法呢?JS是怎么做到的呢&#x…...

《Java初阶数据结构》----5.<二叉树的概念及使用>

前言 大家好,我目前在学习java。之前也学了一段时间,但是没有发布博客。时间过的真的很快。我会利用好这个暑假,来复习之前学过的内容,并整理好之前写过的博客进行发布。如果博客中有错误或者没有读懂的地方。热烈欢迎大家在评论区…...

git查看记录详解

文章目录 git查看记录查看文件修改列表查看修改差异友好的查看修改记录结合多个选项查看记录示例输出 git查看记录 使用 git log 你不仅可以查看提交记录,还可以通过一些选项查看文件的修改列表、修改差异,并以更友好的方式查看修改记录。以下是一些常用…...

检索增强生成RAG系列10--RAG的实际案例

讲了很多理论,最后来一篇实践作为结尾。本次案例根据阿里云的博金大模型挑战赛的题目以及数据集做一次实践。 完整代码地址:https://github.com/forever1986/finrag.git 本次实践代码有参考:https://github.com/Tongyi-EconML/FinQwen/ 目录 …...

程序员自我提升的全面指南

程序员自我提升的全面指南 1. 技术基础巩固重要性实践方法 2. 技术栈拓展重要性实践方法 3. 软技能提升重要性实践方法 4. 实践与项目经验重要性实践方法 5. 持续学习与职业规划重要性实践方法 6. 代码质量与优化重要性实践方法 7. 思维与创新能力重要性实践方法 8. 健康与心理…...

【golang】Golang手写元组 tuple | golang tuple

Golang手写元组 tuple 1、源码 如下: package tupletype Tuple[T any, U any] struct {First TSecond U }// zip combines elements of two slices into a slice of pairs (tuples), which is useful for combining related data. func Zip[T any, U any](slice…...

golang中struct的tag -简记

今天 简单整理一下,关于golang中struct的tag type User struct {UId int gorm:"column:uid;type:bigint;unique_index;not null;comment:用户id"Name string json:"name"Age int bson:"age"From string binding:"requi…...

分布式领域扩展点设计稿

分布式领域扩展点设计稿 背景坐标设计理念设计图Quick Start相关组件 背景 随着交易业务和基础知识的沉淀,愈发觉得扩展点可以在大型交易分布式架构中可以做更多的事情。 经过一个月的思考,决定将 单点领域扩展点(savior-ext) 从…...

玩转微信公众号变现:从新手到专家的全攻略

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] &#x1f4f1…...

JVM: 方法调用

文章目录 一、介绍二、方法调用的原理1、静态绑定2、动态绑定(1)介绍(2)原理 一、介绍 在JVM中,一共有五个字节码指令可以执行方法调用: invokestatic: 调用静态方法。invokespecial:调用对象…...

测试面试宝典(四十一)—— 接口自动化的优缺点

接口自动化测试的优点: 1. 提高测试效率:能够快速执行大量的测试用例,节省了手动测试重复执行的时间和人力成本。 2. 尽早发现问题:可以在软件开发的早期阶段介入,有助于及时发现接口层面的缺陷,降低修复…...

“火炬科企对接”先进计算产业推进会 | 麒麟信安受邀参加,并签署开源生态合作协议

7月30日,“火炬科企对接”先进计算产业推进会在长沙隆重召开。大会由工业和信息化部火炬高技术产业开发中心、湖南省科学技术厅、湖南省工业和信息化厅、湖南湘江新区管理委员会、中国邮政储蓄银行联合举办。麒麟信安与来自国内先进计算领域的专家学者,2…...

中文网址导航模版HaoWa1.3.1/模版网站wordpress导航主题

HaoWa v1.3.1由挖主题开发的一款网址导航类主题。 HaoWA主题除主体导航列表外,对主题所需的小模块都进行了开放式的HTML编辑器形式的功能配置,同时预留出默认的代码结构,方便大家在现有的代码结构上进行功能调整。 同时加入了字体图标Font …...

图欧学习资源网创站以来的更新日志(截止至2022.5.6)不完全统计

一、网站创立和初步发展 2021年10月28日创建【TUO图欧视频备份站】,当时只有【单词视频】文件夹. 小学、初中、高中、大学、四六级、专四、专八、专升本、考研、考博、托福、雅思、托业、GRE、SAT、GMAT、MBA、新概念等 数量:500个文件,60个…...

现代前端架构介绍(第二部分):如何将功能架构分为三层

远离JavaScript疲劳和框架大战,了解真正重要的东西 在这个系列的前一部分 《App是如何由不同的构建块构成的》中,我们揭示了现代Web应用是由不同的构建块组成的,每个构建块都承担着特定的角色,如核心、功能等。在这篇文章中&#…...

LeetCode Easy|【21. 合并两个有序链表】

力扣题目链接 状态:拿到本题的第一反应就是使用双指针,分别指向两个链表的开头位置。 随后的思路就是以第一条链表为基准完成插入,并且对于遍历到的每个节点都应该保存其状态。 写了一下代码后发现,我们应该以第一个节点较小的链表…...

大模型的架构参数是指定义模型基本结构和组成的各种参数,这些参数对模型的性能、训练效率和泛化能力具有重要影响。以下是对大模型架构参数的详细介绍

大模型架构参数 大模型的架构参数是指定义模型基本结构和组成的各种参数,这些参数对模型的性能、训练效率和泛化能力具有重要影响。以下是对大模型架构参数的详细介绍: 一、基本结构和组成 层数:模型的层数是指模型中全连接网络或特定结构…...

人工智能会越来越闭源——对话东北大学副教授王言治 | Open AGI Forum

作者 | Annie Xu 责编、采访 | Echo Tang 出品丨GOSIM 开源创新汇 在读期间研究方向为并不“火”的模式识别与深度学习,毕业却刚好踩上人工智能计算研究的风口……来自美国东北大学的王言治副教授深耕深度学习与大模型,前瞻性地探索大模型的本地化部署…...

【前端】(仅思路)如何在前端实现一个fc手柄,将手机作为游戏手柄设备。

文章目录 背景界面demo原型图(没错,就是它,童年回忆) 遇到的问题最终后端demo(甚至比前端逻辑更简单) 背景 突发奇想,想要在前端实现一个fc游戏手柄,然后控制电脑的nes模拟器玩玩魂斗罗。 思路很简单&…...

三十种未授权访问漏洞合集

未授权访问漏洞介绍 未授权访问可以理解为需要安全配置或权限认证的地址、授权页面存在缺陷,导致其他用户可以直接访问,从而引发重要权限可被操作、数据库、网站目录等敏感信息泄露。---->目录遍历 目前主要存在未授权访问漏洞的有:NFS服务&a…...

【Golang 面试 - 进阶题】每日 3 题(十五)

✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/UWz06 📚专栏简介:在这个专栏中,我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏…...

Java中实现文件上传

目录 1、文件上传本地 1.1 原理 1.2 如何使用文件上传 1.2.1 引入文件上传的依赖 1.2.2 配置文件上传拦截器 1.2.3 完成文件上传的代码 2、文件上传oss服务器 2.1 为什么需要上传到oss服务器 2.2 如何使用oss 2.2.1 开启oss服务 2.2.2 在Java中引入依赖 2.2.3 查看自…...

一种别样的Unicode Python编码方式,完美转换表情和阿拉伯语

我们可能有时候在处理字符时需要处理到非ASCII的字符,比如将表情、阿拉伯语转换为Unicode字符,从而避免在传输时会出现乱码的情况。 Unicode验证网站: unicode转换网站 目的:转换下面除ASCII字符外的字符为Unicode字符&#x1f…...

小白的晋升之路

编程小白如何成为大神?大学新生的最佳入门攻略 编程已成为当代大学生的必备技能,但面对众多编程语言和学习资源,新生们常常感到迷茫。如何选择适合自己的编程语言?如何制定有效的学习计划?如何避免常见的学习陷阱&…...

WebLogic:CVE-2017-10271[XML反序列化]

漏洞成因 Weblogic的WLS Security组件对外提供 webservice服务 其中使用了XMLDecoder来 解析用户传入的XML数据 在解析的过程中出现 反序列化漏洞 ,导致可执行任意命令 原理:https://xz.aliyun.com/t/10172 靶场部署 1.进入靶场目录 cd /vulhub-maste…...

电脑版 做网站尺寸/最新新闻热点事件2024

USB(Universal Serial BUS,通用串行总线)协议规定,所有的USB设备都有VID(Vendor ID,供应商识别码)和PID(Product ID,产品识别码)。VID由供应商向USB-IF&#…...

wordpress软件分享/网址域名ip查询

/*查询思路分析: 1 首先是查询一年级,班级表.2 关联学生表的字段,需要查询女神的信息。就写代表性别的字段 sex,用and 查询 3 where条件查询,去实现性别的查询. 用NJID字段去代表了班级表中的几年级 */--查询一年级 …...

做网站的职位叫什么/百度 官网

作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ public class DynamicParameters {public static void main(String[] args) {add(1,2,3);add(1,2,3,4);}public static void add(int... arr) {//支持可变数目的参数,实际就是一个数组&…...

卖衣服的网站排名/网络营销的产品策略

你可以使用多种绘图程序创建 SVG 图像,包括开源的 Inkscape 和 Adobe Illustrator。让你的图像“能动起来”需要更多的努力。幸运的是,有一些开源解决方案甚至可以引起 Belshazzar 的注意。-- Jeff Macharyas(作者)开源 SVG&#…...

图片展示型网站模板/今日新闻摘抄十条

1.背景图透明化 opacity:0.5; //导致页面上的内容也被透明化 background:rgba(33,33,33,0.5); //透过rgba提供的透明特性则不存在这个问题...

用rp怎么做网站按钮下拉菜单/室内设计培训

介绍 QComboBox是常用的下拉列表框。 方法 方法描述addItem()添加一个下拉项addItems()从列表中添加下拉选项Clear()删除下拉选项集合中的所有选项count()返回下拉选项集合中的数量currentText()返回选中选项的文本itemText(i)获取索引为i的item的选项文本currentIndex()返回…...