好的!我们可以将所有 apt
源(包括 Kubernetes 和 containerd 的)都替换为 阿里云镜像,加快下载速度,特别适合国内网络环境。
下面是更新后的 三个脚本,主要是:
#!/bin/bash
set -e
echo "[Step 0] 更换apt源为阿里云"
cp /etc/apt/sources.list /etc/apt/sources.list.bak
cat <<EOF | tee /etc/apt/sources.list
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
EOF
apt update
echo "[Step 1] 禁用swap"
swapoff -a
sed -i '/ swap / s/^/#/' /etc/fstab
echo "[Step 2] 加载内核模块"
cat <<EOF | tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF
modprobe overlay
modprobe br_netfilter
echo "[Step 3] 设置内核参数"
cat <<EOF | tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOF
sysctl --system
echo "[Step 4] 安装containerd"
apt install -y containerd
echo "[Step 5] 创建containerd配置文件"
mkdir -p /etc/containerd
containerd config default | tee /etc/containerd/config.toml
sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml
systemctl restart containerd
systemctl enable containerd
echo "[Step 6] 添加kubernetes源(阿里云镜像)"
curl -fsSL https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | gpg --dearmor -o /etc/apt/trusted.gpg.d/kubernetes.gpg
cat <<EOF | tee /etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
apt update
echo "[Step 7] 安装kubelet kubeadm kubectl"
apt install -y kubelet kubeadm kubectl
apt-mark hold kubelet kubeadm kubectl
systemctl enable kubelet
#!/bin/bash
set -e
echo "[Step 1] 初始化kubernetes master节点"
kubeadm init --pod-network-cidr=10.244.0.0/16 --image-repository=registry.aliyuncs.com/google_containers
echo "[Step 2] 配置kubectl访问权限"
mkdir -p $HOME/.kube
cp /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
echo "[Step 3] 安装flannel网络插件"
kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml
echo "[Step 4] 获取join命令(保存给worker用)"
kubeadm token create --print-join-command
kubeadm join
)#!/bin/bash
set -e
# 请替换为你的实际 join 命令
kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef \
--discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
kubeadm join 192.168.121.134:6443 --token 4rl0nn.47kc5rlw6hajwleu
–discovery-token-ca-cert-hash sha256:f7161ebf851bdd0a4ba381b38aff9a410c0b943b71a2ed5aed66d37fc2c1b20f