企业集群架构
架构名词介绍
架构如何演变
开车 ---> 各种公路和高速路 ---> 到达目的地 ---> 酒店
保安 ---> 验证身份
迎宾小姐姐 ---> 接待工作
服务员 ---> 满足客人的需求(动态扩容)
后厨厨师 ---> 提供具体的菜品
吧台 ---> 存放烟酒
备菜 ---> 提前准备好(快)
仓库 ---> 存放杂物,或者存放重要的文件或手机
经理 ---> 管理保安、服务员、厨师等
监控 ---> 用来监控服务员,厨师等状态信息,用来时间回溯
酒店后门 ---> emmm... 不可描述
架构访问流程-用户视角
1.用户通过浏览器输入oldboyedu.com->回车
2.浏览器会发生一次跳转,分析URL->然后进行DNS解析->获取真实的公网IP地址
3.用户通过tcp的三次握手发起连接->真实的公网IP
4.连接会通过公网->路由器->交换机->抵达前端的硬件防火墙
5.防火墙根据自身访问规则,进行匹配->如果恶意的连接则拒绝->如果是正常的连接则放行
6.防火墙会将连接转发给负载均衡器->查看用户请求的内容->根据内容进行任务下发->下发给web服务器
7.web服务接收请求后会根据请求进行判断 如果是请求图片或者附件->查找存储服务器存储的静态资源 如果请求的网站上的内容->缓存服务器->如果缓存服务器没有->数据库 数据库查询完数据之后会返回数据给web服务器->同时也会返回一份给缓存服务器
架构访问流程-运维视角
1.用户通过公网连接(隧道)VPN服务器,这样方便管理内部主机, 2.自动化配置管理,节省人力成本,便于后期维护。统一环境,标准化 3.自动化监控服务,监控系统的运行状态,事前预警,事后追溯。
总结: 一个项目涵盖了一套架构,一套架构又涵盖了不同的角色(高可用、负载均衡、web集群) 五层架构模型--> 负载均衡 web服务 存储服务 缓存服务 数据库服务(通过tcp连接)
横向扩展也叫水平扩展,用更多的节点支撑更大量的请求。 如成千上万的蚂蚁完成一项搬运工作 纵向扩展又叫垂直扩展,扩展一个点的能力支撑更大的请求。如蜘蛛侠逼停火车
架构环境规划
外网IP | 内网IP | 主机名 |
---|---|---|
10.0.0.5 | 172.16.1.5 | lb01 |
10.0.0.6 | 172.16.1.6 | lb02 |
10.0.0.7 | 172.16.1.7 | web01 |
10.0.0.8 | 172.16.1.8 | web02 |
10.0.0.9 | 172.16.1.9 | web03 |
10.0.0.31 | 172.16.1.31 | nfs |
10.0.0.41 | 172.16.1.41 | backup |
10.0.0.51 | 172.16.1.51 | db01 |
10.0.0.61 | 172.16.1.61 | m01 |
10.0.0.71 | 172.16.1.71 | zabbix |
集群架构系统基础环境准备
-
安装全新Centos7系统,配置网卡为eth0及eth1命名模式
-
第一块网卡为NAT模式[公网环境],配置的网段为10.0.0.0网段
-
第二块网卡为LAN模式[私网环境],配置的网段为172.16.1.0网段
-
-
优化安装好的Centos7
# 1.配置yum仓库
rm -f /etc/yum.repos.d/* curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
# 2.安装基础软件包
yum install net-tools vim tree htop iftop gcc gcc-c++ glibc\ iotop lrzsz sl wget unzip telnet nmap nc psmisc \ dos2unix bash-completion bash-completion-extra sysstat \ nfs-utils httpd-tools -y
# 3.关闭防火墙 firewalld
systemctl disable firewalld
systemctl stop firewalld
# 4.关闭 NetworkManager
systemctl disable NetworkManager systemctl stop NetworkManager
# 5.关闭 selinux
sed -i '/^SELINUX=/c SELINUX=disabled' /etc/selinux/config
# 6.调整单个进程最大能打开文件的数量
echo '* - nofile 65535' >> /etc/security/limits.conf
-
基于优化后的虚拟机进行克隆
-
连接克隆(需要依赖于母体)
-
完整克隆(完完全全的复制一份,占用磁盘空间)
-
-
对新克隆后的主机进行如下操作:
1.修改主机名 hostnamectl set-hostname backup 2.修改IP地址 sed -i 's#200#41#g' /etc/sysconfig/network-scripts/ifcfg-eth[01]-- 3.重启服务器 reboot
创建xshell标签->测试连接服务器是否成功
5. 模板机优化配置---提权oldboy可以sudo (可选配置)
#提权oldboy可以sudo(可选配置)
useradd oldboy echo 123456|passwd --stdin oldboy \cp /etc/sudoers /etc/sudoers.ori echo "oldboy ALL=(ALL) NOPASSWD: ALL " >>/etc/sudoers tail -1 /etc/sudoers visudo -c
6. 模板机优化配置---英文字符集
#英文字符集
localectl set-locale LANG="en_US.UTF-8"
7. 模板机优化配置---时间同步
#时间同步
yum install -y ntpdate echo '#time sync by lidao at 2017-03-08' >>/var/spool/cron/root echo '*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1' >>/var/spool/cron/root crontab -l
8. 模板机优化配置---加大文件描述
yum install -y lsof lsof -i:22 #加大文件描述 echo '* - nofile 65536' >>/etc/security/limits.conf tail -1 /etc/security/limits.conf 说明: 一个服务程序运行起来,会打开相应的文件 crond定时任务服务---systemctl start crond --- 打开相应文件 /var/spool/cron/root --- 加载打开配置文件 /var/log/cron --- 加载打开日志文件
9. 模板机优化配置---安装其他小软件
#安装其他小软件
yum install lrzsz nmap tree dos2unix nc telnet wget lsof ntpdate bash-completion bash-completion-extras -y
10. 模板机优化配置---ssh连接速度慢优化
#ssh连接速度慢优化
sed -i.bak 's@#UseDNS yes@UseDNS no@g;s@^GSSAPIAuthentication yes@GSSAPIAuthentication no@g' /etc/ssh/sshd_config systemctl restart sshd
进行模板主机克隆操作
1. 进行模板机快照拍摄
2. 进行虚拟主机克隆
创建链接克隆 (学习环境)
优势:
a 节省物理主机资源
b 克隆主机效率快
劣势:
a 模板主机删除,链接主机也会失效
创建完整克隆 (企业应用)
优势:
a 模板主机删除,克隆主机依然可以使用
劣势:
a 比较消耗物理主机资源
b 克隆主机效率低
3. 克隆后虚拟主机配置
a 修改主机名称
hostnamectl set-hostname backup
b 修改主机地址
sed -i 's#200#41#g' /etc/sysconfig/network-scripts/ifcfg-eth[01] grep 41 /etc/sysconfig/network-scripts/ifcfg-eth[01] sed -i '/UUID/d' /etc/sysconfig/network-scripts/ifcfg-eth[01] grep UUID /etc/sysconfig/network-scripts/ifcfg-eth[01] systemctl restart network
PS: 一台一台顺序启动,进行修改,不要同时启动
补充: 克隆好的主机无法远程连接:
解决方式:
01. 利用ping方式测试
02. 关闭xshell软件重新打开