istio 应用灰度发布部署注意点(包括 deploy、svc、gw、vs 和 dr)

创建 deployment

分别部署两个版本的 deployment。在灰度发布的过程中,注意 pod 标签的设置,后续 svc 和 dr 就是根据标签来划分 pod

apiVersion: apps/v1
kind: Deployment
metadata:labels:app: bbjcxtversion: v1name: bbjcxtnamespace: mm-nbxt-huidu
spec:...template:metadata:labels:app: bbjcxtversion: v1...
---
apiVersion: apps/v1
kind: Deployment
metadata:labels:app: bbjcxtversion: v1name: bbjcxtnamespace: mm-nbxt-huidu
spec:...template:metadata:labels:app: bbjcxtversion: v2...

app:后续创建的 service 通过此标签管理
version:后续创建的 destinationrule 通过此标签将应用分为两个子集

创建 service

因为灰度发布的原因,不同版本的 pod 的标签是不一样的,因此 service 的 selector 只能通过 app 标签来选择 pod

apiVersion: v1
kind: Service
...
spec:...selector:app: bbjcxt...

gw、vs 和 dr 的创建顺序没有要求,注意这三个资源的 host/hosts 参数设置
我的习惯是从外到内,即 gw -> vs -> dr

创建 gateway

host 参数设置的外部访问的域名

apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:name: nbxtnamespace: mm-nbxt-huidu
spec:selector:app: istio-ingressgateway # 选择 istio IngressGateway 的 labelservers:- hosts:- nbxt.com # 自定义域名port:name: httpnumber: 80protocol: HTTP

需要注意的是配置了自定义域后,需要在本机和服务器上的 hosts 域名解析文件上配置相关内容

# 如果服务器的 ip 为 1.1.1.1,则需要同时在本机和服务器上的 hosts 添加如下
1.1.1.1 nbxt.com

创建 virtualserivce

注意 host 和 destination 字段参数设置,还有一个很重要的 match 字段(后续文章解释)
host 参数设置的外部和内部访问的域名

内部访问的域名是一个规范,有一定的格式,可以简单理解为 service 的 name

apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:name: nbxt-vsnamespace: mm-nbxt-huidu
spec:gateways:- nbxt # 上一步创建的 gw namehosts:- nbxt.com # 外部访问的 host- svc-bbjcxt # 内部访问的 hosthttp:- name: default # 展示了一个默认无匹配的路由,通过百分比分流route:- destination:host: svc-bbjcxtsubset: v1weight: 10- destination:host: svc-bbjcxtsubset: v2weight: 90

创建 destinationrule

host 参数设置是内部访问的域名

内部访问的域名是一个规范,有一定的格式,可以简单理解为 service 的 name

labels 就是 pod 的第二个标签,根据这个标签将应用根据版本分为多个子集

apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:name: nbxt-drnamespace: mm-nbxt-huidu
spec:host: svc-bbjcxtsubsets:- labels:version: v1name: v1- labels:version: v2name: v2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/584224.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构】C语言实现双链表的基本操作

双链表及其基本操作的实现 导言一、单链表与双链表二、双链表类型的创建三、双链表的初始化四、双链表的创建五、双链表的遍历六、双链表的查找七、双链表的插入八、双链表的删除结语 导言 大家好,很高兴又和大家见面啦!!! 经过…

NSNotificationCenter通知

使用观察者模式来实现的用于跨层传递消息的机制 参考文章 ios消息机制(NSNotification 和 NSNotificationCenter) 透彻理解 NSNotificationCenter 通知(含实现代码) - 掘金 NSNotificationCenter property (class, readonly, strong) NSNotification…

【.NET Core】匿名方法与扩展方法

【.NET Core】匿名方法与扩展方法 文章目录 【.NET Core】匿名方法与扩展方法一、匿名方法1.1 匿名方法定义1.2 通过Delegate关键字创建委托匿名方法1.3 通过Action关键字创建无返回值的匿名方法1.4 通过Func关键字创建有返回值的匿名方法1.5 使用Lambda表达式表示匿名方法 二、…

反射讲解(有图有真相)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、反射是什么?二、反射有啥好处?1. 没反射2. 有反射 三、反射的常用方法1. 获取 Class 对象:2. 获取类的构造方法&#xf…

python统计学-两个总体均值差的区间估计

