proxmox 集群搭建
背景
刚到公司的时候,公司分了一台服务器,非常开心的装了 Centos7,跑了几个服务:
- GETH 私链
- BTC 测试网络
- BTC 私链
- EOS 测试网络
- …
随着服务的增多,悲剧了,各个服务依赖的库、工具和服务不同,在一个环境里容易混乱,逐考虑使用虚拟机(VM)或是容器来进行管理。这里有 2 个选择:
- K8S(Kubernetes)
- Proxmox
这里先不说 K8S,相对而言 K8S 比较复杂,短时间难以上手,以后有时间再弄。本人是无意中看到有人在玩 Proxmox 的,proxmox 本身概念比较简单,就一个管理 KVM 和 LXC 容器的平台,基于 Debian 制作,使用也简单,通过 WEB 界面就能完成绝大部分的工作;本人认为 Proxmox 的文档和论坛也比较友好,写得简单易懂。基于这些优点,Proxmox 上手非常快,我也才折腾了 2 周。
准备
这里准备 3 台机器,分别为:
- pve1 192.168.50.237
- pve2 192.168.50.236
- pve3 192.168.50.159
3 台机器, 128G SSD + 1T HDD, 16G 内存,分配好静态 IP。
安装
下载proxmox 官网最新版 IOS 镜像(5.2), 使用烧录工具 etcher写入 U 盘,使用 U 盘安装 Proxmox 系统, 统一安装在 SSD 上,安装过程不到 10 分钟,最重要的是设置好密码和网络信息。
集群
随便选 1 台机器做主控机,这里使用 pve1, 先进入 pve1 的终端命令控制台,直接登录或 SSH 都可。
1
pvecm create YOUR-CLUSTER-NAME
依次进入其他机器, 执行如下命令:
1
pvecm add 192.168.50.237(pve1 ip)
回到 pve1, 查看集群状态, 如果是如下状态,基本上可以了。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24root@pve1:~# pvecm status
Quorum information
------------------
Date: Fri Sep 21 20:05:24 2018
Quorum provider: corosync_votequorum
Nodes: 3
Node ID: 0x00000001
Ring ID: 3/216
Quorate: Yes
Votequorum information
----------------------
Expected votes: 3
Highest expected: 3
Total votes: 3
Quorum: 2
Flags: Quorate
Membership information
----------------------
Nodeid Votes Name
0x00000003 1 192.168.50.159
0x00000002 1 192.168.50.236
0x00000001 1 192.168.50.237 (local)打开 pve1 的 web 控制台,即可看到 3 台机器了。
1
https://192.168.50.237:8006
添加 NFS 存储和 Disk
- NFS
在 Web 控制台使用如下方式添加 NFS 存储,创建好的 NFS 是会在集群中共享的,即任何一个节点都可访问该 NFS 存储
Datacenter –> Storage –> NFS 在弹出的对话框中,添加 NFS 服务地址及导出的路径,最后确认即可。
- Disk
在 Web 控制台上添加 Disk
pve1 –> Disks –> LVM –> Create: Volume Group 在弹出的对话框中,选择未使用的 HDD 硬盘(要求硬盘未分区,如果有,请先使用 Fdisk 工具抹除分区信息表),添加即可。
- NFS
上传 iso 镜像和下载 lxc 容器模板
在新建虚拟机(VM)和 Lxc 容器之前,需要先下载好相关的 ISO 镜像或是容器模板
iso 镜像
在 Web 控制台上传 ISO 镜像
nfs(pve1) –> Upload –> select file(选择要上传的 ISO 镜像文件) –> 点击 uploadlxc 模板
在 Web 控制台下载 lxc 模板
nfs(pve1) –> Templates –> 选择要下载的模板 –> download
创建 VM 和 Lxc,启动,停止,克隆
- 创建虚拟机(VM)
Web 控制台–> Create VM(右上角) –> 按向导操作,依次选定如下信息:
- general, 一般信息,主要设置 VM 名称,其他保持默认就好
- OS,操作系统,这里会用到前面上传 ISO 镜像
- Disk,设定磁盘大小
- CPU,设定 CPU 及核数量
- Memory,设定内存大小
- Network,设定网络类型,是静态 IP 叿 DHCP 等
- Finish, 创建完成
- 创建容器(lxc container)
创建容器过程与 VM 创建过程类似,有少许不同,Web 控制台–> Create CT(右上角) –> 按向导操作,依次选定如下信息:
- general,一般信息,须设定 hostname,root 密码等
- template, 选择前面下载好的模板
- Root Disk, 根磁盘,设定大小
- CPU
- Memory
- Network
- DNS
- Confirm & finish
- 启动,停止与克隆
- 在左侧列表中选择 1 台 VM 或容器
- 点击右上角相关按钮
- 创建虚拟机(VM)
FAQ
为什么不使用 Ceph 分布式文件系统
答: Ceph 看起来很美好,但在资源有限环境中不建议使用,我原来也把 ceph 折腾到 Proxmox 集群里了,但后面发现非常卡,甚至还不如本地磁盘的性能,所以就删除了 Ceph如何快速克隆
答: Proxmox 自带的克隆比较慢,对虚拟机(VM)的克隆推荐使用clonezilla,其类似于 windows 上的 ghost(磁盘克隆工具),使用办法是先下载clonezilla的镜像,替换 VM 的光驱镜像,设定 VM 从光驱引导即可。
资源