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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 本篇我们探讨基于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 提升可维护性。

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
4小时前
|
弹性计算 数据库 Docker
学习阿里云架构设计知识2-翀举
VPC分区清晰架构,VSW网络分隔,CEN连通VPC,按量付费小规格,均衡策略,ESS/ACK内置SNAT,ECS用NAT上网。建DMZ需VPC、VSW、NAT、EIP。主系统多VPC/VSW配ECS和Redis,CEN全连接。CEN设路由表,外网访问设DMZ、CEN、EIP,加堡垒机。Web系统ACR部署WordPress,配数据库。验证WordPress、弹性伸缩,测外访、发文、负载。含架构图。
17 1
学习阿里云架构设计知识2-翀举
|
4小时前
|
弹性计算 负载均衡 容灾
应用阿里云弹性计算:打造高可用性云服务器ECS架构
阿里云弹性计算助力构建高可用云服务器ECS架构,通过实例分布、负载均衡、弹性IP、数据备份及多可用区部署,确保业务连续稳定。自动容错和迁移功能进一步增强容灾能力,提供全方位高可用保障。
20 0
|
4小时前
|
存储 Cloud Native 对象存储
AutoMQ:如何基于阿里云计算与存储产品实现云原生架构升级
AutoMQ[1] 是新一代基于共享存储架构实现的云原生 Kafka。得益于其存算分离的共享存储架构,通过和阿里云合作,深度使用阿里云可靠、先进的云服务如对象存储OSS、块存储 ESSD、弹性伸缩ESS以及抢占式实例实现了相比 Apache Kafka 10倍的成本优势并且提供了自动弹性的能力。
AutoMQ:如何基于阿里云计算与存储产品实现云原生架构升级
|
4小时前
|
人工智能 分布式计算 Cloud Native
阿里云PAI平台架构介绍
阿里云PAI平台架构介绍
27 0
|
4小时前
|
运维 Serverless API
Serverless 应用引擎产品使用之在阿里云函数计算中,容器运行过程中的最大内存使用量获取如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
35 2
|
4小时前
|
运维 IDE Serverless
Serverless 应用引擎产品使用之阿里函数计算中,阿里云容器镜像服务(Container Registry)中创建自定义镜像,然后将其部署到FC上如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
30 0
|
4小时前
|
消息中间件 监控 微服务
【专栏】随着技术发展,未来将探索服务网格、容器化和云原生技术,以提升微服务架构的效能
【4月更文挑战第27天】本文探讨了构建高效微服务架构的后端开发最佳实践。微服务以服务独立、去中心化、自治和轻量级通信为核心原则,带来可扩展性、独立性、技术灵活性和团队协作优势。实践中,要注意服务拆分粒度、选择合适的通信协议(如RESTful、RPC、消息队列)、处理数据一致性与分布式事务、实施服务治理和监控,以及确保安全性与权限控制。随着技术发展,未来将探索服务网格、容器化和云原生技术,以提升微服务架构的效能。
|
4小时前
|
人工智能 边缘计算 Kubernetes
阿里云边缘容器云帮助AI推理应用快速落地
2024全球分布式云大会·北京站,阿里云徐若晨演讲内容分享
28 0
|
4小时前
|
Kubernetes Cloud Native 持续交付
构建高效云原生应用:容器化与微服务架构的融合
【4月更文挑战第24天】 随着云计算的不断演进,云原生技术已成为企业数字化转型的核心动力。本文深入探讨了如何通过容器化技术和微服务架构的融合,构建高效、可扩展且易于管理的云原生应用。我们分析了容器化带来的隔离性和可移植性优势,以及微服务架构在提升系统灵活性和促进团队协作方面的重要作用。文章还提供了实施策略,包括选择合适的容器平台、确保服务间通信的安全性以及持续集成/持续部署(CI/CD)的实践,以帮助企业实现敏捷开发和快速迭代。
|
4小时前
|
弹性计算 运维 Kubernetes
阿里云轻量应用服务器与轻量容器服务简介与区别及收费标准参考
轻量应用服务器是深受个人和普通企业用户亲耐的一款轻量级云服务器产品,提供精品应用一键部署,支持一站式的域名、网站、安全、运维、应用管理等服务,极大优化搭建简单应用的体验,降低了入门级用户使用云计算产品的门槛。轻量容器服务是专为学生、个人开发者等用户打造的轻量级容器服务,帮助您在云上快速了解容器和Kubernetes(简称K8s)相关的基础概念和轻松进行入门实践。本文为大家介绍一下阿里云轻量应用服务器与轻量容器服务的区别以及收费标准,以供参考。
阿里云轻量应用服务器与轻量容器服务简介与区别及收费标准参考