当前位置: 首页 > 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,那就实现了版本下线

相关文章:

  • 青岛易龙网站建设建站之星官网
  • 上海做网站开发的公司贴吧推广
  • 万户网站建设公司学电脑培训班多少一个月
  • mac做网站改html文件知名的网络推广
  • 做评测好的视频网站有哪些模板自助建站
  • flash网站策划书百度权重10的网站
  • 探秘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字符串拼接
  • 图像处理中的梯度计算、边缘检测与凸包特征分析技术详解