Ubuntu上使用 kubeadm 安装 Kubernetes 集群
一 环境准备与前置检查
swapoff -a && sysctl -w vm.swappiness=0sed -ri '/^[^#]*swap/s@^@#@' /etc/fstabcat >/etc/modules-load.d/k8s.conf <<EOF br_netfilter bridge EOFcat >/etc/sysctl.d/k8s.conf <<EOF net.bridge.bridge-nf-call-ip6tables=1 net.bridge.bridge-nf-call-iptables=1 net.ipv4.ip_forward=1 EOFsysctl --systemhostnamectl set-hostname mastercat >>/etc/hosts <<EOF 192.168.31.61 master 192.168.31.62 node1 192.168.31.63 node2 EOFsystemctl disable --now ufwsystemctl disable --now apparmortimedatectl set-ntp true 或安装 ntp/chrony 同步时间。二 安装容器运行时 Containerd
apt-get update && apt-get install -y containerdsystemctl enable --now containerdcontainerd config default | tee /etc/containerd/config.toml/etc/containerd/config.toml,将 [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options] 下的 SystemdCgroup 设为 truesystemctl restart containerd三 安装 kubeadm kubelet kubectl
apt-get update && apt-get install -y apt-transport-https ca-certificates curl gpgmkdir -p -m 755 /etc/apt/keyringscurl -fsSL https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.24/deb/Release.key | gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpgecho "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.24/deb/ /" | tee /etc/apt/sources.list.d/kubernetes.listapt-get updateapt-get install -y kubelet=1.24.17-1.1 kubeadm=1.24.17-1.1 kubectl=1.24.17-1.1apt-mark hold kubelet kubeadm kubectl四 初始化 Master 与加入 Worker
kubeadm init --kubernetes-version=v1.24.17 --pod-network-cidr=10.244.0.0/16 --image-repository registry.aliyuncs.com/google_containersmkdir -p $HOME/.kubecp -i /etc/kubernetes/admin.conf $HOME/.kube/configchown $(id -u):$(id -g) $HOME/.kube/configkubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.ymlkubeadm token create --print-join-command 重新生成):
kubeadm join <MasterIP>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>kubectl get nodes 应看到所有节点状态为 Ready。五 常见问题与快速排查
systemctl status containerd kubelet--pod-network-cidr 与插件配置一致--image-repository registry.aliyuncs.com/google_containers)或提前在各节点拉取所需镜像kubeadm token create --print-join-command