【小白聊云】中小企业容器化改造建议

举报
qianqianwang 发表于 2022/07/02 09:03:12 2022/07/02
【摘要】 以具体企业为例,阐述了企业容器化改造方式、详细规划及实施路径。

中小企业容器化改造建议

企业应用容器化改造,一般有以下三种方式:

方式一:单体应用整体容器化,应用代码和架构不做任何改动。

方式二:将应用中升级频繁,或对弹性伸缩要求高的组件拆分出来,将这部分组件容器化。

方式三:将应用做全面的微服务架构改造,再单独容器化。

对于中小企业而言,首次做容器化改造,建议选择方式一,主要优点有:

业务0修改:应用架构和代码不需要做任何改动。

提升部署和升级效率:应用可构建为容器镜像,确保应用环境一致性,提升部署效率。

降低资源成本:Docker对系统资源利用率高。相比虚拟机技术,一个相同配置的主机,往往可以运行更多数量的应用。

确定容器化改造方式后,企业就可以着手改造。以近期遇到的某中小企业改造为例。

企业现状:该企业目前2台web服务器作为前端,mysql数据库,软件负载均衡器,无数据库中间件,后端EVS云硬盘。

企业改造点:

1、负载均衡应用改造点:选择合适的负载均衡器。一般中小型的Web应用可以使用ngnix或HAProxy,大型网站或重要的服务可以使用LVS,目前该企业业务规模较小,选取nginx作为负载均衡器;

2、web应用改造点:应用存在长时间执行请求。增加消息队列,通过消息队列将长任务与用户请求解耦。

3、应用服务器应用改造点:应用实例依赖于本地的存储来持久化数据。日志建议变成流汇聚到分布式日志系统中。如果必须要使用存储,要使用共享文件系统如NFS。

4、资源及集群规划:目前采用单集群规划(假设云资源中有其他应用项目),给出示意图如下:

5、 高可用规划

分别在2个AZ中部署两套CCE集群,K8S Master采用本地3节点高可用部署。

应用AZ内高可用部署,通过ClusterIP服务调用不跨AZ。

应用发布LoadBalancer类型的Service对接到集群所在AZ的融合ELB服务实例。

应用通过VIP访问数据库,数据库自动切换应用不感知。

• 支持多AZ动态容器存储,根据pod所在AZ创建数据卷。

6、 网络规划

集群内部应用默认可通过ClusterIP类型服务相互通信。k8s集群内置DNS服务,服务间访问可以通过IP或域名访问。K8S内部应用网络互通示意图如下:


Step1:kube-proxy、core-dns从Master中kube-apiserver订阅service,POD2的Service创建时,kube-proxy刷新本节点iptables,core-DNS更新路由数据。

Step2:Pod2通过域名访问Pod4的service4,发起到core-dns查询请求,并获取对应的ClusterIP(如果使用ClusterIP直接访问则忽略这一步骤)

Step3:Pod2发送业务报文,目的地址为获取到的ClusterIP。容器网络根据目的地址匹配策略后进行VxLAN封装,封装源地址为容器所在的VM IP地址,目的地址为目的容器所在VM IP,并将报文发给I层vSwitch,然后转发至目的容器所在VM,容器网络解VxLAN封装后,根据ClusterIP将业务报文发送目的service及POD。






【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。