Jump to section

什么是 Kubernetes 部署?

复制 URL

Kubernetes 部署是 Kubernetes 中的一个资源对象,可以对应用进行声明性更新。部署(Deployment)允许您描述应用的生命周期,比如应用使用的镜像、容器集数量,以及容器集更新方式。 

通过 Kubernetes 对象,Kubernetes 系统可了解您期望的集群工作负载。创建对象后,集群将持续工作以确保该对象存在,从而保持 Kubernetes 集群的理想状态。 

手动更新容器化应用的过程耗时而繁琐。将服务升级到下一版本需要启动容器集的新版本,停止容器集的旧版本,等待并验证新版本是否成功启动,在出现故障时有时还要回滚到上一版本。

手动执行这些步骤可能导致人为错误,而妥善地编写脚本也会需要大量资源,这两种情况都可能会使发布过程变为瓶颈。 

而 Kubernetes 部署可让这一过程自动化并且可重复。部署完全由 Kubernetes 后端管理,整个更新过程在服务器端执行,无需客户端干预。

部署可确保始终有所需数量的容器集运行并可用。更新过程也被完整地记录下来,并使用暂停、继续和回滚到以前版本的选项进行版本控制。

Kubernetes 部署对象允许您:

  • 部署副本集或容器集
  • 更新容器集和副本集
  • 回滚到以前的部署版本
  • 扩展部署
  • 暂停或继续部署

使用 Kubernetes 部署管理应用包括应用的更新方式。部署的一大主要优势是能够预测性地启动和停止容器集。

滚动更新策略

滚动更新策略可以有控制地、分阶段更换应用的容器集,确保始终有最小容器集数量可用。

部署默认确保任何时候最多只有 25% 的容器集不可用,也不会置备超过理想状态下指定容器集数量的 25%。 

在没有足够新容器集可用之前,部署不会删除旧容器集,从而保持可用性阈值,在删除足够多的旧容器集之前,也不会创建新的容器集。

部署对象允许您通过 maxSurge 和 maxUnavailable 字段控制可用容器集和多余容器集的范围。

采用滚动更新策略时,在更新过程中没有停机时间,但是应用架构必须确保能够容许容器集销毁和创建操作。

在更新过程中,2 种容器版本同时运行 ,这可能会给服务使用者制造问题。

重建策略

重建策略会在创建新策略之前删除所有现有容器集。Kubernetes 先终止当前版本中的所有容器,然后在旧容器删除时同时启动所有新容器。 

使用重新创建部署策略会有一些停机时间,因为所有使用旧版本的容器都会停止,而且没有新的容器准备好处理传入的请求。 

但是,不会有 2 种版本容器同时运行,这对服务使用者来说更简单。

部署是通过编写清单创建的。接着,使用 kubectl apply 或声明性部署模式,将该清单应用到 Kubernetes 集群。Kubernetes 的配置文件可使用 YAML 或 JSON 编写。

创建部署时,将描述所需状态,然后 Kubernetes 将使用滚动或重新创建部署策略进行实施。 

通过使用声明性部署模式,您可以使用 Kubernetes 部署自动执行一组容器集的升级和回滚过程。Kubernetes 模式是基于容器的应用和服务的可复用设计模式。  

你可以通过更改容器集模板规格来更新部署。对规格字段进行更改时,将自动触发更新部署。

部署生命周期包括进行中、完成和失败三种状态。部署在执行更新任务时(比如更新或扩展容器集)处于进行中状态。 

完成状态表示所有任务均已成功完成,系统处于理想状态。失败状态是由于一些错误阻止了部署完成任务。 

您可以使用 kubectl 部署状态命令检查或监控部署的状态。 

需要 Kubernetes 入门帮助?学习如何构建和管理容器,从而在 Kubernetes 和红帽® OpenShift® 集群上进行部署。本培训课程将帮助您培养容器和 Kubernetes 的实操经验,掌握有关容器管理的核心知识。 

红帽 OpenShift 是一个企业就绪型 Kubernetes 平台。它为开发人员提供了一种自助服务环境,可以在任何基础架构上打造并实现全堆栈自动化运维。

红帽 OpenShift 汇集了所有相关的先进技术,旨在将 Kubernetes 打造成为可供企业使用的强大平台,这些技术包括:注册表、联网、遥测、安全性、自动化和服务。

 

借助红帽 OpenShift 的可扩展性以及控制和编排功能,开发人员可以构建新的容器化应用、对其进行托管并在云端加以部署,从而轻松快速地将各种奇思妙想转变为新业务。

继续阅读

文章

容器与虚拟机

Linux 容器和虚拟机(VM)都是封装型计算环境,里面组合了各种 IT 组件并独立于系统的其余部分。

文章

什么是容器编排?

容器编排是指自动化容器的部署、管理、扩展和联网。

文章

什么是 Linux 容器?

Linux 容器是与系统隔离开的一系列进程,它从单独的镜像运行,并由该镜像提供支持进程所需的全部文件。

详细了解容器

产品

企业级应用平台,包含一系列久经测试的服务,可在您选择的基础架构上将应用推向市场。

相关资源

培训

免费培训课程

"通过红帽来运行容器"技术概述

免费培训课程

容器、Kubernetes 和红帽 OpenShift 技术概述

免费培训课程

利用微服务架构开发云原生应用