疫情期间云沃客使用阿里云k8s动态扩容实践

简介: 在春节前后的武汉新冠肺炎疫情的影响下,云沃客为了支持国家对疫情的控制,免费对所有企业开放公司研发6年的云工作平台。因此在节后众多企业复工的情况下,平台面对非常大的流量压力。如何做到动态扩容应对流量冲击压力,我们首先想到了k8s,因为云沃客基本上都是基于微服务的,但是短时间内自建k8s平台,还要面临巨大的运维压力,实在时间来不及,所以只能把目光聚焦到阿里云的容器云服务,经过压力测试我们发现阿里云的服务非常不错。因为有了这篇k8s的实践。目前来看也能很好支撑云沃客的流量。

疫情期间云沃客使用阿里云k8s动态扩容实践
一.背景
在春节前后的武汉肺炎疫情的影响下,国家和地方政府纷纷出台春节假期延期政策,鼓励有条件的企业在家办公,避免进入人口密集环境。我司北京云族佳科技有限公司数年来专注于云工作生态环境的建设与完善,先后推出云沃客,企业版,黄豆纳才,绩效监控等云产品,帮助企业及其成员在不同空间维度下协同开展工作,在云端最大限度的还原现场工作场景,现云沃克平台向所有企业无限制免费开放,至官宣疫情结束后90天。欢迎个人和企业用户入住云沃克平台。
为了应对突发的流量,我们决定将原来的技术架构予以升级,我们希望新的架构能够具有以下几个特征:
1.能够做到简装上阵,开发人员可以更专注于业务的开发,同时系统兼运维工程师负责部署和运维,而无需考虑过于复杂的架构设计。
2.能够全面的拥抱微服务,我们希望新的架构的各个模块能独立上线,部署,和分发
3.其次能够方便的迁移至公有云中
4.强大的横向扩展能力以对应激增流量
很自然的kubernetes(简称k8s)成为我们的首选方案
二.k8s简介
2.1 k8s是什么
它是谷歌推出的一个全新的基于容器技术的分布式架构领先方案,它是谷歌十几年来大规模应用容器技术的经验积累和升华的重要成果,k8s是谷歌严格保密十几年的秘密武器Brog的一个开源实现,这个久负盛名的Brog用于谷歌内部管理大规模的集群系统,它基于容器技术。随着2015年Brog的论文公开以及k8s的高调宣传,人们才得以窥视和了解它。
如果我们遵循k8s的设计思想,传统架构的那些与业务无关的底层代码和功能,研发人员可以不必再关注,比如我们不用再考虑负载均衡的选型和部署实施问题,不必考虑自行引入或者开发一套服务治理方案,k8s为我们做的已经够多了,实践表明,使用k8s能够减少我们30%的开发成本,使得研发人员更关注与实现业务本身,k8s提供了强大的自动化机制,运维难度和成本都大幅降低。
2.2 将k8s搬到云端
由于我司的服务大部分都部署在阿里云上 ,同时阿里云也提供了k8s集群的功能,现将公司业务搬到k8s上的过程予以记录。
1.首先创建集群,在阿里云的web页面点击创建
图片 1.png

会看到,阿里云提供了多种集群方式工选择,其中我们根据自身情况,选择了标准的托管版本,即是集群的master节点由ACK(阿里云k8s容器服务)托管,而用户只需创建node节点即可,
图片 2.png

这里我们选择新建三个ECS作为工作节点,由于k8s本身不处理网络细节,它要求所有pod可以直接通信,也就是不能通过NAT转化,在同一个大二层网络内通信,因此需要选择网络插件作为k8s底层的通信手段,这里选择广泛使用的Flannel插件,指定pod和service的CIDR,如无特殊需求,默认就行,
选择完毕后,等待一段时间,

在控制台上查看,集群已经成功创建。
图片 3.png

2.在这个集群上创建我们的应用,在我们的使用场景中我们主要是提供restful api服务,因此我们选择无状态的应用
图片 4.png

  1. 这里可以选择使用镜像创建,也可以使用模板创建,由于我们在测试环境部署过k8s,已经写好了一些yaml文件,故而我们选择使用模板创建,若是第一次使用k8s,可以使用使用镜像创建,

deployment的yaml文件如下
图片 5.png

点击创建,如无异常,能看到
图片 6.png

创建成功,同时可以点击编辑,来修改参数,比如限制资源的使用,加入存活和就绪检查
图片 7.png

查看容器组可以看到

图片 8.png
pod已经成功运行起来,
4.接着我们我们创建service,在service管理页面点击创建

图片 9.png
service我们选择使用内网slb,选择关联到的无状态应用实例,添加端口映射列表,点击创建
无异常的化,

图片 10.png

