基于 Docker-K8s 的 Web 集群项目
Posted 未末0902
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于 Docker-K8s 的 Web 集群项目相关的知识,希望对你有一定的参考价值。
基于 Docker-K8s 的 Web 集群项目
前言
为什么要做这个项目?
1.容器是打包和运行应用程序的好方式。在生产环境中,你需要管理运行应用程序的容器,并确保不会停机。
2.Kubernetes 为你提供了一个可弹性运行分布式系统的框架。 Kubernetes 会满足你的扩展要求、故障转移、部署模式等
3.Kubernetes 旨在支持极其多种多样的工作负载,包括无状态、有状态和数据处理工作负载。 如果应用程序可以在容器中运行,那么它应该可以在 Kubernetes 上很好地运行。
项目名称:基于 Docker-K8s 的 Web 集群项目
一、项目环境
docker 1.13 Centos7.6.1810
nginx: 1.18
服务器数量:7台(配置:2G 1核)
二、项目描述
实现一个高可用的负载均衡的web服务器集群,底层采用k8s管理的docker集群来提供web服务,大量使用容器来完成web服务的扩展性,高可用性。
三、项目网络拓扑图
四、项目步骤
1.规划整个集群的架构
前端使用 nginx 做负载均衡,采用 keepalived 实现高可用。
后端使用k8s 来实现web 容器负载均衡和高可用。
2.管理集群
后端采用k8s来管理整个docker 集群,4个节点的k8s集群,每个docker 宿主机需要启动10个容器,总共启动40个容器来提供web服务。
3.制作镜像,编译安装
制作自己的nginx的容器的镜像,定制nginx.conf内容(网页根目录等),编译安装nginx,指定参数(安装路径,https,状态统计等配置)
4.数据一致性
使用nfs服务为所有的docker节点提供相同web数据,实现数据一致性。在所有的docker宿主机上创建使用nfs服务器的数据卷,然后所有的docker nginx容器使用PV和PVC和NFS融合,达到所有的容器都使用相同的数据。
5.测试
对整个集群的稳定性和扩展性进行压力测试
6.排错和整理
排错和故障解决,整理项目文档,书写博客
五、总结和心得
1.通过整个项目的完成,对于docker的技术理解会更加深刻,使用docker的集群解决方案会比传统的集群解决方案更加方便和便捷,对于拓展性会更加强大。
2.docker内部的高可用和负载均衡,之前做的swarm的集群项目,可能对于负载均衡方面并不是很深刻,现在通过k8s的项目会更加透彻一些,对于master和node方面和项目的框架,逻辑会更加清晰一点。
3.对于做实验的过程中出现的一些故障和报错问题,可以自己动手去查询官方文档去解决问题。
以上是关于基于 Docker-K8s 的 Web 集群项目的主要内容,如果未能解决你的问题,请参考以下文章