怎么创建集群服务器
‘壹’ windows搭建集群服务器
你这个需求是备份吧,Windows有两种服务可以解决你现在的问题:
1、网络负载均衡,可以把指定的服务器添加到负载均衡群中,并指定网络端口和协议,选择负载均衡集群切换模式是按照一对一还是交叉负载均衡;
2、故障转移集群,可以针对进程判断是否启用备份机的指定进程;
这两个集群各有各的用途,同时对于搭建也有自己的要求,完成集群后所对应的功能也略有不同。
部署:
负载均衡不需要额外设备;
但故障转移,需要iSCSI存储设备支持;
用途:
负载均衡针对网络端口,重点在于均衡,可以通过交叉策略,保证a/b的访问量一致,或者单一主机方式,保证在宕机或网线不通的情况下切换到备机;
故障转移,可以精确监控到进程,保证进程出现故障(包括宕机)即可转移到备机;
具体问题具体分析,看你需要什么级别的备份,要求高的话,上故障转移(但是要增加设备——iSCSI),要求简单,就上负载均衡
‘贰’ 如何创建服务器集群,就是把几台服务器变成一台虚拟的服务器
比如:weblogic 它本身带有集群向导,你只要配置,机器ip,代理服务器ip ,部署你的项目即可。建议你去找一个weblogic集群的详细资料,自己在自己机器上配置一下,你就明白它的意思了。
‘叁’ 怎么做集群服务器
网站的文件集群跟备份很重要。首先推荐服务器使用lnmp环境(linux+nginx+mysql+php),然后在来做集群。集群分三步走:
第一:域名支持智能解析。
第二:组建好主服务器跟分服务器。
第三:安装好自动备份软件,推荐:rsync。使用增量备份。设置1分钟自动发送一次。
原理如下:a为主服务器,b为分服务器。在a服务器上面更新网站的新内容,生成的新文件,在1分钟内,自动检测a服务器文件是否有变动,如果有,自动更新。以此类推。组建集群。
‘肆’ 怎么做集群服务器
集群是需要软件和硬件配合的,首先物理上需要有多台计算机(最好是相同型号的),在这些计算机上安装相同的操作系统(通常都是Linux),然后在各个机器上配置SSH,确保这些机器能够彼此免输入密码直接通信,接着需要在这些机器上安装集群软件,具体安装哪种需要看你的需求,如VMWare、OpenStack、Hadoop、Docker等,安装方法也都不一样,可以参考具体的教程。
‘伍’ 使用 redis-cli 搭建 Redis 集群
参考: Redis 集群教程
redis.conf 文件中包含很多信息,如:端口号、持久化方式、持久化的文件等等。
使用写入了不同端口号的配置文件就可以启动多个 Redis 实例。
下面是一个最少选项的集群的配置文件:
文件中的 cluster-enabled 选项用于开实例的集群模式, 而 cluster-conf-file 选项则设定了保存节点配置文件的路径, 默认值为 nodes.conf 。节点配置文件无须人为修改, 它由 Redis 集群在启动时创建, 并在有需要时自动进行更新。
要让集群正常运作至少需要三个主节点,不过在刚开始试用集群功能时, 强烈建议使用六个节点: 其中三个为主节点, 而其余三个则是各个主节点的从节点。
首先, 让我们进入一个新目录, 并创建六个以端口号为名字的子目录, 稍后我们在将每个目录中运行一个 Redis 实例: 命令如下:
在文件夹 7000 至 7005 中, 各创建一个 redis.conf 文件, 文件的内容可以使用上面的示例配置文件, 但记得将配置中的 port 和 cluster-conf-file 中的端口号数字 从 7000 改为与文件夹名字相同的号码。不同的集群节点要使用不同的 cluster-conf-file 。
配置文件的路径是可以自定义的。创建完毕后分别启动一个实例。
网上看到的教程,包括参考的官方文档里的文章,大多是使用以下方式创建集群。
这个命令在这里用于创建一个新的集群, 选项–replicas 1 表示我们希望为集群中的每个主节点创建一个从节点。
之后跟着的其他参数则是这个集群实例的地址列表,3 个 master 3 个 slave redis-trib 会打印出一份预想中的配置给你看,如果你觉得没问题的话,就可以输入 yes,redis-trib 就会将这份配置应用到集群当中,让各个节点开始互相通讯,最后可以得到如下信息:
这表示集群中的 16384 个槽都有至少一个主节点在处理,集群运作正常。
但是在 Redis 的 github 仓库 中看到,该文件已经不建议使用。
我在 手把手教你实现 Docker 部署 Redis 集群 的评论中看到, 现在 redis-cli --cluster 命令已经可以创建集群,分配槽,分配主从服务器了 ,于是使用以下命令了解到相关的命令。
可以看到,命令的组成形式和旧方式是一致的。
可以看到执行命令后,redis 客户端做了以下工作:
输入 yes 后,redis 客户端做了以下工作:
集群搭建完毕。
因为 Redis Cluster 默认要求所有的槽位被覆盖,可以通过修改 cluster-require-full-coverage yes 配置来改变该行为。
CLUSTERDOWN The cluster is down in redis 这里的回答中提到:我们可以使用 N 个Master 和 N+1 个 Slave,正常情况下多余的一个实例作为随机一个 Master 的 Slave,一旦有实例宕机,可以迅速顶替,以保证每个主节点总是有至少一个从节点保持数据同步。
ps:搜索命令行的输出时,才看到 深入理解Redis系列之集群环境搭建 这篇文章,有时候搜索的关键词不合适容易走弯路啊……
‘陆’ 如何最快搭建LINUX服务器集群
1.2.并行技术
这是一个非常简单的建造四节点的小集群系统的例子,它是构建在Linux操作系统上,通过MPICH软件包实现的,希望这个小例子能让大家对集群系统的构建有一个最基本的了解。
2.使用MPICH构建一个四节点的集群系统
这是一个非常简单的建造四节点的小集群系统的例子,它是构建在Linux操作系统上,通过MPICH软件包实现的,希望这个小例子能让大家对集群系统的构建有一个最基本的了解。
2.1 所需设备
1).4台采用Pentium II处理器的PC机,每台配
置64M内存,2GB以上的硬盘,和EIDE接口的光盘驱动器。
2).5块100M快速以太网卡,如SMC 9332 EtherPower 10/100(其中四块卡用于连接集群中的结点,另外一块用于将集群中的其中的一个节点与其它网络连接。)
3).5根足够连接集群系统中每个节点的,使用5类非屏蔽双绞线制作的RJ45缆线
4).1个快速以太网(100BASE-Tx)的集线器或交换机
5).1张Linux安装盘
2.2 构建说明
对计算机硬件不熟的人,实施以下这些构建步骤会感到吃力。如果是这样,请找一些有经验的专业人士寻求帮助。
1. 准备好要使用的采用Pentium II处理器的PC机。确信所有的PC机都还没有接上电源,打开PC机的机箱,在准备与网络上的其它设备连接的PC机上安装上两块快速以太网卡,在其它的 PC机上安装上一块快速以太网卡。当然别忘了要加上附加的内存。确定完成后盖上机箱,接上电源。
2. 使用4根RJ45线缆将四台PC机连到快速以太网的集线器或交换机上。使用剩下的1根RJ45线将额外的以太网卡(用于与其它网络相连的那块,这样机构就可以用上集群)连接到机构的局域网上(假定你的机构局域网也是快速以太网),然后打开电源。
3. 使用LINUX安装盘在每一台PC机上安装。请确信在LINUX系统中安装了C编译器和C的LIB库。当你配置TCP/IP时,建议你为四台PC分别指定为192.168.1.1、192.168.1.2、192.168.1.3、192.168.1.4。第一台PC为你的服务器节点(拥有两块网卡的那台)。在这个服务器节点上的那块与机构局域网相连的网卡,你应该为其指定一个与机构局域网吻合的IP地址。
4.当所有PC都装好Linux系统后,编辑每台机器的/etc/hosts文件,让其包含以下几行:
192.168.1.1 node1 server
192.168.1.2 node2
192.168.1.3 node3
192.168.1.4 node4
编辑每台机器的/etc/hosts.equiv文件,使其包含以下几行:
node1
node2
node3
node4
$p#
以下的这些配置是为了让其能使用MPICH’s p4策略去执行分布式的并行处理应用。
1. 在服务器节点
,建一个/mirror目录,并将其配置成为NFS服务器,并在/etc/exports文件中增加一行:
/mirror node1(rw) node2(rw) node3(rw) node4(rw)
2. 在其他节点上,也建一个/mirror目录,关在/etc/fstab文件中增加一行:
server:/mirror /mirror nfs rw,bg,soft 0 0
3. /mirror这个目录从服务器上输出,装载在各个客户端,以便在各个节点间进行软件任务的分发。
4. 在服务器节点上,安装MPICH。MPICH的文档可在
5.任何一个集群用户(你必须在每一个节点新建一个相同的用户),必须在/mirror目录下建一个属于它的子目录,如 /mirror/username,用来存放MPI程序和共享数据文件。这种情况,用户仅仅需要在服务器节点上编译MPI程序,然后将编译后的程序拷贝到在/mirror目录下属于它的的子目录中,然后从他在/mirror目录下属于它的的子目录下使用p4 MPI策略运行MPI程序。
2.3 MPICH安装指南
1.如果你有gunzip,就d下载mpich.tar.gz,要不然就下载mpich.tar.Z。你可以到http://www.mcs.anl.gov/mpi/mpich/downloa下载,也可以使用匿名ftp到ftp.mcs.anl.gov的pub/mpi目录拿。(如果你觉得这个东西太大,你可以到pub/mpi/mpisplit中取分隔成块的几个小包,然后用cat命令将它们合并)
2.解压:gunzip ;c mpich.tar.gz tar xovf-(或zcat mpich.tar.Ztar xovf-)
3.进入mpich目录
4.执行:./configure为MPICH选择一套适合你的实际软硬件环境的参数组,如果你对这些默认选择的参数不满意,可以自己进行配置(具体参见MPICH的配置文档)。最好选择一个指定的目录来安装和配置MPICH,例如:
./configure -prefix=/usr/local/mpich-1.2.0
5.执行:make >&make.log 这会花一段较长的时间,不同的硬件环境花的时间也就不同,可能从10分钟到1个小时,甚至更多。
6.(可选)在工作站网络,或是一台单独的工作站,编辑mpich/util/machines/machines.xxx(xxx是MPICH对你机器体系结构取的名称,你能很容易的认出来)以反映你工作站的当地主机名。你完全可以跳过这一步。在集群中,这一步不需要。
7.(可选)编译、运行一个简单的测试程序:
cd examples/basic
make cpi
ln ;s ../../bin/mpirun mpirun
./mpirun ;np 4 cpi
此时,你就在你的系统上运行了一个MPI程序。
8.(可选)构建MPICH其余的环境,为ch_p4策略使
用安全的服务会使得任何启动速度加快,你可以执行以下命令构建:
make serv_p4
(serv_p4是一个较新的P4安全服务的版本,它包含在MPICH 1.2.0版中),nupshot程序是upshot程序的一个更快版本,但他需要tk 3.6版的源代码。如果你有这个包,你就用以下命令可以构建它:
make nupshot
9.(可选)如果你想将MPICH安装到一个公用的地方让其它人使用它,你可以执行:
make install 或 bin/mpiinstall
你可以使用-prefix选项指定MPICH安装目录。安装后将生成include、lib、bin、sbin、www和man目录以及一个小小的示例目录,
到此你可以通告所有的用户如何编译、执行一个MPI程序。
‘柒’ 服务器集群怎么搭建Linux平台的
linux服务器集群平台的搭建比较简单,有专门的均衡软件,比如lvs,lvs是一个集群系统,由很多服务器组成,可以根据需要,把它门分为三层,一层是前端机,用于均衡,相当于公平为系统分配工作,二层是服务器群,比如web服务器群,DNS,mail群等,这些就是接待员,把均衡器分配的工作进行处理,第三层是存储设备,用于存储数据,相当于档案库。
知道这些后,要搭建就非常容易,有现成的软件,比如我有四台web服务器,2台数据库,1台前置机 ,安装linux系统,安装lvs软件,比如
heartbeat-2.1.4-9.el5.i386.rpm
heartbeat-ldirectord-2.1.4-9.el5.i386.rpm
libnet-1.1.4-3.el5.i386.rpm
heartbeat-devel-2.1.4-9.el5.i386.rpm
heartbeat-pils-2.1.4-10.el5.i386.rpm
perl-MailTools-1.77-1.el5.noarch.rpm
heartbeat-gui-2.1.4-9.el5.i386.rpm
heartbeat-stonith-2.1.4-10.el5.i386.rpm
当然还需要配置,你可以自己网络有关lvs集群的详细安装说明。希望能帮助你。
‘捌’ 如何建立服务器集群及相关问题
集群准备工作N多,看你的具体需求而定,一般情况如下:
1、节点服务器,域,节点服务器必须在同一域内;
2、共享存储,最次也得一个NAS吧;
3、节点服务器的双网卡,共享存储一块,服务器通讯一块;
4、域相关设置,比如集群管理帐户等;
具体安装比较简单,add
feature(添加功能),集群功能。
安装后需要先验证安装,开始菜单--〉管理工具--〉故障转移集群管理,验证过程中输入节点服务器IP或者域名(域内DNS注册以后)--〉运行全部测试,最后查看报告,根据报告修改、配置集群。一切正常以后,开始正式配置集群;
‘玖’ K8S安装和创建集群终极教程(单master多worker)
本文会以 最简单 、 最直接 、 最完整 的方式记录kubernetes(下面统称K8S)单master多工作节点(worker nodes)的集群步骤
首先要简单了解一下本文的3个核心概念:
内存建议至少4G
问:如何查看主机名?
答:执行命令hostname
问:如何修改主机名?
答:永久生效的做法:执行命令vi /etc/hostname,把第一行去掉(不能注释掉,要去掉),然后重新写上自定义的主机名(注意命名规范),保存并重启后生效;
临时生效的做法:执行以下命令
问:如何查看MAC地址?
答:执行命令ip link,然后看你的第一网卡
问:如何查看proct_uuid?
答:执行命令sudo cat /sys/class/dmi/id/proct_uuid
注意:30000-32767这个端口范围是我们创建服务的端口必须要设置的一个范围(如果设置范围以外的会有限制提示并创建失败),这是K8S规定的。
另外,如果你要直接关闭防火墙可以执行
⑥必须禁用Swap
Swap total大于0,说明Swap分区是开启的
问:如何关闭Swap?
答:编辑文件/etc/fstab,在swap行前面加上#号注释, 保存并重启服务器
再次查看分区状态,已生效
常见的容器引擎(Container runtime,简称runtime):
本文使用的容器引擎是Docker
安装完成后查看版本:
当出现可能跟Docker引擎相关的奇怪异常时可以尝试把Docker卸载干净并重新安装,但一定要注意镜像、容器、卷或配置文件这些是否需要备份。
下面记录卸载Docker引擎的步骤:
①卸载 Docker Engine、CLI 和 Containerd 包:
②主机上的映像、容器、卷或自定义配置文件不会自动删除。删除所有镜像、容器和卷:
③配置文件如果有不合法的字符时会导致启动失败,我们需要将其删除然后重建
此时Docker引擎已卸载干净
官网用的是谷歌的yum源,因为国内是连不上的,所以这里替换成阿里提供的yum源
①安装
从安装信息中可以看到版本号是1.22
Installing:
kubeadm x86_64 1.22.4-0 kubernetes 9.3 M
kubectl x86_64 1.22.4-0 kubernetes 9.7 M
kubelet x86_64 1.22.4-0 kubernetes 20 M
②启动
这就是一个驱动程序,注意cgroup和cgroupfs不要混淆了
引用官方的一段话
“由于 kubeadm 把 kubelet 视为一个系统服务来管理,所以对基于 kubeadm 的安装, 我们推荐使用 systemd 驱动,不推荐 cgroupfs 驱动。”
kubeadm默认是使用systemd 驱动,而我们的Docker默认驱动是cgroupfs(docker info可以查看),所以需要将Docker的驱动改成systemd
①编辑Docker配置文件
②重启Docker服务
再次docker info查看驱动信息已变成了systemd
工作节点(worker nodes)的最小配置就到这里了
①镜像源参数说明
默认情况下, kubeadm 会从 k8s.gcr.io 仓库拉取镜像,国内是拉不了的。官方文档明确表示允许你使用其他的 imageRepository 来代替 k8s.gcr.io。
--image-repository 你的镜像仓库地址
接下来我找了一些国内的镜像源,并简单做了下分析
综合上述统计,我选择阿里云的镜像源
②ip地址范围参数说明
--pod-network-cidr =192.168.0.0/16
注意:如果192.168.0.0/16已经在您的网络中使用,您必须选择一个不同的pod网络CIDR,在上面的命令中替换192.168.0.0/16。
集群初始化命令:
因为我用的是演示机器,所以这里把完整的执行信息都贴出来方便查阅,平时工作中一定要注意保护好敏感的信息(我的ip地址范围是自定义的便于下面的功能演示,另外初次init需要下载镜像文件,一般需要等几分钟)
如上所示,集群初始化成功,此时一定要注意看上面执行结果最后的那部分操作提示,我已用标明了初始化成功后还需要执行的3个步骤
注意:如果init成功后发现参数需要调整,可以执行kubeadm reset,它的作用是尽最大努力恢复kubeadm init 或者 kubeadm join所做的更改。
To start using your cluster, you need to run the following as a regular user:
翻译:开始使用集群前,如果你是普通用户(非root),你需要执行以下的命令:
Alternatively, if you are the root user, you can run:
翻译:或者,如果你使用的是root,你可以执行以下命令:
(注意:export只是临时生效,意味着每次登录你都需要执行一次)
网络配置配的就是Pod的网络,我的网络插件选用calico
cidr就是ip地址范围,如果您使用 pod CIDR 192.168.0.0/16,请跳到下一步。
但本文中使用的pod CIDR是192.100.0.0/16,所以我需要取消对清单中的 CALICO_IPV4POOL_CIDR 变量的注释,并将其设置为与我选择的 pod CIDR 相同的值。(注意一定要注意好格式,注意对齐)
可根据需求自定义清单,一般不需要的就直接跳过这步
在所有的工作节点上执行join命令(复制之前初始化成功后返回的加入集群命令到所有的工作节点执行即可)
master上查看所有节点的状态
到这里集群已经创建完成
最后我再安装K8S的可视化界面kubernetes-dashboard,方便我们日常使用
①下载yaml文件
②修改yaml文件,新增type和nodePort,使服务能够被外部访问
③安装并查看运行情况
④新建用户
文件创建完成后保存并apply
⑤获取Token,用于界面登录
⑥登录dashboard
192.168.189.128是我的master服务器ip,另外要注意必须使用https,并且不能使用ie内核模式
复制⑤生成的token到输入框,点击登录
dashboard安装配置完成
问:如何在查看资源情况?
答:在master上执行以下命令可查看资源情况(-o wide是显示更详细的信息),
①查看所有节点
②查看所有命名空间
③查看命名空间下的pod
④查看所有命名空间的pod
⑤实时查看查看命名空间下的pod运行情况
问:kubeadm join 出现异常[ERROR Port-10250]: Port 10250 is in use,如何解决?
答:这是因为你之前join失败过了,需要先执行kubeadm reset再重新join
问:虚拟机上测试时网卡突然消失如何解决(题外问题记录)?
答:
①确认丢失的网卡信息,ens开头(可选步骤)
ifconfig -a
②执行以下命令解决
问:如何查看K8S版本?
答:kubectl version
问:join命令忘记或者过期了怎么办?
答:
生成永不过期的
生成时效24小时的
问:Pod不断重启并且无其它报错信息时怎么办?
答:这种情况通常是因为你的集群中只有master,没有worker节点,master的创建默认是有污点的,即不允许调度新的Pod,如果你需要(当然这并不推荐),就需要删除 master 上的污点。删除污点可以执行以下命令,
它应该返回以下内容。