Istio Gateway发布服务
1. Istio Gateway发布服务
在集群中部署一个 tomcat 应用程序。然后将部署一个 Gateway 资源和一个与 Gateway 绑定的 VirtualService,以便在外部 IP 地址上公开该应用程序。
1.1 部署 Gateway 资源
vim ingressgateway.yaml
---
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:name: ingressgateway80
spec:selector:istio: ingressgatewayservers:- port:number: 80name: httpprotocol: HTTPhosts:- '*'
把 hosts 字段设置为 *,可以直接从外部 IP 地址访问入口网关。
1.2 部署Tomcat 应用
拉取所需的镜像:
docker pull tomcat:latest
docker save tomcat:latest -o tomcat-latest.img
docker load < tomcat-latest.img
部署tomcat
vim tomcat.yaml
---
apiVersion: apps/v1
kind: Deployment
metadata:creationTimestamp: nulllabels:app: tomcatname: tomcat
spec:replicas: 1selector:matchLabels:app: tomcatstrategy: {}template:metadata:creationTimestamp: nulllabels:app: tomcatspec:containers:- image: tomcat:latestimagePullPolicy: IfNotPresentname: tomcatports:- containerPort: 8080resources: {}
status: {}
kubectl apply -f tomcat.yaml

deployment创建成功,并且有两个容器在运行。一个是 Envoy sidecar 代理,第二个是应用程序tomcat。如下:

1.3 部署Tomcat service
vim tomcat.yaml
---
apiVersion: v1
kind: Service
metadata:creationTimestamp: nulllabels:app: tomcatname: tomcat
spec:ports:- port: 80name: tcpprotocol: TCPtargetPort: 8080selector:app: tomcat
status:loadBalancer: {}
创建service
kubectl apply -f service.yaml

1.4 部署VirtualService
为 tomcat 服务创建一个 VirtualService,并将其绑定到 Gateway 资源上
vim virtualservice.yaml
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:name: virtualservice
spec:hosts:- "*"gateways:- ingressgatewayhttp:- route:- destination:host: tomcat.default.svc.cluster.localport:number: 80
创建virtualservice
kubectl apply -f virtualservice.yaml

在 hosts 字段中使用 *,就像我们在 Gateway 中做的那样。我们还将之前创建的 Gateway 资源(gateway)添加到 gateways 数组中。最后,我们指定了一个目的地为 Kubernetes 服务 tomcat.default.svc.cluster.local 的单一路由。
kubectl get svc -l istio=ingressgateway -n istio-system

如果 EXTERNAL-IP 有值(IP 地址或主机名),则说明环境具有可用于 Ingress 网关的外部负载均衡器。如果 EXTERNAL-IP 值是 (或一直是 ),则说明的环境并没有为 Ingress 网关提供外部负载均衡器的功能。
可以通过以下方法添加外部IP
kubectl edit service istio-ingressgateway -n istio-system

