All checks were successful
Build Docker Image / Explore-Gitea-Actions (push) Successful in 13s
107 lines
2.6 KiB
Bash
107 lines
2.6 KiB
Bash
#!/bin/bash
|
|
|
|
curl -sSL https://git.martin98.com/MartinFarm/init/raw/branch/main/init-apt.sh | bash
|
|
|
|
current_ip=$(hostname -I | awk '{print $1}')
|
|
|
|
# 镜像加速
|
|
mkdir /etc/rancher/k3s -p
|
|
|
|
cat <<EOF > /etc/rancher/k3s/registries.yaml
|
|
mirrors:
|
|
docker.io:
|
|
registry.k8s.io:
|
|
endpoint:
|
|
- https://docker.martin98.com/v2/docker
|
|
https://registry.k8s.io:
|
|
https://k8s.gcr.io:
|
|
endpoint:
|
|
- https://docker.martin98.com/v2/k8s
|
|
https://gcr.io:
|
|
endpoint:
|
|
- https://docker.martin98.com/v2/gcr
|
|
https://ghcr.io:
|
|
endpoint:
|
|
- https://docker.martin98.com/v2/ghcr
|
|
https://quay.io:
|
|
endpoint:
|
|
- https://docker.martin98.com/v2/quay
|
|
EOF
|
|
|
|
# 安装 keepalived
|
|
apt install -y keepalived
|
|
|
|
# 检查是否为 Master-01
|
|
if [ "$current_ip" == "$master" ]; then
|
|
state=MASTER
|
|
priority=100
|
|
else
|
|
state=BACKUP
|
|
priority=100
|
|
fi
|
|
|
|
# 初始化 VIP
|
|
mkdir /etc/keepalived
|
|
cat <<EOF | sudo tee /etc/keepalived/keepalived.conf
|
|
vrrp_instance VI_1 {
|
|
state $state
|
|
interface eth0
|
|
virtual_router_id 51
|
|
priority $priority
|
|
advert_int 1
|
|
virtual_ipaddress {
|
|
$vip
|
|
}
|
|
}
|
|
EOF
|
|
|
|
sudo systemctl restart keepalived
|
|
systemctl status keepalived &
|
|
|
|
|
|
|
|
# 检查是否为 Master-01
|
|
if [ "$current_ip" == "$master" ]; then
|
|
# 开始部署
|
|
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -s - server \
|
|
--cluster-init \
|
|
--cluster-cidr $pod_subnet \
|
|
--service-cidr $service_subnet \
|
|
--node-external-ip=$vip_ip \
|
|
--tls-san=$vip_ip
|
|
|
|
|
|
TOKEN=$(cat /var/lib/rancher/k3s/server/node-token)
|
|
cat <<EOF
|
|
------------------------------------------------------------------------------------
|
|
初始化 master VIP[$state] $current_ip 成功
|
|
|
|
export pod_subnet=$pod_subnet
|
|
export service_subnet=$service_subnet
|
|
export vip_ip=$vip_ip
|
|
export vip=$vip_ip/16
|
|
export master=$master
|
|
curl -sSL https://git.martin98.com/MartinFarm/init/raw/branch/main/init-k3s.sh | bash
|
|
|
|
------------------------------------------------------------------------------------
|
|
EOF
|
|
|
|
else
|
|
cat <<EOF
|
|
------------------------------------------------------------------------------------
|
|
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | K3S_TOKEN=$TOKEN sh -s - server \\
|
|
--server https://$vip_ip:6443 \\
|
|
--tls-san=$vip_ip
|
|
|
|
------------------------------------------------------------------------------------
|
|
EOF
|
|
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | K3S_TOKEN=$TOKEN sh -s - server \
|
|
--server https://$vip_ip:6443 \
|
|
--tls-san=$vip_ip
|
|
fi
|
|
|
|
|
|
kubectl get nodes
|
|
|
|
|