#!/bin/bash # 空白的 Ubuntu 22.04 使用。不要在已经跑着业务的 prod102 上再执行。 set -eu export DEBIAN_FRONTEND=noninteractive if [ "$(hostname)" = "prod102" ] && [ -f /root/.kube/config ]; then echo "prod102 上已经有集群。这份脚本是给空机器的,停在这里。" exit 1 fi apt-get update apt-get install -y ca-certificates curl gnupg python3 apt-get install -y nvidia-driver-550 if ! nvidia-smi >/dev/null 2>&1; then echo "驱动已安装。重启后再继续,直到 nvidia-smi 能看到 NVIDIA H20。" exit 0 fi curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey \ | gpg --dearmor --yes -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg curl -fsSL https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \ | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \ > /etc/apt/sources.list.d/nvidia-container-toolkit.list apt-get update apt-get install -y nvidia-container-toolkit=1.17.8-1 modprobe br_netfilter || true cat > /etc/modules-load.d/k8s.conf << 'EOF' br_netfilter EOF cat > /etc/sysctl.d/k8s.conf << 'EOF' net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-ip6tables = 1 net.ipv4.ip_forward = 1 EOF sysctl --system >/dev/null mkdir -p /usr/cluster/models /usr/cluster/docker /opt/new-api/data /opt/new-api/logs \ /usr/cluster/dify/xinference /usr/cluster/server-status /usr/cluster/llm-nav \ /usr/cluster/observability/metrics ln -sfn /usr/cluster/models /models echo PREP_OK