添加externalIPs,此处填在为master的IP地址
重新查看,有地址了
对 GATEWAY_URL 运行 cURL 或在浏览器中打开它,我们将得到 tomcat 的响应如下:
另外,注意到 server 头设置为 istio-envoy,告诉我们该请求通过了 Envoy 代理。
1.4 清理资源
删除 Deployment、Service、VirtualService 和 Gateway:
kubectl delete deployments tomcat
kubectl delete service tomcat
kubectl delete virtualservice virtualservice
kubectl delete gateways ingressgateway
2. 参考文献
https://www.cnblogs.com/renshengdezheli/p/16838966.html
https://blog.csdn.net/weixin_41709748/article/details/122695478
https://developer.aliyun.com/article/886726
https://www.bookstack.cn/read/istio-handbook/best-practices-how-to-implement-ingress-gateway.md
https://www.cnblogs.com/boshen-hzb/p/10679863.html
https://istio.io/latest/zh/docs/tasks/traffic-management/ingress/ingress-control/
相关文章:
Istio Gateway发布服务
1. Istio Gateway发布服务 在集群中部署一个 tomcat 应用程序。然后将部署一个 Gateway 资源和一个与 Gateway 绑定的 VirtualService,以便在外部 IP 地址上公开该应用程序。 1.1 部署 Gateway 资源 vim ingressgateway.yaml --- apiVersion: networking.istio.…...
前端vue3若依框架pnpm run dev启动报错
今天前端vue3若依框架pnpm run dev启动报错信息: > ruoyi3.8.8 dev D:\AYunShe\2024-11-6【无锡出门证】\wuxi-exit-permit-web > vite error when starting dev server: Error: listen EACCES: permission denied 0.0.0.0:80 at Server.setupListenHand…...
python线条爱心
效果图 代码 import math from turtle import * def hearta(k):return 15*math.sin(k)**3 def heartb(k):return 12*math.cos(k)-5*\math.cos(2*k)-2*\math.cos(3*k)-\math.cos(4*k) speed(1000) bgcolor("black") for i in range(6000):goto(hearta(i)*20,heartb(…...
GPU的内存是什么?
GPU(图形处理器)的内存是指专门用于 GPU 存储数据的内存,也被称为显存。 一、显存的作用: 1、存储图像数据 当计算机要显示图像时,显存会存储屏幕上每个像素点的颜色、亮度等信息。例如,对于一个分辨率为 1…...
Linux - 弯路系列1:xshell能够连接上linux,但xftp连不上(子账号可以连接,但不能上传数据)
问题如题目阐述。 注:所有操作在root账户下操作。 解决办法: 1、确认连接设置 服务器地址和端口:确保在 Xftp 中输入的服务器地址和端口号与 Xshell 使用的相同。默认情况下,SFTP 使用端口 22。 用户凭证:检查用户名…...
数组逆序重存放
题目描述 将一个数组中的值按逆序重新存放。例如,原来的顺序为8,6,5,4,1。要求改为1,4,5,6,8。 输入 输入为两行:第一行数组中元素的个数n(1<n<100),第二行是n个整数,每两个整数之间用空格分隔。 输出 输出…...
归并排序:高效算法的深度解析
一、归并排序概述 归并排序是一种基于分治思想的经典排序算法。它的核心操作分为三个主要步骤:分割、排序和合并。 首先是分割步骤,将待排序的数组不断地分成更小的子数组,直到每个子数组中只有一个元素。例如,对于一个包含多个…...
微服务中常用分布式锁原理及执行流程
1.什么是分布式锁 分布式锁是一种在分布式系统环境下实现的锁机制,它主要用于解决,多个分布式节点之间对共享资源的互斥访问问题,确保在分布式系统中,即使存在有多个不同节点上的进程或线程,同一时刻也只有一个节点可…...
声学气膜馆助力企业年会与研学活动完美呈现—轻空间
在现代企业和教育活动中,场地的选择往往决定了活动的成败。尤其是在企业年会、研学基地等重要场合,选择一个既能满足多功能需求又能快速搭建的场地至关重要。而声学气膜馆正是为这种需求量身打造的理想场所。凭借其独特的声学性能和灵活的结构设计&#…...
Halcon3D image_points_to_world_plane详解
分三个部分来聊聊这个算子 一,算子的参数介绍 二,算法的计算过程 三,举例实现 第一部分,算子的介绍 image_points_to_world_plane( : : CameraParam, WorldPose, Rows, Cols, Scale : X, Y) 参数介绍: CameraParam,:相机内参 WorldPose 世界坐标系,也叫物体坐标系(成…...
A Consistent Dual-MRC Framework for Emotion-cause Pair Extraction——论文阅读笔记
前言 这是我第一次向同学院同年级的学生和老师们汇报的第一篇论文,于2022年发表在TOIS上,属于CCF A类,主要内容是将MRC应用到情感原因对抽取中。 论文链接:用于情绪-原因对提取的一致双 MRC 框架 |信息系统上的 ACM Transactions 这里我就不放上我自己翻译的中文版还有我…...
如何debug(Eclipse)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 2分钟教会你如何Java中DeBug【IDEA中Java】 在eclipse中如何使用Debug进行调试 双击左侧打断点(取消断点同样双击) 右上角进入debug界面(常用) 选择所需断点位置(勾选右侧需要测试的断点位置) 启动…...
【comfyui教程】ComfyUI有趣工作流推荐:快速换脸,创意随手掌握!
前言 在数字影像处理和创意表达领域,ComfyUI 绝对是你的得力助手!今天我们推荐一个非常有趣的工作流——快速换脸。无论你是图像编辑小白,还是深耕AI影像的达人,这个工作流都能让你快速实现面部迁移,体验全新的照片玩…...
css-flex布局属性
flex 布局的优势 flex 布局的子元素不会脱离文档流flex 是一种现代的布局方式,是 W3C 第一次提供真正用于布局的 CSS 规范 弹性盒子、子元素 弹性盒子:指的是使用 display:flex 或 display:inline-flex 声明的父容器 声明:使用 display:fl…...
【鸿蒙】HarmonyOS NEXT应用开发快速入门教程之布局篇(下)
系列文章目录 【鸿蒙】HarmonyOS NEXT开发快速入门教程之ArkTS语法装饰器(上) 【鸿蒙】HarmonyOS NEXT开发快速入门教程之ArkTS语法装饰器(下) 【鸿蒙】HarmonyOS NEXT应用开发快速入门教程之布局篇(上) 【…...
高阶函数--python
高阶函数应当满足至少下面一个条件: 接受一个或多个函数参数 输出一个函数 下面用一个例子来理解高阶函数。 一、高阶函数 先看一个简单的函数 例一: 例二: 是高阶函数,因为满足条件,返回一个函数 并且有闭包&a…...
MYSQL备库的并行复制
备库在消费中转日志时,其实可以分多个线程同时对多个事务进行消费,但是要满足2个基本原则: 1.涉及同一行数据的多个事务必须在同一个线程中执行,否则会导致数据不一致 2.同一个事务不能被拆开 MYSQL 5.6的并行复制策略ÿ…...
体感游戏开发:参考资料
体感游戏开发是一个涉及多个领域知识和技能的过程,以下是一些参考资料和建议,以帮助开发者更好地进行体感游戏开发: 一、技术文档和指南 游戏开发引擎文档 Unity、Unreal Engine等主流游戏开发引擎提供了详细的文档和教程,涵盖从…...
Diving into the STM32 HAL-----Clock Tree笔记
几乎每个数字电路都需要一种方法来同步其内部电路或与其他电路同步。时钟是一种产生周期性信号的设备,它是数字电子学中最普遍的心跳源形式。 然而,相同的时钟信号不能用于馈送现代微控制器(如 STM32 微控制器)提供的所有组件和外…...
【AIGC】如何充分利用ChatGPT:有效提示框架与基本规则
概述 在使用ChatGPT进行内容创作时,遵循结构化的提示框架和基本规则可以显著提升AI响应的质量。本文探讨了五种结构化的提示框架,并详细介绍了基本规则和进阶技巧,帮助您更有效地与ChatGPT互动。 基础规则 规则1:指令放在开头&…...
好用的山西GEO服务商
你可能已经感受到:当客户在AI大模型里问“山西哪家GEO优化公司靠谱?”、“中小企业如何用AI引流”时,你的企业信息根本搜不到。流量入口变了,传统SEO正在失效。如果能选对一家GEO服务商,就能在这个新战场里抢占先机。我…...
基于项目代码实测:XCP/CCP 模块“标定差异”全流程深度操作指南
在实际项目的 XCP/CCP 标定业务中,核对与同步底层内存参数是一项极其高频的操作。本指南将完全基于最新版“标定差异(Calibration Difference)”界面的真实功能逻辑,为你提供一份严谨、详细、且立即可用的三倍容量操作手册。无论你…...
网页端嵌入 Agent 对接前端方案
本文将深入探讨「网页端嵌入AI」的核心概念与实战技巧,帮助你快速掌握关键要点。让我们开始吧! 网页端嵌入 Agent 对接前端方案 1. 引言 当前前端项目正从被动展示走向主动交互,AI Agent 嵌入网页端可自动化 UI 操作、优化布局并辅助编码。…...
Claude Code 用户如何配置 Taotoken 解决密钥与额度困扰
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Claude Code 用户如何配置 Taotoken 解决密钥与额度困扰 对于依赖 Claude Code 进行编程辅助的开发者而言,直接管理多个…...
ElastiFlow企业级网络流量监控解决方案:5大核心优势与架构深度解析
ElastiFlow企业级网络流量监控解决方案:5大核心优势与架构深度解析 【免费下载链接】elastiflow Network flow analytics (Netflow, sFlow and IPFIX) with the Elastic Stack 项目地址: https://gitcode.com/gh_mirrors/el/elastiflow 在数字化转型浪潮中&a…...
IPBan服务器防护解决方案:智能拦截恶意IP的实战指南
IPBan服务器防护解决方案:智能拦截恶意IP的实战指南 【免费下载链接】IPBan Since 2011, IPBan is the worlds most trusted, free security software to block hackers and botnets. With both Windows and Linux support, IPBan has your dedicated or cloud serv…...
算法高频难题——链表环检测(快慢指针核心实现)
链表操作是算法面试的重中之重,而“检测链表中是否存在环”更是高频考题,字节、阿里等大厂面试中多次出现,热度稳居算法类难题TOP3。很多开发者会陷入“遍历存节点”的误区,导致空间复杂度过高,无法通过面试优化要求。…...
职场痛点|同事甩锅、摸鱼划水,干活全靠自己?3步破局不内耗
职场痛点|同事甩锅、摸鱼划水,干活全靠自己?3步破局不内耗相信很多职场人都有过这样的崩溃瞬间:明明是团队协作的任务,同事要么全程摸鱼划水,不干活、不配合,要么出了问题就第一时间甩锅&#x…...
希捷ST20000NM007D深度评测:20TB企业级硬盘,兼顾容量与稳定的实用之选
在企业存储领域,“容量”与“稳定”始终是核心诉求。随着大数据、云存储、边缘计算的快速发展,企业对存储设备的要求愈发严苛——既需要足够大的空间承载海量数据,又要保证724小时不间断运行的稳定性,同时还要控制功耗与运营成本。…...
利用 QiWe API 实现企业微信机器人消息双向交互
1. 什么是企微机器人的“多模态”交互? 早期的微信机器人大多只能处理简单的纯文本对话。然而,在真实的商业客服场景中,客户往往会发送商品图片、发票PDF文件、产品操作视频甚至是语音消息。一个合格的企业级机器人,必须具备处理和…...


