k8s部署前置环境准备,适用于Ubuntu 20.04/22.04:

cat > /root/node-init.sh <<'EOF'
#!/bin/bash
set -o errexit
set -o nounset
set -o pipefail

echo "====================================="
echo "  生产级 K8s 节点初始化脚本(幂等安全)"
echo "  可重复执行 | Ubuntu 20.04/22.04"
echo "====================================="

#======================================================================
# 1. 更新源
#======================================================================
echo -e "\n[1/8] 更新软件源..."
apt update -y

#======================================================================
# 2. 关闭防火墙
#======================================================================
echo -e "\n[2/8] 关闭并禁用防火墙..."
systemctl stop ufw 2>/dev/null || true
systemctl disable ufw 2>/dev/null || true

#======================================================================
# 3. 永久关闭 Swap
#======================================================================
echo -e "\n[3/8] 关闭 Swap..."
swapoff -a
sed -i '/swap/ s/^/#/' /etc/fstab

#======================================================================
# 4. 安装基础工具
#======================================================================
echo -e "\n[4/8] 安装系统依赖工具..."
apt install -y --no-install-recommends \
  curl wget vim net-tools gnupg2 ca-certificates \
  apt-transport-https software-properties-common \
  ipvsadm ipset sysstat psmisc

#======================================================================
# 5. 时间同步 chrony(已修复 Ubuntu 服务名)
#======================================================================
echo -e "\n[5/8] 配置时间同步(chrony)..."
apt install -y chrony
systemctl enable --now chrony
timedatectl set-timezone Asia/Shanghai

#======================================================================
# 6. 内核模块
#======================================================================
echo -e "\n[6/8] 加载内核模块..."
modprobe overlay 2>/dev/null || true
modprobe br_netfilter 2>/dev/null || true

cat > /etc/modules-load.d/k8s.conf <<'CONF'
overlay
br_netfilter
CONF

#======================================================================
# 7. 系统内核参数 sysctl
#======================================================================
echo -e "\n[7/8] 配置内核参数..."
cat > /etc/sysctl.d/99-k8s.conf <<'CONF'
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1
fs.inotify.max_user_instances       = 8192
fs.inotify.max_user_watches         = 524288
CONF

sysctl --system 2>/dev/null || true

#======================================================================
# 8. limits 优化(安全,不会重复追加)
#======================================================================
echo -e "\n[8/8] 设置系统资源限制(安全不重复)..."

LIMITS_FILE="/etc/security/limits.conf"

grep -q "^* soft nofile 65535" "${LIMITS_FILE}" || echo "* soft nofile 65535" >> "${LIMITS_FILE}"
grep -q "^* hard nofile 65535" "${LIMITS_FILE}" || echo "* hard nofile 65535" >> "${LIMITS_FILE}"
grep -q "^* soft nproc  65535" "${LIMITS_FILE}" || echo "* soft nproc  65535" >> "${LIMITS_FILE}"
grep -q "^* hard nproc  65535" "${LIMITS_FILE}" || echo "* hard nproc  65535" >> "${LIMITS_FILE}"

echo -e "\n====================================="
echo " ✅ 节点初始化完成(安全可重复执行)"
echo "====================================="
echo "已完成配置:"
echo "  ✔ 关闭防火墙"
echo "  ✔ 永久关闭 Swap"
echo "  ✔ 内核模块 overlay / br_netfilter"
echo "  ✔ 内核网络转发参数"
echo "  ✔ 时间同步 chrony + 上海时区"
echo "  ✔ 系统文件句柄 & 进程数优化"
echo "  ✔ 安装基础运维工具"
echo ""
echo "脚本可重复执行,不会污染系统"
echo "====================================="
EOF

文章作者: 楚少爱看雪
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 楚少爱看雪
学习 Study
喜欢就支持一下吧