在 Debian 上用 kubeadm 安装 Kubernetes 单主集群
一 环境准备与前置检查
sudo apt update && sudo apt upgrade -ysudo apt install -y apt-transport-https ca-certificates curlsudo swapoff -a,并注释 /etc/fstab 中的 swap 行。ip a、hostname -I,确保 API Server 广告地址 可达。二 安装容器运行时 Containerd(推荐)
sudo apt update && sudo apt install -y containerdsudo systemctl enable --now containerdsudo mkdir -p /etc/containerdcontainerd config default | sudo tee /etc/containerd/config.toml/etc/containerd/config.toml,将 [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options] 下的 SystemdCgroup 设为 true。sudo systemctl restart containerd三 安装 kubeadm kubelet kubectl
curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/kubernetes-archive-keyring.gpgecho "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.listsudo apt update && sudo apt install -y kubelet kubeadm kubectlsudo apt-mark hold kubelet kubeadm kubectlsudo systemctl enable --now kubelet四 初始化控制平面与配置 kubectl
sudo kubeadm init --pod-network-cidr=10.244.0.0/16sudo kubeadm init --apiserver-advertise-address=<MASTER_IP> --pod-network-cidr=10.244.0.0/16--image-repository=registry.aliyuncs.com/google_containersmkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config五 安装 CNI 网络插件与加入 Worker
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.ymlkubectl apply -f https://docs.projectcalico.org/manifests/calico.yamlkubeadm init 输出中的 kubeadm join ... 命令;若 token 过期,在 Master 上生成新命令:kubeadm token create --print-join-commandkubectl get nodes(状态应为 Ready)kubectl get pods -A(所有系统 Pod 应为 Running)六 常见问题与常用维护
sudo kubeadm resetsudo rm -rf /etc/cni/net.dsudo iptables -F && sudo iptables -t nat -F && sudo iptables -t mangle -F && sudo iptables -X--image-repository=registry.aliyuncs.com/google_containers)或配置私有镜像仓库。