在阿里云容器服务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搭建和管理企业级网站应用
目录
相关文章
|
1天前
|
供应链 安全 Cloud Native
阿里云飞天企业版获【可信云·容器平台安全能力】先进级认证
阿里云飞天企业版容器系列产品获中国信息通信研究院【可信云·容器平台安全能力】先进级认证,这是飞天企业版容器产品获得《等保四级PaaS平台》和《 云原生安全配置基线规范V2.0》之后,本年度再一次获得行业权威认可,证明飞天企业版的容器解决方案具备符合行业标准的最高等级容器安全能力。
阿里云飞天企业版获【可信云·容器平台安全能力】先进级认证
|
5天前
|
人工智能 运维 Kubernetes
阿里云容器服务AI助手2.0 - 新一代容器智能运维能力
2024年11月,阿里云容器服务团队进一步深度融合现有运维可观测体系,在场景上覆盖了K8s用户的全生命周期,正式推出升级版AI助手2.0,旨在更好地为用户使用和运维K8S保驾护航。
|
10天前
|
Prometheus Kubernetes 监控
OpenAI故障复盘 - 阿里云容器服务与可观测产品如何保障大规模K8s集群稳定性
聚焦近日OpenAI的大规模K8s集群故障,介绍阿里云容器服务与可观测团队在大规模K8s场景下我们的建设与沉淀。以及分享对类似故障问题的应对方案:包括在K8s和Prometheus的高可用架构设计方面、事前事后的稳定性保障体系方面。
|
2天前
|
监控 安全 Cloud Native
阿里云容器服务&云安全中心团队荣获信通院“云原生安全标杆案例”奖
2024年12月24日,阿里云容器服务团队与云安全中心团队获得中国信息通信研究院「云原生安全标杆案例」奖。
|
2天前
|
人工智能 运维 监控
容器服务Kubernetes场景下可观测体系生产级最佳实践
阿里云容器服务团队在2024年继续蝉联Gartner亚洲唯一全球领导者象限,其可观测体系是运维的核心能力之一。该体系涵盖重保运维、大规模集群稳定性、业务异常诊断等场景,特别是在AI和GPU场景下提供了全面的观测解决方案。通过Tracing、Metric和Log等技术,阿里云增强了对容器网络、存储及多集群架构的监控能力,帮助客户实现高效运维和成本优化。未来,结合AI助手,将进一步提升问题定位和解决效率,缩短MTTR,助力构建智能运维体系。
|
24天前
|
Kubernetes 算法 调度
阿里云 ACK FinOps成本优化最佳实践
本文源自2024云栖大会梁成昊演讲,讨论了成本优化策略的选择与实施。文章首先介绍了成本优化的基本思路,包括优化购买方式、调整资源配置等基础策略,以及使用弹性、资源混部等高级策略。接着,文章详细探讨了集群优化和应用优化的具体方法,如使用抢占式实例降低成本、通过资源画像识别并优化资源配置,以及利用智能应用弹性策略提高资源利用效率。
|
24天前
|
运维 Kubernetes Serverless
阿里云Argo X K8s玩转工作流引擎,实现大规模并行计算
本文基于2024云栖大会田双坤的演讲,介绍了Kubernetes作为云原生操作系统的角色及其在各类任务中的应用,重点探讨了Argo Workflows在Kubernetes上编排并行任务的能力。面对自建Argo Workflows的挑战,如稳定性、成本和安全性等问题,阿里巴巴云推出了全托管的Serverless Argo工作流,提供全托管、免运维、可观测和易集成的特点,显著提升了任务编排的效率和稳定性。适用于数据处理、科学计算、自动驾驶仿真等多个领域。
|
24天前
|
Kubernetes 容灾 调度
阿里云 ACK 高可用稳定性最佳实践
本文整理自2024云栖大会刘佳旭的演讲,主题为《ACK高可用稳定性最佳实践》。文章探讨了云原生高可用架构的重要性,通过Kubernetes的高可用案例分析,介绍了ACK在单集群高可用架构设计、产品能力和最佳实践方面的方法,包括控制面和数据面的高可用策略、工作负载高可用配置、企业版容器镜像服务高可用配置等内容,旨在帮助企业构建更加可靠和高效的应用运行环境。
|
容器 Kubernetes Perl
阿里云Kubernetes平台构建和管理实践(上)
阿里云智能容器平台解决方案架构师徐征讲解阿里云Kubernetes平台构建和管理实践,徐征主要从事帮助企业在面向云原生的应用转型的过程中提供解决方案和相应的工作。
10920 0
|
容器 Perl 监控
阿里云Kubernetes平台构建和管理实践(下)
阿里云智能容器平台解决方案架构师徐征讲解阿里云Kubernetes平台构建和管理实践,徐征主要从事帮助企业在面向云原生的应用转型的过程中提供解决方案和相应的工作。
3295 0

相关产品

  • 容器计算服务
  • 容器服务Kubernetes版