关于 pikvm
- 这是一个树莓派做ipkvm的系统,启动后系统目录是只读状态方便直接拔电源。
- 需要一个供读写的设备。可以是usb存储设备,可以是iscsi挂载,也可以是其他网络存储。自己写到/etc/fstab自动挂载,并且具备Linux基本的权限能力。
- 这里我已经挂载好了一个iscsi并格式化成了ext4系统。
流程
- 创建需要目录
# ssh用root用户登录你的pikvm
rw
# 开启msd目录的读写权限
kvmd-helper-otgmsd-remount rw
mkdir /var/lib/kvmd/msd/cm4-data
chmod 777 /var/lib/kvmd/msd/cm4-data
# 恢复只读
kvmd-helper-otgmsd-remount ro
# /etc/fstab 里面添加了iscsi的开机挂载
# UUID=0ff72a68-e67a-43ca-96d5-b8c55f69043d /var/lib/kvmd/msd/cm4-data ext4 defaults,_netdev 0 0
# 创建k3s需要的路径
cd /var/lib/kvmd/msd/cm4-data
mkdir kube
mkdir /root/.kube
touch kube/config
mkdir -p etc/rancher
mkdir -p var/lib/rancher
mkdir -p var/lib/kubelet
mkdir -p var/lib/cni
mkdir /etc/k3s
- 软连接目录
ln -s /var/lib/kvmd/msd/cm4-data/kube/conf /root/.kube/
ln -s /var/lib/kvmd/msd/cm4-data/etc/rancher /etc/
ln -s /var/lib/kvmd/msd/cm4-data/var/lib/rancher /var/lib/
ln -s /var/lib/kvmd/msd/cm4-data/var/lib/kubelet /var/lib/
ln -s /var/lib/kvmd/msd/cm4-data/var/lib/cni /var/lib/
- 准备安装脚本
cd /var/lib/kvmd/msd/cm4-data
mkdir k3s-installer
cd k3s-installer
vim /etc/k3s/config.yaml
添加下面内容
# 初始化配置文件 修改带注释的字段
write-kubeconfig-mode: "0644"
tls-san:
- "pikvm.scjtqs.com" # 域名
- 192.168.50.144' # 公网ip
- 192.168.50.143 # 内网ip
- 127.0.0.1 # 你能用到的都加上
service-cidr:
- 10.96.0.0/12
- 2001:cafe:43::/112
cluster-cidr:
- 172.16.0.0/12
- 2001:cafe:42::/56
service-node-port-range: 1-65535
cd /var/lib/kvmd/msd/cm4-data/k3s-installer
# 下载k3s安装脚本
wget https://mirror.ghproxy.com/https://raw.githubusercontent.com/scjtqs2/k3s-installer/main/k3s.sh
vim /boot/cmdline.txt
# 添加 cgroup_memory=1 cgroup_enable=memory 到里面去
# 添加完成后,重启
reboot
- 执行安装命令
#重启后,需要重新开启写模式
rw
cd /var/lib/kvmd/msd/cm4-data/k3s-installer
# master节点初始化安装
cat k3s.sh | INSTALL_K3S_MIRROR=cn K3S_TOKEN=myPgagafgasfasfasgwer INSTALL_K3S_VERSION="v1.26.6+k3s1" K3S_CONFIG_FILE=/etc/k3s/config.yaml INSTALL_K3S_EXEC="--data-dir /var/lib/kvmd/msd/cm4-data/var/lib/rancher/k3s --write-kubeconfig /var/lib/kvmd/msd/cm4-data/kube/config --write-kubeconfig-mode 666 --flannel-ipv6-masq --disable traefik --disable metrics-server" sh -s -
# 开始安装等待安装完成就可以了
# 添加定时任务,用于刷新默认的3个月有效期的根证书
pacman -S cronie
systemctl enable --now cronie.service
crontab -e
# 添加 '0 19 1 * * systemctl restart k3s' 这个定时任务
# 安装完成后,恢复根目录的只读性质
ro