疫情期间云沃客使用阿里云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功能,后期会利用它做一些服务治理的工作,比如流量控制,灰度发布等。

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
14天前
|
运维 Kubernetes 监控
Kubernetes 集群的持续性能优化实践
【4月更文挑战第26天】 在动态且不断增长的云计算环境中,维护高性能的 Kubernetes 集群是一个挑战。本文将探讨一系列实用的策略和工具,旨在帮助运维专家监控、分析和优化 Kubernetes 集群的性能。我们将讨论资源分配的最佳实践,包括 CPU 和内存管理,以及集群规模调整的策略。此外,文中还将介绍延迟和吞吐量的重要性,并提供日志和监控工具的使用技巧,以实现持续改进的目标。
|
18天前
|
存储 运维 Kubernetes
Kubernetes 集群的持续性能优化实践
【4月更文挑战第22天】在动态且复杂的微服务架构中,确保 Kubernetes 集群的高性能运行是至关重要的。本文将深入探讨针对 Kubernetes 集群性能优化的策略与实践,从节点资源配置、网络优化到应用部署模式等多个维度展开,旨在为运维工程师提供一套系统的性能调优方法论。通过实际案例分析与经验总结,读者可以掌握持续优化 Kubernetes 集群性能的有效手段,以适应不断变化的业务需求和技术挑战。
|
2月前
|
Kubernetes 网络协议 应用服务中间件
K8S二进制部署实践-1.15.5
K8S二进制部署实践-1.15.5
40 0
|
2月前
|
SQL 存储 API
阿里云实时计算Flink的产品化思考与实践【下】
本文整理自阿里云高级产品专家黄鹏程和阿里云技术专家陈婧敏在 FFA 2023 平台建设专场中的分享。
111171 150
阿里云实时计算Flink的产品化思考与实践【下】
|
1天前
|
消息中间件 运维 Kubernetes
构建高效自动化运维体系:Ansible与Kubernetes的融合实践
【5月更文挑战第9天】随着云计算和微服务架构的普及,自动化运维成为确保系统可靠性和效率的关键。本文将深入探讨如何通过Ansible和Kubernetes的集成,构建一个强大的自动化运维体系。我们将分析Ansible的配置管理功能以及Kubernetes容器编排的优势,并展示如何将二者结合,以实现持续部署、快速扩展和高效管理现代云原生应用。文章还将涵盖实际案例,帮助读者理解在真实环境下如何利用这些工具优化运维流程。
|
4天前
|
存储 监控 Apache
查询提速11倍、资源节省70%,阿里云数据库内核版 Apache Doris 在网易日志和时序场景的实践
网易的灵犀办公和云信利用 Apache Doris 改进了大规模日志和时序数据处理,取代了 Elasticsearch 和 InfluxDB。Doris 实现了更低的服务器资源消耗和更高的查询性能,相比 Elasticsearch,查询速度提升至少 11 倍,存储资源节省达 70%。Doris 的列式存储、高压缩比和倒排索引等功能,优化了日志和时序数据的存储与分析,降低了存储成本并提高了查询效率。在灵犀办公和云信的实际应用中,Doris 显示出显著的性能优势,成功应对了数据增长带来的挑战。
查询提速11倍、资源节省70%,阿里云数据库内核版 Apache Doris 在网易日志和时序场景的实践
|
10天前
|
测试技术 块存储 开发者
阿里云块存储团队软件工程实践
本文介绍了阿里云团队软件工程实际开发流程,并简述了开发过程中遇到的一些问题。且附带案例,以及遇到案例中出现的情况应当如何应对。
|
15天前
|
存储 Kubernetes 监控
Kubernetes 集群的持续性能优化实践
【4月更文挑战第25天】 在动态且不断变化的云计算环境中,维护 Kubernetes 集群的高性能是一个挑战。本文将探讨一系列实用的策略和方法,用于持续监控和优化 Kubernetes 集群的性能。通过分析真实案例,我们将展示如何识别瓶颈,采取相应的优化措施,并实现自动化以简化运维工作。这些方法将帮助读者提高其 Kubernetes 环境的稳定性和效率,同时降低运营成本。
|
24天前
|
存储 运维 Kubernetes
Kubernetes 集群的持续性能优化实践
【4月更文挑战第16天】 随着容器化技术的普及,Kubernetes 已成为管理微服务架构的首选平台。但在动态变化的负载环境中保持高性能并非易事。本文将探讨一系列实用的 Kubernetes 集群性能优化策略,旨在帮助运维工程师识别和解决潜在的性能瓶颈。通过对存储、计算资源分配、网络配置以及集群规模管理的深入分析,我们将提供一套综合的性能调优框架,以支持高效、稳定的服务运行。
|
25天前
|
SQL 运维 DataWorks
Flink CDC在阿里云DataWorks数据集成应用实践
本文整理自阿里云 DataWorks 数据集成团队的高级技术专家 王明亚(云时)老师在 Flink Forward Asia 2023 中数据集成专场的分享。
512 2
Flink CDC在阿里云DataWorks数据集成应用实践