VPS服务器K8s集群安装全流程教程
文章分类:更新公告 /
创建时间:2025-08-27
在容器化应用管理需求激增的当下,VPS服务器凭借独立虚拟环境和灵活资源控制,成为搭建Kubernetes(K8s)集群的热门选择。本文将手把手教你在VPS服务器上完成K8s集群安装,从准备工作到最终验证,覆盖全流程关键步骤。
一、前置准备:VPS环境与工具检查
搭建K8s集群前需完成三项核心准备。首先是VPS服务器配置:至少需要2台VPS(1台主节点+1台工作节点),推荐配置2核4G内存起步,操作系统选择Ubuntu 18.04及以上版本——其社区支持完善,与K8s组件兼容性更优,尤其适合初次搭建集群的用户。
其次是Docker安装。K8s依赖Docker运行容器,在Ubuntu系统执行以下命令:
sudo apt-get update
sudo apt-get install -y docker.io
安装完成后建议调整Docker存储驱动,编辑`/etc/docker/daemon.json`添加`"storage-driver": "overlay2"`(默认可能为vfs,性能较差),保存后执行`sudo systemctl restart docker`生效。
最后是关闭Swap分区。K8s要求禁用Swap,否则可能导致节点无法正常调度。通过`swapoff -a`临时关闭,同时编辑`/etc/fstab`注释掉swap行实现永久关闭,操作命令:
sudo nano /etc/fstab # 注释包含swap的行
sudo swapoff -a # 立即生效
二、K8s组件安装与主节点初始化
所有VPS节点需安装K8s核心组件。首先添加K8s软件源:
sudo apt-get update && sudo apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
更新并安装组件:
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl # 锁定版本防止自动更新
安装完成后,在主节点执行初始化命令:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
这里的`--pod-network-cidr`需与后续网络插件匹配(本文以Flannel为例,其默认使用该CIDR)。命令执行完成后会输出工作节点加入指令(如`kubeadm join 192.168.1.100:6443 --token abcdef.1234567890abcdef --discovery-token-ca-cert-hash sha256:xxx`),需妥善保存。
初始化后配置`kubectl`工具:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
三、网络插件部署与节点加入
K8s集群内容器通信依赖网络插件,本文选择轻量级的Flannel:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
约2分钟后,通过`kubectl get pods -n kube-system`检查`kube-flannel-ds`相关Pod是否处于Running状态。
工作节点加入集群时,使用主节点初始化输出的指令(示例):
sudo kubeadm join 192.168.1.100:6443 --token abcdef.1234567890abcdef --discovery-token-ca-cert-hash sha256:xxx
注意:若主节点防火墙未开放6443端口(API Server)和工作节点10250端口(kubelet),需提前放行,避免连接失败。
四、集群状态验证与后续使用
所有节点加入后,在主节点执行:
kubectl get nodes
若输出中各节点状态均为`Ready`,则集群搭建成功。进一步验证可查看系统Pod状态:
kubectl get pods -A # 检查kube-system命名空间内Pod是否全部Running
至此,VPS服务器上的K8s集群已部署完成。后续可通过`kubectl`命令部署应用,例如:
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
通过该流程搭建的K8s集群,能充分利用VPS的独立资源特性,为容器化应用提供稳定、可扩展的运行环境。