K8S学习之基础七十五:istio实现灰度发布

istio实现灰度发布

上传镜像到harbor
在这里插入图片描述
创建两个版本的pod

vi deployment-v1.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: appv1labels:app: v1
spec:replicas: 1selector:matchLabels:app: v1apply: canarytemplate:metadata:labels:app: v1apply: canaryspec:containers:- name: nginximage: 172.16.80.140/istio/canary:v1ports:- containerPort: 80vi deployment-v2.yaml
kind: Deployment
metadata:name: appv2labels:app: v2
spec:replicas: 1selector:matchLabels:app: v2apply: canarytemplate:metadata:labels:app: v2apply: canaryspec:containers:- name: nginximage: 172.16.80.140/istio/canary:v2ports:- containerPort: 80

在这里插入图片描述
在这里插入图片描述
创建service代理

vi service.yaml 
apiVersion: v1
kind: Service
metadata:name: canarylabels:apply: canary
spec:selector:apply: canaryports:- protocol: TCPport: 80targetPort: 80

在这里插入图片描述
创建网关

vi gateway.yaml 
apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:name: canary-gateway
spec:selector:istio: ingressgatewayservers:- port:number: 80name: httpprotocol: HTTPhosts:- "*"

在这里插入图片描述
创建虚拟网关

[root@mast01 test]# more virtual.yaml 
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:name: canary
spec:hosts:- "*"gateways:- canary-gatewayhttp:- route:- destination:host: canary.default.svc.cluster.localsubset: v1weight: 90- destination:host: canary.default.svc.cluster.localsubset: v2weight: 10

创建目标规则

vi destination.yaml 
apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:name: canary
spec:trafficPolicy:tls:mode: DISABLEhost: canary.default.svc.cluster.localsubsets:- name: v1labels:app: v1- name: v2labels:app: v2

将istio-ingressgateway的type改为NodePort(默认为loadbanlanc)
在这里插入图片描述

for i in `seq 1 100`; do curl 172.16.80.131:32168;done > 1.txt
cat 1.txt | grep v1 | wc -l
cat 1.txt | grep v2 | wc -l

在这里插入图片描述
大致与配置中的90:10相当
可以通过修改权重,实现访问权重、灰度发布等
如果一个为100,一个为0,那就实现了版本下线

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

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

相关文章

C++蓝桥杯填空题(攻克版)

片头 嗨~小伙伴们,咱们继续攻克填空题,先把5分拿到手~ 第1题 数位递增的数 这道题,需要我们计算在整数 1 至 n 中有多少个数位递增的数。 什么是数位递增的数呢?一个正整数如果任何一个数位不大于右边相邻的数位。比如&#xf…

【Python】数据结构

【Python】数据结构: Series:1、通过列表创建Series类对象2、显示地给数据指定标签索引3、通过字典创建Series类对象4、获取索引5、获取数据 DataFrame:1、通过数组创建一个DataFrame类对象2、指定列索引3、指定行索引4、获取列的数据5、查看…

Android XML布局与Compose组件对照手册

下面我将详细列出传统 XML 布局中的组件与 Compose 组件的对应关系,帮助您更好地进行迁移或混合开发。 基础布局对应 XML 布局Compose 组件说明LinearLayout (vertical)Column垂直排列子项LinearLayout (horizontal)Row水平排列子项FrameLayoutBox层叠子项Relativ…

云原生运维在 2025 年的发展蓝图

随着云计算技术的不断发展和普及,云原生已经成为了现代应用开发和运维的主流趋势。云原生运维是指在云原生环境下,对应用进行部署、监控、管理和优化的过程。在 2025 年,云原生运维将迎来更加广阔的发展前景,同时也将面临着一系列…

js day5

复习模板字符串: 在输出语句里面 document.write(我今年${a}岁了)中间是反引号;里面是${变量}; 复习基本类型 number String null undefined boolean 检测数据类型输出typedf 变量则可; 添加链接描述 复习样式变量table什么的边…

SmolVLM2: The Smollest Video Model Ever(三)

这是对《SmolLM2: When Smol Goes Big — Data-Centric Training of a Small Language Model》的翻译阅读 摘要 虽然大语言模型在人工智能的许多应用中取得了突破,但其固有的大规模特性使得它们在计算上成本高昂,并且在资源受限的环境中部署具有挑战性。…

汽车软件开发常用的需求管理工具汇总

目录 往期推荐 DOORS(IBM ) 行业应用企业: 应用背景: 主要特点: Polarion ALM(Siemens) 行业应用企业: 应用背景: 主要特点: Codebeamer ALM&#x…

爬虫工程师杂活工具人

