探讨基于阿里云容器技术架构(三)

简介: 本篇我们探讨基于Kubernetes YAML 部署面临的问题以及有哪些解法。

阅读本篇需要了解 Kustomization 和 Helm 相关知识。

上篇介绍了网关基于 YAML 的部署方式,本篇我们探讨这种部署方式可能遇到的问题,以及有哪些方法解题。

问题

在企业级研发流程中,发布一个应用的流程会更复杂。为了保证产品质量和开发、测试、运维等不同职能协作,一般研发流程在环境部分,包括:Dev、Test、 Staging 和 Prod 环境。

以网关部署的配置文件为例,一个 YAML 部署文件包括Deployment、Service 等内容,假设一个应用有4个环境组成,那么 YAML 文件的重复配置是非常多的。因为4个环境,除了 Pod 副本数量、namespace、limit 不同,其他都是相同的。如此,造成 YAML 后期维护难度增加、容易出错等风险。

解题思路

围绕 Kubernetes 生态,敏锐的开发者已经捕捉到这个机会,可能的方案譬如:Helm、Kustomization 。

Helm

Helm 提供了一套 Kubernetes 包管理的解决方案。Helm 3 是基于 Helm 2 的基础之上,Helm 3 的内部实现相较于 Helm 2 发生了很大变化。最明显的变化是删除 Tiller 。

image.png

从架构图上可以看出,Helm 有几个新的概念:

  • Repository
    Repository 是存储 Helm Chart 的仓库,可以在 Client 检索,也可以获取 Chart 并进行后续操作。
  • Client
    客户端工具,可以搜索 Chart 项目、安装 Chart、构建 Chart。也可以把 Chart 渲染为 Kubernetes 需要的 YAML 文件。
  • Tiller
    负责接收来自客户端的指令,完成对集群内应用生命周期的控制。
  • Chat
    Chat 是 YAML 文件的集合,生成Kubernetes应用程序所需的大量 Kubernetes 资源。一个典型的 Chat 目录文件结构如下:image.png

Kustomization

Kustomization 是一个轻量级的解决方案,没有 Helm 诸多新的概念,基本遵从 Kubernetes 原生的模式。在 Kubernetes 1.14 之后,甚至直接集成到 kubectl ,成为其中的一部分。他有两部分组成:

  • Base
    Base 是包含 YAML 文件的目录结构,是对基础资源配置的申明。若基础部分有改动,只需改这个目录即可,提升可维护性。

image.png

  • Overlay
    Overlay 是一个目录结构,可以包含各个环境的个性化配置,其他基础配置继承 Base 即可。一个完整的Kustomization 目录配置如下:

image.png

方案

我们选用轻量级的 Kustomization 方案,以网关为例,目录如下,进入到 pro 目录,执行 kustomize build 目录获得完整 YAML 文件。使用 kustomize build | kubectl apply -f - 部署应用。在 v1.14 中,使用 kubectl 通过 -k 标志部署即可。源码:https://github.com/Tony-Hangzhou/mvp-samples/tree/master/kustomize/gateway

Kustomization 可以在运行时编辑资源,使用 edit 命令即可,请参考官网。

image.png

总结

