「HomeLab系列」Version6
- 简介
- 网络设备
- Synology DS218+
- USB硬盘盒+wifi插座
- USB硬盘座+wifi插座
- APC Back-UPS650
- HP Gen10 plus
- esxi7.0、6.7
- 硬盘rdm
- cobbler部署配置
- cobbler system规划与部署-ceph集群
- chrony NTP Server 部署
- ceph 15节点部署-准备阶段
- cephadm部署ceph组件
- ceph集群初始化
- kubespray部署k8s集群
- kubespray registry排障
- 外部参考
简介
本文容最初记录于2020年6月,整理并发布于2021年10月
卖出HP Gen8 Microserver,买入HP Gen 10 Plus,并且定制了cpu和内存
软件方面部署了cobbler实现操作系统的无人值守自动化安装,依然使用kubespray部署k8s集群,用容器方式部署ceph15
网络设备
光猫
- 桥接模式,不负责拨号
- 关闭自带的无线路由
Linksys WRT32X
- 编译刷入openwrt(lede)
- 关闭无线功能,仅作为核心路由器使用
- 宽带拨号
- SSR plus
- DDNS(Dnspod.cn)
- 防火墙+端口转发
- turbo ACC:关闭FLOW加速:非常关键,开启该项会导致端口转发时速度十分慢
- haproxy
- VPN server
Netgear r6300v2
- AP模式,为无线设备提供无线接入点
TP-link TL-SG1005M
- 5口千兆交换机,扩展LAN口
Synology DS218+
- 稳定的私人数据存储
- 生活照和录像(全量)
- 影视音乐(热数据)
- 文档归档(全量)
- 工作用MBP数据同步(全量)
- 服务形式
- DS photo
- DS video
- SMB
- Synology Drive
- DS file+Web
- DS download
USB硬盘盒+wifi插座
- 连DS218+,存冷数据
USB硬盘座+wifi插座
- 连DS218+,定期自动备份到单独一块硬盘
APC Back-UPS650
- 连DS218+、两个wifi插座,预防突然断电
HP Gen10 plus
淘宝买入,不带CPU和内存条
核心硬件
- CPU: 淘宝买入intel cc150
- 内存:淘宝买入镁光ecc 32G内存条一条
- esxi:闪迪酷豆U盘
使用Windows Server 2016进行功耗测试
-
Windows安装: 500GB SATA SSD*1
-
更新固件、BIOS等:用SPP,在windows server2016中挂载iso,执行bat脚本。
-
功耗测试:空载23W,stress FPU 2min后从125W逐渐升到了130W
-
在esxi中调整虚拟机的cpu核心数,最高16核心
-
空载23W,16核心时烤FPU功率130W
半高显卡对比
GPU型号 | 天梯排名 | 天梯评分 | TDP |
---|---|---|---|
1030 | 357 | 2616 | |
p400 | 487 | 1670 | |
p620 | 264 | 3708 | |
intel iris plus 655 | 461 | 1810 | |
gtx1050ti | 145 | 6427 | |
gtx1650 | 117 | 7825 |
esxi7.0、6.7
VMware vCenter 7.0 Standard
104HH-D4343-07879-MV08K-2D2H2
410NA-DW28H-H74K1-ZK882-948L4
406DK-FWHEH-075K8-XAC06-0JH08
VMware vSphere ESXi 7.0 Enterprise Plus
JJ2WR-25L9P-H71A8-6J20P-C0K3F
HN2X0-0DH5M-M78Q1-780HH-CN214
JH09A-2YL84-M7EC8-FL0K2-3N2J2
硬盘rdm
细节:硬盘仓里的硬盘如何与esxi里的磁盘对应。硬盘仓标号-硬盘SN-rdm文件名-ceph节点的分配对应关系。
通过SN和仓号的对应(希捷硬盘底部露出来的地方标记了SN),在rdm时直接用仓号命名vmdk文件。
以4号硬盘仓为例,*处为省略掉的磁盘型号和SN信息
vmkfstools -z /vmfs/devices/disks/t10.ATA_____************ /vmfs/volumes/数据存储的UUID(web客户端可以查到)/slot-1.vmdk
cobbler部署配置
针对centos7.8
下面是对cobbler默认kickstart文件的修改
# Firewall configuration
firewall --disabled
# System language
lang zh_CN
# System timezone
timezone Asia/Shanghai
# End final steps
# 安装cloud-init
yum -y install cloud-init vim
# 配置cloud-init nocloud模式进行初始化
mkdir -p /var/lib/cloud/seed/nocloud
cat >/var/lib/cloud/seed/nocloud/meta-data <<EOF
instance-id: homelab
hostname: node
EOF
cat >/var/lib/cloud/seed/nocloud/user-data <<EOF
#cloud-config
users:
- name: root
ssh_authorized_keys:
- ssh-rsa xxxxxxxx
chpasswd:
list: |
root:xxxxxx
expire: False
EOF
%end
经过测试,esxi6.7下,cobbler自动部署的centos7.8网络是直接可用的(dhcp),所以不需要对网络进行额外配置。
cloud-init的nocloud初始化进行了以下操作:
- 修改root密码
- 为root用户注入ssh公钥
cobbler system规划与部署-ceph集群
复制虚拟机,规划MAC和IP:
名称 | MAC地址 | NAT MAC |
---|---|---|
ceph1 | 00:16:3e:0b:d3:XX | 51 |
ceph2 | 00:16:3e:43:3b:XX | 52 |
ceph3 | 00:16:3e:38:eb:XX | 53 |
ceph4 | 00:16:3e:68:3f:XX | 54 |
创建system
cobbler system add --name=ceph1 --profile=CentOS7.8-x86_64 --ip-address=10.0.0.51 --mac-address=00:16:3e:0b:d3:XX --interface=ens192 --netboot-enabled=1 --hostname=ceph1
cobbler system add --name=ceph2 --profile=CentOS7.8-x86_64 --ip-address=10.0.0.52 --mac-address=00:16:3e:43:3b:XX --interface=ens192 --netboot-enabled=1 --hostname=ceph2
cobbler system add --name=ceph3 --profile=CentOS7.8-x86_64 --ip-address=10.0.0.53 --mac-address=00:16:3e:38:eb:XX --interface=ens192 --netboot-enabled=1 --hostname=ceph3
cobbler system add --name=ceph4 --profile=CentOS7.8-x86_64 --ip-address=10.0.0.54 --mac-address=00:16:3e:68:3f:XX --interface=ens192 --netboot-enabled=1 --hostname=ceph4
chrony NTP Server 部署
centos7默认安装并启用了chrony,在cobbler那台机器上,修改一下chrony配置,使它允许局域网内其他机器作为NTP客户端连接本机进行时间同步。修改/etc/chorny.conf
,找到如下配置,配置允许连接的cidr。
allow 10.0.0.0/24
ceph 15节点部署-准备阶段
以下四部分缺一不可,除此之外,防火墙、selinux等都在cobbler部署系统的时候已经关闭,所以不在这里进行。
安装python3
安装docker
配置hosts
配置NTP客户端
cephadm部署ceph组件
ceph1初始节点
加入其它节点
OSD
#旧硬盘zap掉
ceph orch device zap ceph1 /dev/sdb --force
cephfs
ceph集群初始化
- 创建kube pool:dashboard操作即可,设置好副本数
- 创建kube用户:
ceph auth add client.kube mon 'allow r' osd 'allow rwx pool=kube'
kubespray部署k8s集群
cobbler节点规划
名称 | MAC地址 | NAT MAC |
---|---|---|
node1 | 00:16:3e:67:b7:XX | 21 |
node2 | 00:16:3e:42:5f:XX | 22 |
node3 | 00:16:3e:41:38:XX | 23 |
node4 | 00:16:3e:13:47:XX | 24 |
node5 | 00:16:3e:47:13:XX | 25 |
cobbler system add --name=k8s1 --profile=CentOS7.8-x86_64 --ip-address=10.0.0.21 --mac-address=00:16:3e:67:b7:XX --interface=ens192 --netboot-enabled=1
cobbler system add --name=k8s2 --profile=CentOS7.8-x86_64 --ip-address=10.0.0.22 --mac-address=00:16:3e:42:5f:XX --interface=ens192 --netboot-enabled=1
cobbler system add --name=k8s3 --profile=CentOS7.8-x86_64 --ip-address=10.0.0.23 --mac-address=00:16:3e:41:38:XX --interface=ens192 --netboot-enabled=1
cobbler system add --name=k8s4 --profile=CentOS7.8-x86_64 --ip-address=10.0.0.24 --mac-address=00:16:3e:13:47:XX --interface=ens192 --netboot-enabled=1
cobbler system add --name=k8s5 --profile=CentOS7.8-x86_64 --ip-address=10.0.0.25 --mac-address=00:16:3e:47:13:XX --interface=ens192 --netboot-enabled=1
使用kubespray部署集群,参考另外整理的单独文档
kubespray registry排障
- 用localhost:5000的tag,push时连接会被拒绝,需要用其他域名指向一下。
- 如何删除image:docker doc
外部参考
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。