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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 前言 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搭建和管理企业级网站应用
目录
相关文章
|
3天前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker与Kubernetes入门
【9月更文挑战第30天】在云计算的浪潮中,云原生技术正以前所未有的速度重塑着软件开发和运维领域。本文将通过深入浅出的方式,带你了解云原生的核心组件——Docker容器和Kubernetes集群,并探索它们如何助力现代应用的构建、部署和管理。从Docker的基本命令到Kubernetes的资源调度,我们将一起开启云原生技术的奇妙之旅。
|
3天前
|
存储 Kubernetes 关系型数据库
阿里云ACK备份中心,K8s集群业务应用数据的一站式灾备方案
阿里云ACK备份中心,K8s集群业务应用数据的一站式灾备方案
|
3天前
|
人工智能 运维 监控
阿里云ACK容器服务生产级可观测体系建设实践
阿里云ACK容器服务生产级可观测体系建设实践
|
4天前
|
Kubernetes Cloud Native Docker
云原生之旅:深入理解容器化与Kubernetes
【9月更文挑战第29天】在云计算的海洋中,云原生技术如同一艘航船带领着企业乘风破浪。本文将作为你的航海图,带你探索云原生的核心——容器化和Kubernetes。我们将从容器的基本概念出发,逐步深入到如何在Kubernetes集群中部署应用,最后探讨这些技术如何助力现代软件开发。文章旨在为读者提供清晰的云原生入门知识,并展示实际操作的步骤,让你能够自信地启航。
|
6天前
|
存储 Kubernetes Docker
深入探索容器化技术:Docker 实战与 Kubernetes 管理
深入探索容器化技术:Docker 实战与 Kubernetes 管理
16 0
|
19天前
|
弹性计算 运维 持续交付
探索Docker容器化技术及其在生产环境中的应用
探索Docker容器化技术及其在生产环境中的应用
68 5
|
12天前
|
Linux iOS开发 Docker
Docker:容器化技术的领航者 —— 从基础到实践的全面解析
在云计算与微服务架构日益盛行的今天,Docker作为容器化技术的佼佼者,正引领着一场软件开发与部署的革命。它不仅极大地提升了应用部署的灵活性与效率,还为持续集成/持续部署(CI/CD)提供了强有力的支撑。
192 69
|
13天前
|
运维 Cloud Native Docker
云原生技术入门:Docker容器化实战
【9月更文挑战第20天】本文将引导你走进云原生技术的世界,通过Docker容器化技术的实战演练,深入理解其背后的原理和应用。我们将一起探索如何在云平台上利用Docker简化部署、扩展和管理应用程序的过程,并揭示这一技术如何改变现代软件的开发和运维模式。
|
7天前
|
Cloud Native 持续交付 Docker
云原生技术入门与实践:Docker容器化部署示例
【9月更文挑战第25天】在数字化转型的浪潮下,云原生技术成为推动企业创新的重要力量。本文旨在通过浅显易懂的语言,为初学者揭示云原生技术的核心概念及其应用价值。我们将以Docker容器为例,逐步引导读者了解如何将应用程序容器化,并在云端高效运行。这不仅是对技术趋势的跟随,更是对资源利用和开发效率提升的探索。
26 4
|
1月前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo

相关产品

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