本篇我们探讨了原生 YAML 部署遇到的问题,以及使用 Kustomization 提升可维护性。

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
8月前
|
存储 数据挖掘 BI
2-5 倍性能提升,30% 成本降低,阿里云 SelectDB 存算分离架构助力波司登集团实现降本增效
波司登集团升级大数据架构,采用阿里云数据库 SelectDB 版,实现资源隔离与弹性扩缩容,查询性能提升 2-5 倍,总体成本降低 30% 以上,效率提升 30%,助力销售旺季高效运营。
500 9
|
8月前
|
存储 弹性计算 运维
AI时代下阿里云基础设施的稳定性架构揭秘
计算、存储、网络作为云计算基础 IaaS 服务,一直是阿里云的核心产品,承载着百万客户的 IT 基础设施。曾经我们认为应用高可用、服务分布式可以满足客户对 IaaS 所有的稳定性诉求。
1009 2
AI时代下阿里云基础设施的稳定性架构揭秘
|
7月前
|
人工智能 Cloud Native 安全
解读阿里云刚发布的《AI 原生应用架构白皮书》
阿里云在云栖大会重磅发布了《AI 原生应用架构白皮书》,该白皮书覆盖 AI 原生应用的 11 大关键要素,获得业界 15 位专家联名推荐,来自 40 多位一线工程师实践心得,全书合计超 20w 字,分为 11 章,全面、系统地解构 AI 原生应用架构,包含了 AI 原生应用的 11 大关键要素,模型、框架、提示词、RAG、记忆、工具、网关、运行时、可观测、评估和安全。本文整理自阿里云智能技术专家李艳林在云栖大会现场的解读。
2600 73
|
7月前
|
人工智能 缓存 安全
阿里云发布《AI 原生应用架构白皮书》
阿里云联合阿里巴巴爱橙科技,共同发布《AI 原生应用架构白皮书》,围绕 AI 原生应用的 DevOps 全生命周期,从架构设计、技术选型、工程实践到运维优化,对概念和重难点进行系统的拆解,并尝试提供一些解题思路。白皮书覆盖 AI 原生应用的 11 大关键要素,获得 15 位业界专家联名推荐,来自 40 多位一线工程师实践心的,全书合计超 20w 字,分为 11 章。
3652 66
|
6月前
|
人工智能 缓存 安全
阿里云发布《AI 原生应用架构白皮书》!
阿里云联合爱橙科技发布《AI原生应用架构白皮书》,系统解析AI应用在架构设计、开发运维中的关键挑战与解决方案,涵盖大模型、Agent、RAG、安全等11大核心要素,助力企业构建稳定、高效、可控的AI应用体系。
阿里云发布《AI 原生应用架构白皮书》!
|
7月前
|
存储 人工智能 关系型数据库
阿里云AnalyticDB for PostgreSQL 入选VLDB 2025:统一架构破局HTAP,Beam+Laser引擎赋能Data+AI融合新范式
在数据驱动与人工智能深度融合的时代,企业对数据仓库的需求早已超越“查得快”这一基础能力。面对传统数仓挑战,阿里云瑶池数据库AnalyticDB for PostgreSQL(简称ADB-PG)创新性地构建了统一架构下的Shared-Nothing与Shared-Storage双模融合体系,并自主研发Beam混合存储引擎与Laser向量化执行引擎,全面解决HTAP场景下性能、弹性、成本与实时性的矛盾。 近日,相关研究成果发表于在英国伦敦召开的数据库领域顶级会议 VLDB 2025,标志着中国自研云数仓技术再次登上国际舞台。
750 1
|
7月前
|
存储 Kubernetes 网络安全
关于阿里云 Kubernetes 容器服务(ACK)添加镜像仓库的快速说明
本文介绍了在中国大陆地区因网络限制无法正常拉取 Docker 镜像的解决方案。作者所在的阿里云 Kubernetes 集群使用的是较旧版本的 containerd(1.2x),且无法直接通过 SSH 修改节点配置,因此采用了一种无需更改 Kubernetes 配置文件的方法。通过为 `docker.io` 添加 containerd 的镜像源,并使用脚本自动修改 containerd 配置文件中的路径错误(将错误的 `cert.d` 改为 `certs.d`),最终实现了通过多个镜像站点拉取镜像。作者还提供了一个可重复运行的脚本,用于动态配置镜像源。虽然该方案能缓解镜像拉取问题,
760 2
|
7月前
|
存储 分布式计算 资源调度
【赵渝强老师】阿里云大数据MaxCompute的体系架构
阿里云MaxCompute是快速、全托管的EB级数据仓库解决方案,适用于离线计算场景。它由计算与存储层、逻辑层、接入层和客户端四部分组成,支持多种计算任务的统一调度与管理。
597 1