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

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

istio实现灰度发布

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

vi deployment-v1.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: appv1
  labels:
    app: v1
spec:
  replicas: 1
  selector:
    matchLabels:
      app: v1
      apply: canary
  template:
    metadata:
      labels:
        app: v1
        apply: canary
    spec:
      containers:
      - name: nginx
        image: 172.16.80.140/istio/canary:v1
        ports:
        - containerPort: 80

vi deployment-v2.yaml
kind: Deployment
metadata:
  name: appv2
  labels:
    app: v2
spec:
  replicas: 1
  selector:
    matchLabels:
      app: v2
      apply: canary
  template:
    metadata:
      labels:
        app: v2
        apply: canary
    spec:
      containers:
      - name: nginx
        image: 172.16.80.140/istio/canary:v2
        ports:
        - containerPort: 80

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

vi service.yaml 
apiVersion: v1
kind: Service
metadata:
  name: canary
  labels:
    apply: canary
spec:
  selector:
    apply: canary
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80

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

vi gateway.yaml 
apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:
  name: canary-gateway
spec:
  selector:
    istio: ingressgateway
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
    - "*"

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

[root@mast01 test]# more virtual.yaml 
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  name: canary
spec:
  hosts:
  - "*"
  gateways:
  - canary-gateway
  http:
  - route:
    - destination:
        host: canary.default.svc.cluster.local
        subset: v1
      weight: 90
    - destination:
        host: canary.default.svc.cluster.local
        subset: v2
      weight: 10

创建目标规则

vi destination.yaml 
apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:
  name: canary
spec:
  trafficPolicy:
  tls:
    mode: DISABLE
  host: canary.default.svc.cluster.local
  subsets:
  - name: v1
    labels:
      app: v1
  - name: v2
    labels:
      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.dtcms.com/a/124146.html

相关文章:

  • 探秘Transformer系列之(25)--- KV Cache优化之处理长文本序列
  • 架构师论文《论模型驱动软件开发方法在智能制造转型实践中的应用》
  • ​MySQL面试题:索引的底层原理与优化策略​
  • Langflow 远程命令执行漏洞复现(CVE-2025-3248)(附脚本)
  • Python代码缩进统一规范
  • 微信小程序事件详解
  • 6.3es新特性web worker
  • 基于 OpenHarmony 5.0 的星闪轻量型设备应用开发——Ch2 OpenHarmony LiteOS-M 内核应用开发
  • 【系统架构】AI时代下,系统架构师如何修炼
  • 2025.4.8 dmy NOI模拟赛总结(转化贡献方式 dp, 交互(分段函数找断点),SAM上计数)
  • 【spark-submit】--提交任务
  • LeetCode算法题(Go语言实现)_38
  • 【01BFS】# P4667 [BalticOI 2011] Switch the Lamp On 电路维修 (Day1)|普及+
  • React Native (RN)的学习上手教程
  • datagrip如何连接数据库
  • 驱动开发硬核特训 · Day 7:深入掌握 Linux 驱动资源管理机制(Resource Management)
  • BOE(京东方)旗下控股子公司“京东方能源”成功挂牌新三板 以科技赋能零碳未来
  • docker的安装使用0废话版本自学软硬件工程师778天
  • CExercise_09_2动态拼接字符串_1字符串拼接
  • 图像处理中的梯度计算、边缘检测与凸包特征分析技术详解
  • 衣橱管理助手系统(衣服推荐系统)(springboot+ssm+vue+mysql)含运行文档
  • Spark-SQL 之 Window
  • 算法题型讲解
  • Ubuntu安装Docker引擎
  • SD + Contronet,扩散模型V1.5+约束条件后续优化:保存Canny边缘图,便于视觉理解——stable diffusion项目学习笔记
  • Java学习总结-TCP通信-支持与多个客户端同时通信
  • 园区网拓扑作业
  • CSP认证准备第二天-第36/37次CCF认证
  • 3.IS-IS认证
  • 2143 最少刷题数