30岁的年龄;这个年龄大家都是成年人;都是做父母的年龄了;你再工位上的心态会发生很大变化的; 爬虫工程师基本都是如此;社会最low的一帮连销售都做不了的;单子都开不出来的然后转行做爬虫工程师的;这样的人基本不太和社会接触; 你作为爬虫初级工程师就敲着键盘然后解析着html;…

如何使用Tomcat

1 简介 Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,成为目前比较流行的Web 应…

【AI工具】FastGPT:开启高效智能问答新征程

前言 在人工智能飞速发展的当下,各类 AI 工具如雨后春笋般涌现。FastGPT 作为一款基于大语言模型(LLM)的知识图谱问答系统,凭借其强大的数据处理和模型调校能力,为用户带来了便捷的使用体验。今天,就让我们…

14. git remote

基本概述 git remote 的作用是:查看、添加、修改和删除与本地仓库关联的远程仓库。 基本用法 1.查看远程仓库 git remote # 显示所有关联的远程仓库(名称) git remote -v # 显示所有关联的远程仓库&a…

【spark-submit】--提交任务

Spark-submit spark-submit 是 Apache Spark 提供的用于提交 Spark 应用程序到集群的命令行工具。 基本语法 spark-submit [options] <app-jar> [app-arguments]常用参数说明 应用程序配置 --class <class-name>: 指定应用程序的主类&#xff08;对于 Java/Sc…

2025.4.10总结

今日记录&#xff1a;今天提了两个问题单&#xff0c;最近要关注一下产出了&#xff0c;上半年的考核如今还剩两个月了&#xff0c;然后发现一同入职的同事&#xff0c;有的人进步得很快&#xff0c;得向优秀得同事看齐了&#xff0c;不然几年过去&#xff0c;别人连升好几年&a…

SvelteKit 最新中文文档教程(18)—— 浅层路由和 Packaging

前言 Svelte&#xff0c;一个语法简洁、入门容易&#xff0c;面向未来的前端框架。 从 Svelte 诞生之初&#xff0c;就备受开发者的喜爱&#xff0c;根据统计&#xff0c;从 2019 年到 2024 年&#xff0c;连续 6 年一直是开发者最感兴趣的前端框架 No.1&#xff1a; Svelte …

Winform入门进阶企业级开发示例:http接口数据清洗转换、断线续传、mqtt数据传输实例详解(附代码资源下载)

场景 C#/Winform入门、进阶、强化、扩展、知识体系完善等知识点学习、性能优化、源码分析专栏分享: C#/Winform入门、进阶、强化、扩展、知识体系完善等知识点学习、性能优化、源码分析专栏分享_winform 强化学习-CSDN博客 如何将以上相关理论知识学以致用。下面针对Winform…

Python代码缩进统一规范

一、Python缩进的重要性:逻辑与可读性的桥梁 1. 语法规则的核心 Python与其他编程语言显著不同之处在于,它使用缩进来表示代码块的层次结构。不像C、Java等语言依靠大括号{}来明确函数体、循环体和条件语句的范围,Python完全依赖缩进来界定这些逻辑单元。例如,在一个if条…

asp.net core 项目发布到 IIS 服务器

目录 一、VS2022 发布 二、设置IIS服务 三、配置IIS管理器 &#xff08;一&#xff09;打开IIS管理器 &#xff08;二&#xff09;添加站台 &#xff08;三&#xff09;配置应用程式集区 四、安装ASP.NET Core Hosting Bundle 五、设定IIS的日志位置 六、测试 一、VS2…

spring mvc中不同服务调用类型(声明式(Feign)、基于模板(RestTemplate)、基于 SDK、消息队列、gRPC)对比详解

RestControllerAdvice 和 ControllerAdvice 对比详解 1. 基本概念 注解等效组合核心作用ControllerAdviceComponent RequestMapping&#xff08;隐式&#xff09;定义全局控制器增强类&#xff0c;处理跨控制器的异常、数据绑定或全局响应逻辑。RestControllerAdviceControll…

CVE-2025-29927 Next.js 中间件鉴权绕过漏洞

Next.js Next.js 是一个基于 React 的现代 Web 开发框架&#xff0c;用来构建高性能、可扩展的 Web 应用和网站。 CVE-2025-29927 Next.js 中间件鉴权绕过漏洞 CVE-2025-29927是Next.js框架中的一个授权绕过漏洞&#xff0c;允许攻击者通过特制的HTTP请求绕过在中间件中执行…

WP最主题专业的wordpress主题开发

WP最主题&#xff08;wpzui.com&#xff09; WP最主题是一个提供高品质WordPress主题的平台。它注重主题的设计和功能&#xff0c;旨在为用户提供美观且实用的主题选择。其主题通常具有良好的用户体验、丰富的自定义选项以及优化的性能&#xff0c;能够满足不同类型的网站搭建…