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

istio中serviceentry结合vs、dr实现多版本路由

假设有一个外部服务,外部服务ip为:10.10.102.90,其中32033为v1版本,32034为v2版本。

现在需要把这个服务引入到istio中,并且需要配置路由规则,使得header中x-version的值为v1的路由到v1版本,x-version的值为v2的路由到v2版本。

引入外部服务:

 serviceentry内容:

apiVersion: networking.istio.io/v1beta1
kind: ServiceEntry
metadata:name: gindemo-service-entry
spec:endpoints:- address: 10.10.102.90labels:version: v1ports:http: 32033- address: 10.10.102.90labels:version: v2ports:http: 32034hosts:- gindemo.test.chlocation: MESH_EXTERNALports:- name: httpnumber: 80protocol: HTTPresolution: STATIC

使用dr定义多版本:

apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:name: gindemo-destination-rule
spec:host: gindemo.test.chsubsets:- labels:version: v1name: v1- labels:version: v2name: v2trafficPolicy:loadBalancer:simple: RANDOM

在vs中定义路由规则:

apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:name: gindemo-virtual-service
spec:gateways:- meshhosts:- gindemo.test.chhttp:- match:- headers:x-version:exact: v1port: 80route:- destination:host: gindemo.test.chsubset: v1- match:- headers:x-version:exact: v2port: 80route:- destination:host: gindemo.test.chsubset: v2

访问:


http://www.mrgr.cn/news/28623.html

相关文章:

  • 研究生如何远控实验室电脑?远程办公功能使用教程
  • LeetCode题练习与总结:整数替换--397
  • RabbitMQ集群搭建
  • Java线程的sleep和wait的区别
  • sql文件
  • 初次体验Tauri和Sycamore(1)
  • 【计算机网络 - 基础问题】每日 3 题(九)
  • [C++]类和对象(下)
  • Oracle(129) 如何使用闪回归档(Flashback Archive)?
  • Ollama:本地运行大模型【含UI界面】
  • Leetcode—815. 公交路线【困难】(unordered_map+queue)
  • 在线教育平台项目
  • Pytorch详解-模型模块(RNN,CNN,FNN,LSTM,GRU,TCN,Transformer)
  • 几种常见的机器学习分类模型及代码实现
  • 基于python+django+vue的学生成绩管理系统
  • vue3+ts
  • 828华为云征文 | 云服务器Flexus X实例:轻量级http服务器 Tinyhttpd 部署
  • WGCAT可以导出工单吗
  • Java HashMap 总结
  • 为Galaxy S22用户提供高效的三星数据恢复
  • 【网络】DNS,域名解析系统
  • python基本数据类型简记
  • 【JavaSE】--数组的定义与使用
  • 65. 有效数字
  • `synchronized`关键字的作用及其实现原理,`wait()`、`notify()`和`notifyAll()`方法的用途及调用条件
  • Gitee Pipeline 从入门到实战【详细步骤】