在阿里云容器服务Kubernetes上使用分批发布

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 前言 Kubernetes作为非常流行的容器编排引擎已经逐渐成为容器交付的标准,为了解决标准化交付的问题,Kubernetes抽象了多种概念来代表不同的交付内容。 例如,不同应用场景的服务载体可以通过Deployment、DaemonSet、StatefulSet、CronJob来抽象;网络接入层可以通过Service进行抽象;服务配置可以通过ConfigMap或者Secret进行抽象等等。

前言

Kubernetes作为非常流行的容器编排引擎已经逐渐成为容器交付的标准,为了解决标准化交付的问题,Kubernetes抽象了多种概念来代表不同的交付内容。

lALPBY0V48AYTNTNAWrNAnQ_628_362_png_620x10000q90g

例如,不同应用场景的服务载体可以通过Deployment、DaemonSet、StatefulSet、CronJob来抽象;网络接入层可以通过Service进行抽象;服务配置可以通过ConfigMap或者Secret进行抽象等等。有了多种交付内容的抽象,开发者可以很简单将自身的应用交付进行拆分,变成多种抽象的组合,实现代码即交付。

分批发布

一个标准的应用可以抽象为网络、服务载体与存储,而一次应用的变更通常主要是针对服务载体进行的变更。但是如果我们只变更服务载体而操作网络会导致应用可能会出现服务中断等现象。为了解决上述的场景,我们通常会推荐使用不同的发布方式来解决,例如蓝绿发布解决零宕机发布的问题、金丝雀发布解决无差别快速验证的问题。

lALPBY0V48AYTFjMk80B_A_504_147_png_620x10000q90g

但是这些发布方式在Kubernetes中怎么使用呢?因为Kubernetes中抽象是非常原子的,而通常带有发布方式的变更过程需要组合服务载体和网络两种资源的变化。在标准的Kubernetes中是无法支持的,在开源社区中Helm或许是一个答案,而今天我们要给大家介绍一种更简单的方案,阿里云容器服务Kubernetes中的分批发布功能。(注意:目前仅支持1.9.3及以上的版本。)

分批发布顾名思义是通过分批的方式进行应用零宕机快速验证的方式。分批发布功能是基于Kubernetes中的CRD(CustomResourceDefinition)进行定义的,包含一个Service和一个StatefulSet,分批发布的过程同时操作了服务载体和网络,实现了应用的分批次发布、接入层快速变更、快速验证、发布继续、发布回滚、历史版本回滚等功能。

image

上图是一个分三批的分批发布流程,在发布时第一批次的Pod会进行新版本的变更,当第一批次的所有Pod都处在运行态的时候,service会进行流量的切换,将所有流量打到第一批次的Pod上面,进行快速验证,如果没有问题则继续发布,如果有问题可以立即进行回滚,整个过程无流量中断。

操作步骤

  1. 控制台选择左侧菜单中的发布,右侧点击创建分批发布按钮。如果按钮是灰色的,可以参考升级连接进行升级。lALPBY0V48Aku4jNA9PNBZw_1436_979_png_620x10000q90g
  2. 填写相关配置
    lALPBY0V48AkvLjNA9PNBaA_1440_979_png_620x10000q90g

此时查看分批发布详情,可以看到4个nginx Pod已经都启动完毕,关联的服务也生成完毕,发布处在未开始状态。
image_20180806153100344

  1. 接下点击右上角的新建变更,来进行一次分批发布的变更
    image_20180806153221908
  2. 再次查看分批发布详情,可以看到未开始中的Pod为2个,已完成的Pod为2个,表示分批发布第一个批次已完成。分批发布的整体状态处在 等待部署完成 (总共 2 个批次,当前处在第 1 个批次,当前批次状态为已完成)。
    image_20180806153413696
  3. 此时点击继续按钮会发布下一个批次,如果点击回滚按钮,那么此时会回滚掉刚才的版本。当发布完成后。点击历史,可以进行历史版本的回滚。
    image_20180806160131569

总结

分批发布功能主要是为了解决快速无流量损失的验证,与蓝绿发布相比更节省资源,目前暂时只支持页面操作,后续会开放yaml文件编辑,支持更复杂的操作。

