k8s与caas--容器云caas平台的落地实践

简介: 前言 在移动互联网时代,新的技术需要新技术支持环境、新的软件交付流程和IT架构,从而实现架构平台化,交付持续化,业务服务化。容器将成为新一代应用的标准交付件,容器云将帮助企业用户构建研发流程和云平台基础设施。

前言

在移动互联网时代,新的技术需要新技术支持环境、新的软件交付流程和IT架构,从而实现架构平台化,交付持续化,业务服务化。容器将成为新一代应用的标准交付件,容器云将帮助企业用户构建研发流程和云平台基础设施。缩短应用向云端交付的周期,降低运营门槛。加速向互联网技术和业务的双转型。容器云将对接各类代码托管库,实现自动化持续集成 和DOCKER镜像构建,为新一代应用交付和开发运维一体化奠定了基础。容器云将支持应用的一键式部署交付,提供负载均衡,私有域名绑定,性能监控等应用生命周期管理服务。是微服务架构,轻量级应用部署和运维的理想平台。未来IT界会以容器化应用作为交付的标准。容器云为开发者和企业提供了一个快速构建、集成、部署、运行容器化应用的平台,从而提高应用开发的迭代效率,简化运维环节,降低运维成本。
对于企业来说,容器云价值体现在:

  1. 作为内部技术纽带,多应用统一部署平台,提高开发效率,减少运维成本。
  2. 平台产品化过程中,投入少且产出价值高。可依托现有的IaaS平台资源,相对于传统的承接项目获益的方式,容器云会积累宝贵的客户资源及数据资源,这些无形资产最终会为公司赢得巨大战略价值。
  3. 增加云企业辨识度,如果只具有IaaS层服务的云平台是不完整的,对用户的云服务是不充分的,应该具有为用户提供全方位的云服务体系,应该具有先进且高附加值的云平台。

应用功能架构

基于Kubernetes实现的容器云平台,就功用而言可以分为四大部分:

  1. 自动化容器的部署、升级和复制;
  2. 随时扩展或收缩容器规模,实现容器的弹性扩展;
  3. 以集群的方式运行、管理跨机器的容器,并且提供容器间的负载均衡;
  4. Kubernetes的自我修复机制使得容器集群总是运行在用户期望的状态。

未来容器云也可能会成为云管理平台的统治者,也还会有更多的应用在容器云上原生运行起来。因为对于容器云,它可以把很多分散的物理计算资源抽象成一个大的资源池,利用这些资源来执行用户的计算任务。对于用户来说,操作一个分散的集群资源就像在使用一台计算机。人工智能的集中式爆发,机器学习的训练过程对于快速迭代的高要求,让能够轻量级接入,并且可以对用户提供秒级响应的容器云发挥了巨大的优势。师出同门的Google Tensorflow项目很早也进行了与Kubernetes的集成,人工智能平台上实现了Spark on Kubernetes和 Hadoop on Kubernetes。无论是容器技术,还是DevOps和微服务,都说明灵活、弹性、轻量化的IT应用模式逐渐形成。而这种模式的形成对于复杂产品的快速开发有着积极意义,谷歌等IT巨头对产业的贡献,让初创企业与大型IT企业之间的差距缩短,迎来最好的IT时代。容器云架构方案,具有六大功能模块,每个部分包含对应的容器技术栈。具体架构如下

5976e835c9c9761480c02c55fa50d71303841075

存储方案

后端存储主要采用 Ceph 驱动。Ceph 独一无二地用统一的系统提供了对象、块、和文件存储功能,它可靠性高、管理简便、并且是自由软件。 Ceph 的强大足以改变贵公司的 IT 基础架构、和管理海量数据。 Ceph 可提供极大的伸缩性——供成千用户访问 PB 乃至 EB 级的数据。 Ceph 节点以普通硬件和智能守护进程作为支撑点, Ceph 存储集群组织起了大量节点,它们之间靠相互通讯来复制数据、并动态地重分布数据。Ceph在容器云中主要应用场景是有状态服务。包括关系型数据库和nosql数据库等数据需要持久化的业务。

网络方案

3230da1b93a9a03f3f8ccea4f39ce6a2e202a2a0

底层容器网络我们最初使用的是Calico。 Calico基本架构图 Calico是一个纯三层网络,没有引入一个DP,没有封包。在主机内部做另外一个容器,可以三条到达终端,你可以知道是谁出了问题,调试的时候很容易,很好管理。容器内的应用数据传出来,和二层完全隔离,对于我们绝大多数的应用来讲只需要三层就够了,很少有应用处理二层。而且Calico支持丰富的网络策略,可以实现多租户管理,对于未来对外提供容器云服务至关重要。

容器编排方案

Kubernetes是谷歌开源的容器集群管理系统,是Google多年大规模容器管理技术Borg的开源版本,主要功能包括:

  • 1.基于容器的应用部署、维护和滚动升级
  • 2.负载均衡和服务发现
  • 3.跨机器和跨地区的集群调度
  • 4.自动伸缩
  • 5.无状态服务和有状态服务
  • 6.广泛的Volume支持
  • 7.插件机制保证扩展性