我们能得到服务的内网访问方式。将此地址提供给前端访问即可,至此,算是基本将此应用迁移到k8s中了。,通过k8s我们能方便快速的水平扩展,当流量升上来时,我只用增到副本的数量,反之减少副本的数量,后续会将其他应用陆续迁移到k8s中
2.3后续工作
1.通过ab工具压测一下此api的性能如何
2.通过jenkins集成打包,部署,更新过程。阿里云同时提供了镜像仓库工能,制作的镜像可以存入。
3.发现阿里云k8s集成了istio service mesh功能,后期会利用它做一些服务治理的工作,比如流量控制,灰度发布等。

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
18天前
|
存储 Kubernetes 网络安全
关于阿里云 Kubernetes 容器服务(ACK)添加镜像仓库的快速说明
本文介绍了在中国大陆地区因网络限制无法正常拉取 Docker 镜像的解决方案。作者所在的阿里云 Kubernetes 集群使用的是较旧版本的 containerd(1.2x),且无法直接通过 SSH 修改节点配置,因此采用了一种无需更改 Kubernetes 配置文件的方法。通过为 `docker.io` 添加 containerd 的镜像源,并使用脚本自动修改 containerd 配置文件中的路径错误(将错误的 `cert.d` 改为 `certs.d`),最终实现了通过多个镜像站点拉取镜像。作者还提供了一个可重复运行的脚本,用于动态配置镜像源。虽然该方案能缓解镜像拉取问题,
151 2
|
5月前
|
存储 负载均衡 测试技术
ACK Gateway with Inference Extension:优化多机分布式大模型推理服务实践
本文介绍了如何利用阿里云容器服务ACK推出的ACK Gateway with Inference Extension组件,在Kubernetes环境中为多机分布式部署的LLM推理服务提供智能路由和负载均衡能力。文章以部署和优化QwQ-32B模型为例,详细展示了从环境准备到性能测试的完整实践过程。
|
6月前
|
存储 人工智能 Kubernetes
ACK Gateway with AI Extension:面向Kubernetes大模型推理的智能路由实践
本文介绍了如何利用阿里云容器服务ACK推出的ACK Gateway with AI Extension组件,在Kubernetes环境中为大语言模型(LLM)推理服务提供智能路由和负载均衡能力。文章以部署和优化QwQ-32B模型为例,详细展示了从环境准备到性能测试的完整实践过程。
|
6月前
|
存储 人工智能 物联网
ACK Gateway with AI Extension:大模型推理的模型灰度实践
本文介绍了如何使用 ACK Gateway with AI Extension 组件在云原生环境中实现大语言模型(LLM)推理服务的灰度发布和流量分发。该组件专为 LLM 推理场景设计,支持四层/七层流量路由,并提供基于模型服务器负载感知的智能负载均衡能力。通过自定义资源(CRD),如 InferencePool 和 InferenceModel,可以灵活配置推理服务的流量策略,包括模型灰度发布和流量镜像。
|
7月前
|
Cloud Native Serverless 数据中心
阿里云ACK One:注册集群支持ACS算力——云原生时代的计算新引擎
阿里云ACK One:注册集群支持ACS算力——云原生时代的计算新引擎
229 10
|
6月前
|
安全 持续交付 云计算
课时5:阿里云容器服务:最原生的集成Docker和云服务
阿里云容器服务以服务化形式构建容器基础设施,大幅提升开发效率,简化应用部署流程。通过Docker容器和DevOps工具(如Jenkins),实现自动化部署与迭代,优化企业内部复杂部署问题。该服务支持GPU调度、混合云架构无缝迁移,并与阿里云产品体系无缝集成,提供安全防护、网络负载均衡等多重功能支持。凭借微服务架构,帮助企业突破业务瓶颈,提高资源利用率,轻松应对海量流量。
235 0
课时5:阿里云容器服务:最原生的集成Docker和云服务
|
7月前
|
Kubernetes 持续交付 开发工具
阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%
阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%
221 2
|
7月前
|
弹性计算 监控 持续交付
面对热点事件,阿里云如何通过云上弹性与容器服务帮助客户应对流量洪峰
面对热点事件,阿里云如何通过云上弹性与容器服务帮助客户应对流量洪峰
176 0
|
7月前
|
边缘计算 调度 对象存储
部署DeepSeek但IDC GPU不足,阿里云ACK Edge虚拟节点来帮忙
部署DeepSeek但IDC GPU不足,阿里云ACK Edge虚拟节点来帮忙
129 0
|
4月前
|
资源调度 Kubernetes 调度
从单集群到多集群的快速无损转型:ACK One 多集群应用分发
ACK One 的多集群应用分发,可以最小成本地结合您已有的单集群 CD 系统,无需对原先应用资源 YAML 进行修改,即可快速构建成多集群的 CD 系统,并同时获得强大的多集群资源调度和分发的能力。
165 9

推荐镜像

更多