pcapi/script/k8s+kebuvirt/worker_install.sh
2025-12-31 14:08:24 +08:00

61 lines
1.5 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# worker-cpu-install.sh
# 所有无 GPU 的工作节点运行此脚本
set -e
OFFLINE_DIR=/opt/offline
# 安装 containerd、CNI、k8s 二进制(同 control plane
tar --no-overwrite-dir -C /usr/local -xzf ${OFFLINE_DIR}/containerd.tar.gz
mkdir -p /opt/cni/bin
tar -xzf ${OFFLINE_DIR}/cni-plugins.tgz -C /opt/cni/bin/
cp ${OFFLINE_DIR}/k8s-binaries/kubeadm /usr/bin/
cp ${OFFLINE_DIR}/k8s-binaries/kubelet /usr/bin/
chmod +x /usr/bin/kubeadm /usr/bin/kubelet
# 同样配置 containerd 和 kubelet
cat > /etc/systemd/system/containerd.service << 'EOF'
[Unit]
Description=containerd daemon
After=network.target
[Service]
ExecStartPre=/sbin/modprobe overlay
ExecStart=/usr/local/bin/containerd
Restart=always
Type=notify
Delegate=yes
KillMode=process
[Install]
WantedBy=multi-user.target
EOF
systemctl enable containerd
systemctl start containerd
cat > /etc/systemd/system/kubelet.service << 'EOF'
[Unit]
Description=kubelet
After=containerd.service
Requires=containerd.service
[Service]
ExecStart=/usr/bin/kubelet
Restart=always
StartLimitInterval=0
VolumeMountPropagation=private
Environment="KUBELET_EXTRA_ARGS=--container-runtime=remote --runtime-request-timeout=15m --container-runtime-endpoint=unix:///run/containerd/containerd.sock"
[Install]
WantedBy=multi-user.target
EOF
systemctl enable kubelet
echo "✅ 准备加入集群,请在主控节点获取 join 命令:"
echo "kubeadm token create --print-join-command"
echo "然后在此节点执行输出的命令"