相关实践学习
巧用云服务器ECS制作节日贺卡
本场景带您体验如何在一台CentOS 7操作系统的ECS实例上,通过搭建web服务器,上传源码到web容器,制作节日贺卡网页。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
23天前
|
弹性计算 人工智能 Serverless
阿里云ACK One:注册集群云上节点池(CPU/GPU)自动弹性伸缩,助力企业业务高效扩展
在当今数字化时代,企业业务的快速增长对IT基础设施提出了更高要求。然而,传统IDC数据中心却在业务存在扩容慢、缩容难等问题。为此,阿里云推出ACK One注册集群架构,通过云上节点池(CPU/GPU)自动弹性伸缩等特性,为企业带来全新突破。
|
1月前
|
专有云 Serverless 持续交付
亚太唯一,阿里云再度入选Gartner®容器管理魔力象限领导者
Gartner正式发布 2024《容器管理魔力象限》报告,阿里云再度成为中国唯一一家入选「领导者象限」的科技公司。
|
1月前
|
Prometheus Kubernetes 监控
k8s部署针对外部服务器的prometheus服务
通过上述步骤,您不仅成功地在Kubernetes集群内部署了Prometheus,还实现了对集群外服务器的有效监控。理解并实施网络配置是关键,确保监控数据的准确无误传输。随着监控需求的增长,您还可以进一步探索Prometheus生态中的其他组件,如Alertmanager、Grafana等,以构建完整的监控与报警体系。
125 60
|
1月前
|
Prometheus Kubernetes 监控
k8s部署针对外部服务器的prometheus服务
通过上述步骤,您不仅成功地在Kubernetes集群内部署了Prometheus,还实现了对集群外服务器的有效监控。理解并实施网络配置是关键,确保监控数据的准确无误传输。随着监控需求的增长,您还可以进一步探索Prometheus生态中的其他组件,如Alertmanager、Grafana等,以构建完整的监控与报警体系。
224 62
|
13天前
|
存储 Kubernetes 网络协议
k8s的无头服务
Headless Service 是一种特殊的 Kubernetes 服务,其 `spec:clusterIP` 设置为 `None`,不会分配 ClusterIP,通过 DNS 解析提供服务发现。与普通服务不同,Headless Service 不提供负载均衡功能,每个 Pod 都有唯一的 DNS 记录,直接映射到其 IP 地址,适用于有状态应用的场景,如与 StatefulSet 一起部署数据库。示例中通过创建 Nginx 的 StatefulSet 和 Headless Service,展示了如何直接访问单个 Pod 并进行内容修改。
27 3
|
1月前
|
Prometheus Kubernetes 监控
k8s学习--kubernetes服务自动伸缩之水平伸缩(pod副本伸缩)HPA详细解释与案例应用
k8s学习--kubernetes服务自动伸缩之水平伸缩(pod副本伸缩)HPA详细解释与案例应用
110 1
k8s学习--kubernetes服务自动伸缩之水平伸缩(pod副本伸缩)HPA详细解释与案例应用
|
1月前
|
人工智能 专有云 Serverless
亚太唯一!阿里云再度入选Gartner®容器管理魔力象限领导者
亚太唯一!阿里云再度入选Gartner®容器管理魔力象限领导者
105 2
|
1月前
|
负载均衡 Kubernetes 区块链
随机密码生成器+阿里k8s负载均衡型服务加证书方法+移动终端设计+ico生成器等
随机密码生成器+阿里k8s负载均衡型服务加证书方法+移动终端设计+ico生成器等
53 1
|
1月前
|
Kubernetes 应用服务中间件 nginx
k8s学习--kubernetes服务自动伸缩之水平收缩(pod副本收缩)VPA策略应用案例
k8s学习--kubernetes服务自动伸缩之水平收缩(pod副本收缩)VPA策略应用案例
|
1月前
|
Kubernetes 监控 调度
k8s学习--kubernetes服务自动伸缩之垂直伸缩(资源伸缩)VPA详细解释与安装
k8s学习--kubernetes服务自动伸缩之垂直伸缩(资源伸缩)VPA详细解释与安装

相关产品

  • 容器计算服务
  • 容器服务Kubernetes版
  • 下一篇
    无影云桌面