你的位置:BABYBONK中文网 > Electric Vehicle Direct Currency中文网 >

什么是Kubernetes分批发布

  • 发布日期:2025-01-03 19:30    点击次数:119
  • Kubernetes 原生的应用升级基于终态模型,一旦发布出现问题无法暂停,只能通过YAML回滚应用。为了使 Kubernetes 应用发布过程更加可控。Flow 提供了 Kubernetes 分批发布的能力,以让发布过程更加可控。 实现原理 Kubernetes 使用 Service 在集群内暴露服务 Service 与Deployment 的 Pod 实例之间使用 Lables 进行关联,Service 的流量会转到关联的 Deployment 实例 假设 serviceA 关联了应用 app-v1 并且其 Replicas 副本数 > 1 分批发布开始创建 app-v2 并继承 app-v1 的所有标签,此时 serviceA 的流量会随机转发到 v1 和 v2 分批发布过程通过扩容 app-v2 和缩容 app-v1 实现应用的发布 发布过程暂停时,用户可以选择继续发布,直到 app-v2 达到预期状态 或者回滚移除 app-v2 并恢复 app-v1 的副本数 前提Deployment 上不能关联 HPA,否则会导致旧版本无法缩容,发布可能超时失败Deployment 的 labels 内包含有 Service 的全部 selector labels,如:--- apiVersion: apps/v1 kind: Deployment metadata:   labels:     run: spring-boot-sample   name: spring-boot-sample spec:   replicas: 2   selector:     matchLabels:       run: spring-boot-sample   template:     metadata:       labels:         run: spring-boot-sample     spec:       containers:       - image: ${IMAGE}         name: app --- apiVersion: v1 kind: Service metadata:   name: spring-boot-service   labels:     test: test     labele2: label spec:   ports:     - name: http       port: 8080       protocol: TCP       targetPort: 8080     - name: https       port: 443       protocol: TCP       targetPort: 443   selector:     run: spring-boot-sample   sessionAffinity: None   type: ClusterIP添加分批发布任务用户可以通过添加流水线任务并选择 ”Kubernetes 分批发布“任务:配置发布任务 首次使用 Kubernetes 相关发布功能的用户需要首先建立 Kubernetes 服务连接。 选择发布的目标 Service 以及 Service 关联的 Deployment 中的容器名称。镜像需要由上游镜像构建步骤产生: 执行分批发布当使用分批发布第一批暂停,当第一批次发布完成后,卡片会显示暂停状态,并提示用户继续下一批次或者回滚 在人工验证完成后,选择继续发布完成后续批次的发布 



    Powered by BABYBONK中文网 @2013-2022 RSS地图 HTML地图

    Copyright Powered by365建站 © 2013-2024