简介 两个总体均值差的区间估计是指,在给定的置信水平下,估计两个总体均值差的置信区间。两个总体均值差的区间估计的公式为: X ‾ 1 − X ‾ 2 t α / 2 , n 1 n 2 − 2 s 1 2 n 1 s 2 2 n 2 \overline{X}_1 - \overline{X}_2 \pm t_{\a…

数组的声明

概要&#xff1a; 数组的声明分为三个部分 第一部分&#xff1a;数组中元素的数据类型 第二部分&#xff1a;数组名 第三部分&#xff1a;数组标识符(方括号)和数组大小 一、测试代码 #include<stdio.h> int main() {int arr_int[10];char* arr_str[10];arr_in…

软件测试/测试开发丨Selenium环境安装配置

一、selenium 环境配置 1、下载浏览器 目前比较常用的浏览器是 Google Chrome 浏览器&#xff0c;所以本教程以 chrome 为主&#xff0c;后面简介一下其他浏览器的环境配置。 chrome 下载: www.google.cn/chrome/ 2、chromedriver 环境配置 chromedriver 是chromedriver提…

R语言【base】——sprintf():接受格式化文本和变量值来搭建字符型向量。

Package base version 4.2.0 Parameters sprintf(fmt, ...)gettextf(fmt, ..., domain NULL, trim TRUE) 参数【fmt】&#xff1a;格式字符串的字符向量&#xff0c;每个字符串最多 8192 个字节。 参数【...】&#xff1a;要传递给参数【fmt】的值。仅支持逻辑向量、整数向…

【C++】引用详解

前言 在学习C语言时&#xff0c;我们通常会遇到两个数交换的问题&#xff0c;为了实现这一功能&#xff0c;我们会编写一个经典的Swap函数&#xff0c;如下所示&#xff1a; void Swap(int *a, int *b) {int tmp *a;*a *b;*b tmp; } 然而&#xff0c;这个Swap函数看起来可…

CEC2017(Python):五种算法(SSA、RFO、OOA、PSO、GWO)求解CEC2017

一、5种算法简介 1、麻雀搜索算法SSA 2、红狐优化算法RFO 3、鱼鹰优化算法OOA 4、粒子群优化算法PSO 5、灰狼优化算法GWO 二、CEC2017简介 参考文献&#xff1a; [1]Awad, N. H., Ali, M. Z., Liang, J. J., Qu, B. Y., & Suganthan, P. N. (2016). “Problem defin…

Kubernetes 学习总结(43)—— Kubernetes 从提交 deployment 到 pod 运行的全过程

当用户向 Kubernetes 提交了一个创建 deployment 的请求后&#xff0c;Kubernetes 从接收请求直至创建对应的 pod 运行这整个过程中都发生了什么呢&#xff1f; kubernetes 架构简述 在搞清楚从 deployment 提交到 pod 运行整个过程之前&#xff0c;我们有先来看看 Kubernete…

Ubuntu 20.04使用Livox Mid-360

参考文章&#xff1a; Ubuntu 20.04使用Livox mid 360 测试 FAST_LIO-CSDN博客 一&#xff1a;Livox mid 360驱动安装与测试 前言&#xff1a; Livox mid360需要使用Livox-SDK2&#xff0c;而非Livox-SDK&#xff0c;以及对应的livox_ros_driver2 。 1. 安装Livox-SDK2 参…

golang 中判断结构体中某一个属性是否存在(以区分零值)

原问题地址&#xff1a;validate-struct field if it exists 有定义结构 package mainimport ("fmt""encoding/json" )type User struct {Name string json:"name,omitempty"Username *string json:"username,omitempty"Email …

自然语言处理1——探索自然语言处理的基础 - Python入门篇

目录 写在开头1. 介绍自然语言处理的基本概念1.1 NLP的核心目标1.2 常见的NLP任务1.3 应用场景详细介绍1.3.1 医疗保健1.3.2 金融领域1.3.3 教育领域1.3.4 社交媒体分析2. Python中常用的自然语言处理库简介2.1 NLTK (Natural Language Toolkit)2.2 Spacy2.3 Transformers2.4 T…

RabbitMQ是做什么的

rabbitMQ是做异步通讯的。用于解决同步同讯的拓展性差&#xff0c;级联失败的问题。 异步调用方式其实就是基于消息通知的方式&#xff0c;一般包含三个角色:。 消息发送者:投递消息的人&#xff0c;就是原来的调用方 消息代理:管理、暂存、转发消息&#xff0c;你可以把它理…

软件测试/测试开发丨Python常用数据结构-列表list

列表的定义 列表是有序的可变元素的集合&#xff0c;使用中括号[ ]包围&#xff0c;元素之间用逗号分隔&#xff1b;列表是动态的&#xff0c;可以随时扩展和收缩&#xff1b;列表是异构的&#xff0c;可以同时存放不同类型的对象&#xff1b;列表允许出现重复的元素。 列表的…

六、从0开始卷出一个新项目瑞萨RZN2L之loader app分离工程优化

六、loader app分离工程 6.1 概述 6.2 官方资料与不足 6.3 loader app分离工程的优化 6.3.1 自动调节合并appsection 6.3.2 loader中使用外设 6.3.3 app使用sram mirror 6.3.4 sram atcm同时使用 六、从0开始卷出一个新项目之瑞萨RZN2L loader…

深入浅出理解转置卷积Conv2DTranspose

温故而知新&#xff0c;可以为师矣&#xff01; 一、参考资料 论文&#xff1a;A guide to convolution arithmetic for deep learning github源码&#xff1a;Convolution arithmetic bilibili视频&#xff1a;转置卷积&#xff08;transposed convolution&#xff09; 转置…

STM32入门教程-2023版【3-2】点亮LED灯之库函数介绍

关注 点赞 不错过精彩内容 大家好&#xff0c;我是硬核王同学&#xff0c;最近在做免费的嵌入式知识分享&#xff0c;帮助对嵌入式感兴趣的同学学习嵌入式、做项目、找工作! 二、正式点亮一个LED灯 操作STM32的GPIO需要三个步骤&#xff1a; 1.使用RCC打开GPIO的时钟&#…

基于策略模式和简单工厂模式实现zip、tar、rar、7z四种压缩文件格式的解压

推荐语 这篇技术文章深入探讨了基于策略模式和简单工厂模式实现四种常见压缩文件格式的解压方法。通过阅读该文章&#xff0c;你将了解到如何利用这两种设计模式来实现灵活、可扩展的解压功能&#xff0c;同时适应不同的压缩文件格式。如果你对设计模式和文件处理感兴趣或刚好…