简介

本文容最初记录于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

外部参考