云服务器部署K8s 1.28集群全流程指南
文章分类:行业新闻 /
创建时间:2025-12-08
在企业加速数字化转型的背景下,通过云服务器搭建Kubernetes(K8s,容器编排工具)集群,已成为实现应用容器化管理的核心手段。本文以K8s 1.28版本为例,详细拆解从准备到验证的全流程操作,帮你快速掌握云服务器上的集群部署技巧。
前期准备:选对云服务器是基础
搭建高可用K8s集群,至少需要3台云服务器——1台主节点(Master,负责集群管理)和2台工作节点(Worker,运行应用容器)。服务器配置建议:2核CPU、4GB内存、20GB以上磁盘,操作系统推荐Ubuntu 20.04或CentOS 7。需特别注意两点:一是所有服务器需内网互通,确保主节点与工作节点能通信;二是服务器需开放外网访问,用于下载K8s组件和容器镜像。
安装核心软件:Docker与K8s工具链
K8s依赖容器运行时和集群管理工具,首先需在每台服务器安装Docker和K8s组件(kubeadm、kubelet、kubectl)。
以Ubuntu系统为例,Docker安装命令如下:
sudo apt-get update
sudo apt-get install docker.io -y
sudo systemctl start docker
sudo systemctl enable docker
接着安装K8s组件。先添加官方软件源,再安装kubeadm(集群初始化工具)、kubelet(节点代理)和kubectl(命令行管理工具):
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl
sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
echo "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.list
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl # 锁定版本防止自动升级
主节点初始化:启动集群核心
主节点是集群的“大脑”,需通过kubeadm完成初始化。执行以下命令(指定K8s版本为1.28,并规划Pod网络地址范围):
sudo kubeadm init --kubernetes-version=1.28 --pod-network-cidr=10.244.0.0/16
初始化完成后,控制台会输出关键信息,包括工作节点的加入命令(如`kubeadm join <主节点IP>:6443 --token xxx --discovery-token-ca-cert-hash 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
安装网络插件:打通Pod通信
K8s集群中Pod跨节点通信需依赖网络插件。以常用的Flannel为例,通过以下命令安装:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
安装完成后,Flannel会自动为每个节点分配Pod子网,确保不同节点的Pod能相互访问。
工作节点加入:扩展集群算力
在每台工作节点上执行主节点初始化时保存的加入命令(需替换`<主节点IP>`、`
sudo kubeadm join <主节点IP>:<主节点端口> --token <令牌> --discovery-token-ca-cert-hash <哈希值>
加入完成后,回到主节点执行`kubectl get nodes`,若所有节点状态显示为“Ready”,说明集群节点已正常运行。
集群验证:跑个Nginx试试
为确认集群功能正常,可部署一个简单的Nginx Pod。执行命令:
kubectl run nginx --image=nginx
通过`kubectl get pods`查看状态,当Pod状态变为“Running”,即表示集群已能正常调度容器。
至此,云服务器上的K8s 1.28集群部署完成。后续可根据业务需求,通过kubectl部署更多应用、配置服务暴露或设置自动扩缩容,充分发挥云服务器与K8s的协同优势。
工信部备案:苏ICP备2025168537号-1