minikube和kubeadm是linux下搭建单节点kubernetes集群的两种主流方式:minikube通过虚拟机快速启动轻量集群,适合开发验证;kubeadm直接在宿主机部署标准控制面,更贴近生产环境;两者均需配置cni插件(如calico)和验证应用(如nginx)以确保集群功能完整。

如果您希望在Linux系统上快速搭建一个单节点Kubernetes集群用于学习或测试,Minikube和kubeadm是两种主流方式。以下是针对不同场景的独立部署方法:
一、使用Minikube部署单节点Kubernetes
Minikube在本地虚拟机中运行一个轻量级Kubernetes集群,适合开发与验证,无需修改宿主机系统配置,隔离性好且启动迅速。
1、确保系统已安装Docker或Podman作为容器运行时,并启用systemd服务。
2、执行命令下载并安装Minikube二进制文件:curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && sudo install minikube-linux-amd64 /usr/local/bin/minikube。
3、运行minikube start --driver=docker启动集群,Minikube将自动拉取所需镜像并初始化控制平面。
4、执行minikube kubectl -- get nodes验证节点状态,输出应显示Ready状态。
二、使用kubeadm部署单节点Kubernetes
kubeadm提供标准化的集群引导流程,直接在宿主机上运行组件,更贴近生产环境结构,适用于需要完整控制面组件的学习场景。
1、禁用swap:执行sudo swapoff -a,并注释/etc/fstab中swap行以防止重启生效。
2、加载内核模块并配置网络:运行sudo modprobe br_netfilter && echo 'br_netfilter' | sudo tee -a /etc/modules;设置sysctl -w net.bridge.bridge-nf-call-iptables=1。
3、安装containerd:下载并解压containerd二进制包,配置/etc/containerd/config.toml启用SystemdCgroup = true,然后启动containerd服务。
4、添加Kubernetes APT源并安装kubelet、kubeadm、kubectl三个核心组件,保持版本一致,例如sudo apt-get install -y kubelet=1.28.0-00 kubeadm=1.28.0-00 kubectl=1.28.0-00。
5、执行sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --cri-socket=unix:///run/containerd/containerd.sock初始化控制平面。
6、按初始化成功后提示执行mkdir -p $HOME/.kube && sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config && sudo chown $(id -u):$(id -g) $HOME/.kube/config配置kubectl访问权限。
三、部署Calico网络插件
Kubernetes要求CNI插件支持Pod间通信,Calico提供策略控制与高性能路由能力,适用于单节点与多节点统一部署。
1、确保kubectl已配置且能连接API Server,运行kubectl get nodes确认节点为NotReady状态。
2、应用Calico官方清单:kubectl apply -f https://docs.projectcalico.org/v3.26/manifests/calico.yaml。
3、等待kubectl get pods -n kube-system中所有calico-* Pod状态变为Running,节点状态将自动更新为Ready。
四、验证集群功能
部署一个Nginx示例应用可验证调度、网络与服务发现是否正常工作,不依赖外部镜像仓库时优先使用本地缓存镜像。
1、创建Deployment:kubectl create deployment nginx-test --image=nginx:alpine。
2、暴露端口:kubectl expose deployment nginx-test --port=80 --type=NodePort。
3、获取服务地址:kubectl get service nginx-test,记录NODE_PORT值。
4、在宿主机执行curl http://localhost:<strong><font color="green">NODE_PORT</font></strong>,返回Nginx欢迎页即表示集群基础功能就绪。