Kubernetes发展非常迅速,已经成为容器编排领域的领导者。Kubernetes提供了很多的功能,它可以简化应用程序的工作流,加快开发速度。通常,一个成功的应用编排系统需要有较强的自动化能力,这也是为什么 Kubernetes 被设计作为构建组件和工具的生态系统平台,以便更轻松地部署、扩展和管理应用程序。用户可以使用Label以自己的方式组织管理资源,还可以使用Annotation来自定义资源的描述信息,比如为管理工具提供状态检查等。此外,Kubernetes控制器也是构建在跟开发人员和用户使用的相同的API之上。用户还可以编写自己的控制器和调度器,也可以通过各种插件机制扩展系统的功能。这种设计使得可以方便地在Kubernetes之上构建各种应用系统。目前整个kubernetes集群采用高可用部署,架构如下图:

bda87f1c5c234d27a62e2982579ad99f33520074

性能监控方案

容器监控的对象主要包括 Kubernetes 集群(各组件)、应用服务、Pod、容器及网络等。这些对象主要表现为以下三个方面: 1.Kubernetes 集群自身健康状态监控(5个基础组件、Docker、Etcd、Calico等) 2.系统性能的监控,比如:CPU、内存、磁盘、网络、filesystem 及 processes 等; 3.业务资源状态监控,主要包括:rc/rs/deployment、Pod、Service 等; 针对容器的整体运行状况及性能状况监控,采用了自研的监控系统实现整体IT资源的统一监控。

日志收集方案

容器平台的日志系统一般包括:Kubernetes 组件的日志,资源的事件日志及容器所运行的应用的日志。本容器云平台,使用fluentd(以DaemonSet的方式启动)来收集日志,并将收集的日志发送给统一日志平台。

CI/CD方案

CI/CD(持续集成与部署)模块肩负着 DevOps 的重任,是开发与运维人员的桥梁,它实现了业务(应用)从代码到服务的自动上线,满足了开发过程中一键的持续集成与部署的需求。本容器云平台,对接持续集成&发布系统。除此之外,实现服务扩缩容,弹性伸缩(HPA)、负载均衡、灰度发布等,也加入了代码质量检查(Sonar)、自动化测试及性能测试插件等,这些都是 CI/CD PaaS 平台的重要组成部分。

云平台功能

通过可视化界面,可以简单方便的实现对资源的部署、管理与监控,包括:资源编排。可以实现以下功能: 1.全面监控:主机、路由器、硬盘、公网IP、负载均衡器都具备完整全面的历史监控和实时监控信息。 2.开放式的图形化操作: 直观展示主机及其相关资源,并可以直接操作图形,所有改动自动更新。 3.操作日志记录: 记录下用户所有重要操作历史,方便定位和查找。 4.网络拓扑结构展示: 用图形展示复杂的网络拓扑结构,连接私有网络和主机更加方便直观。 5.备份链可视化操作: 对于备份各节点一目了然,同时可直接操作新建备份及回滚到之前的状态。 6.自动伸缩策略: 根据资源监控信息定义自动伸缩策略,调节资源配置或集群规模,无需人工介入。 7.通知列表: 用于接收监控告警通知、定时器任务或自动伸缩策略的执行结果。 8.快速的系统构建: 使用资源编排,可以在短短几分钟内迅速复制一套已存在的拥有复杂拓扑的系统;或者迅速规划您的系统架构并评估成本;还可以实现资源拓扑的跨区域复用。 9.丰富的模板创建方式: 在控制台中,用户可以从无到有构建模板;也可以从系统推荐的常见模板入手创建,或基于已经创建的模板继续完善;还可以将已经存在的资源抽取出一套拓扑关系成为模板。

总结

caas平台衍生出来的整个devops体系是至关重要的。最终实现打通日志,监控和apm数据,算法实现根因分析,也就是AIOPS。能够快速定位故障。快速反馈到运维和开发,形成一个闭环。
Gartner定义的AIOps平台拥有11项能力,包括历史数据管理( Historical data management) 、流数据管理( Streaming data management )、日志数据提取( Log data ingestion) 、网络数据提取( Wire data ingestion )、算法数据提取( Metric data ingestion )、文本和NLP文档提取( Document text ingestion )、自动化模型的发现和预测( Automated pattern discovery and prediction )、异常检测( Anomaly detection )、根因分析( Root cause determination )、按需交付( On-premises delivery )和软件服务交付( Software as a service )等。当然这是后续和正在做的工作。

