create_kubernetes.sh

好的!我们可以将所有 apt 源(包括 Kubernetes 和 containerd 的)都替换为 阿里云镜像,加快下载速度,特别适合国内网络环境。

下面是更新后的 三个脚本,主要是:

  • 使用 阿里云 Ubuntu 源
  • 使用 阿里云 Kubernetes 源
  • 保持 containerd 官方安装(因为 containerd 的安装包是官方提供的,可以考虑用 apt 安装或直接用 systemd 默认版本)

✅ 脚本1:所有节点通用初始化脚本(含阿里云源)

#!/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

脚本2:master 节点初始化脚本(不变)

#!/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

脚本3:node 节点加入集群(执行 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

你可能感兴趣的:(kubernetes,kubernetes,容器,云原生)