前言

为什么要做这个项目?

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.对于做实验的过程中出现的一些故障和报错问题,可以自己动手去查询官方文档去解决问题。


Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