k8s部署前置环境准备
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 许可协议。转载请注明来自
楚少爱看雪!
喜欢就支持一下吧