本文转自SegmentFault-k8s与caas--容器云caas平台的落地实践

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
12月前
|
Kubernetes 调度 异构计算
生产环境 K8S + Deepseek 实现大模型部署 和 容器调度(图解+史上最全)
生产环境 K8S + Deepseek 实现大模型部署 和 容器调度(图解+史上最全)
生产环境 K8S + Deepseek 实现大模型部署 和 容器调度(图解+史上最全)
|
12月前
|
存储 负载均衡 测试技术
ACK Gateway with Inference Extension:优化多机分布式大模型推理服务实践
本文介绍了如何利用阿里云容器服务ACK推出的ACK Gateway with Inference Extension组件,在Kubernetes环境中为多机分布式部署的LLM推理服务提供智能路由和负载均衡能力。文章以部署和优化QwQ-32B模型为例,详细展示了从环境准备到性能测试的完整实践过程。
|
12月前
|
数据采集 消息中间件 Kubernetes
容器化爬虫部署:基于K8s的任务调度与自动扩缩容设计
随着业务复杂度提升,传统定时任务和手工扩缩容难以满足高并发与实时性需求。本文对比两种基于 Kubernetes 的爬虫调度与扩缩容方案:CronJob+HPA 和 KEDA。从调度灵活性、扩缩容粒度、实现难度等维度分析,并提供 YAML+Python 示例。方案 A(CronJob+HPA)适合固定定时任务,配置简单;方案 B(KEDA)支持事件驱动,适合高并发与异步触发场景。根据实际需求可混合使用,优化资源利用与效率。
411 4
|
Prometheus Kubernetes 监控
OpenAI故障复盘 - 阿里云容器服务与可观测产品如何保障大规模K8s集群稳定性
聚焦近日OpenAI的大规模K8s集群故障,介绍阿里云容器服务与可观测团队在大规模K8s场景下我们的建设与沉淀。以及分享对类似故障问题的应对方案:包括在K8s和Prometheus的高可用架构设计方面、事前事后的稳定性保障体系方面。
|
存储 人工智能 Kubernetes
ACK Gateway with AI Extension:面向Kubernetes大模型推理的智能路由实践
本文介绍了如何利用阿里云容器服务ACK推出的ACK Gateway with AI Extension组件,在Kubernetes环境中为大语言模型(LLM)推理服务提供智能路由和负载均衡能力。文章以部署和优化QwQ-32B模型为例,详细展示了从环境准备到性能测试的完整实践过程。
|
存储 人工智能 物联网
ACK Gateway with AI Extension:大模型推理的模型灰度实践
本文介绍了如何使用 ACK Gateway with AI Extension 组件在云原生环境中实现大语言模型(LLM)推理服务的灰度发布和流量分发。该组件专为 LLM 推理场景设计,支持四层/七层流量路由,并提供基于模型服务器负载感知的智能负载均衡能力。通过自定义资源(CRD),如 InferencePool 和 InferenceModel,可以灵活配置推理服务的流量策略,包括模型灰度发布和流量镜像。
|
Kubernetes 监控 Serverless
基于阿里云Serverless Kubernetes(ASK)的无服务器架构设计与实践
无服务器架构(Serverless Architecture)在云原生技术中备受关注,开发者只需专注于业务逻辑,无需管理服务器。阿里云Serverless Kubernetes(ASK)是基于Kubernetes的托管服务,提供极致弹性和按需付费能力。本文深入探讨如何使用ASK设计和实现无服务器架构,涵盖事件驱动、自动扩展、无状态设计、监控与日志及成本优化等方面,并通过图片处理服务案例展示具体实践,帮助构建高效可靠的无服务器应用。
|
监控 Kubernetes Cloud Native
基于阿里云容器服务Kubernetes版(ACK)的微服务架构设计与实践
本文介绍了如何基于阿里云容器服务Kubernetes版(ACK)设计和实现微服务架构。首先概述了微服务架构的优势与挑战,如模块化、可扩展性及技术多样性。接着详细描述了ACK的核心功能,包括集群管理、应用管理、网络与安全、监控与日志等。在设计基于ACK的微服务架构时,需考虑服务拆分、通信、发现与负载均衡、配置管理、监控与日志以及CI/CD等方面。通过一个电商应用案例,展示了用户服务、商品服务、订单服务和支付服务的具体部署步骤。最后总结了ACK为微服务架构提供的强大支持,帮助应对各种挑战,构建高效可靠的云原生应用。
|
存储 运维 Kubernetes
容器数据保护:基于容器服务 Kubernetes 版(ACK)备份中心实现K8s存储卷一键备份与恢复
阿里云ACK备份中心提供一站式容器化业务灾备及迁移方案,减少数据丢失风险,确保业务稳定运行。
|
Kubernetes Linux 虚拟化
入门级容器技术解析:Docker和K8s的区别与关系
本文介绍了容器技术的发展历程及其重要组成部分Docker和Kubernetes。从传统物理机到虚拟机,再到容器化,每一步都旨在更高效地利用服务器资源并简化应用部署。容器技术通过隔离环境、减少依赖冲突和提高可移植性,解决了传统部署方式中的诸多问题。Docker作为容器化平台,专注于创建和管理容器;而Kubernetes则是一个强大的容器编排系统,用于自动化部署、扩展和管理容器化应用。两者相辅相成,共同推动了现代云原生应用的快速发展。
3751 11

相关产品

  • 容器服务Kubernetes版
  • 推荐镜像

    更多