海外云服务器上Kubernetes入门部署指南
文章分类:技术文档 /
创建时间:2026-01-28
Kubernetes(简称K8s,容器编排系统),就像管盒子的超级管理员。如果你有一堆装着不同应用的盒子(容器),它能让盒子自动运行,坏了立刻换新,还能按规则分配运行场地。今天我们一步步在[海外云服务器](/cart/goodsList.htm)上把这个“超级管理员”部署好,验证它的核心功能。
要让K8s顺利运行,你需要一台满足基础要求的海外云服务器:
- 配置要求:至少2核4G内存、20G以上存储,避免空间不足导致部署失败
- 系统选择:推荐Ubuntu 20.04 LTS(长期支持版本),兼容性好、操作门槛低
- 前置操作:
登录海外云服务器控制台,开放必要端口:6443(K8s API通信端口)、2379-2380(集群数据存储通信端口)、30000-32767(外部访问应用的NodePort端口范围)
登录服务器终端,更新系统软件包:
安装Docker(容器运行环境),这是K8s依赖的基础组件:
验证Docker正常运行,执行以下命令,能看到官方欢迎信息即为成功:
K8s的核心管理工具分为三类,我们依次安装:
依托海外云服务器的网络优势,使用官方海外源能大幅提升下载速度,执行以下命令:
- kubeadm(K8s集群初始化工具):负责启动K8s集群的核心操作
- kubelet(节点容器管理组件):运行在每个节点上,管理容器的启停
- kubectl(K8s命令行操作工具):用来操作K8s集群的终端工具
执行安装命令并锁定版本,避免自动更新引发兼容性问题:
验证安装,执行以下命令,能正常显示版本号即为成功:
这一步是启动K8s“超级管理员”的关键操作:
1. 执行集群初始化命令,替换“你的公网IP”为海外云服务器的实际公网IP:
2. 配置普通用户权限,执行完初始化命令后,终端会输出一段配置命令,直接复制执行:
3. 验证集群状态,执行以下命令,此时节点状态为NotReady,这是因为还未安装网络插件:
K8s集群内部的Pod(K8s最小部署单元)需要专用网络才能通信,Flannel是入门最友好的网络插件,执行命令安装:
等待2-3分钟,再次执行kubectl get nodes,当节点状态变为Ready,说明K8s集群初始化成功!
我们部署常用的Nginx应用,测试K8s的容器管理能力:
1. 创建Nginx部署:
2. 暴露应用到外部访问:
3. 查看应用访问端口,执行以下命令,会看到nginx-demo的PORT列显示“80:3xxxx/TCP”,其中3xxxx就是外部访问的NodePort端口:
4. 验证访问,在本地浏览器输入“海外云服务器公网IP:3xxxx”,能看到Nginx的官方欢迎页面,说明应用部署成功
执行以下命令,查看flannel开头的Pod状态,如果是CrashLoopBackOff,检查服务器防火墙是否开放了Flannel需要的8472端口,或重新执行Flannel安装命令:
检查海外云服务器控制台是否开放了对应NodePort端口(30000-32767范围)
执行以下命令,确认端口映射规则正确:
用ping命令测试本地网络是否能连通海外云服务器的公网IP
现在你已经在**海外云服务器**上完成了K8s的入门部署。试试扩容应用,执行kubectl scale deployment nginx-demo --replicas=3,观察K8s自动创建多个容器实例。或是删除一个Pod,看它是否自动重建。这些都是K8s作为“超级管理员”的核心能力,后续可逐步探索更多容器编排功能。
第一步:准备海外云服务器基础环境
要让K8s顺利运行,你需要一台满足基础要求的海外云服务器:
- 配置要求:至少2核4G内存、20G以上存储,避免空间不足导致部署失败
- 系统选择:推荐Ubuntu 20.04 LTS(长期支持版本),兼容性好、操作门槛低
- 前置操作:
登录海外云服务器控制台,开放必要端口:6443(K8s API通信端口)、2379-2380(集群数据存储通信端口)、30000-32767(外部访问应用的NodePort端口范围)
登录服务器终端,更新系统软件包:
sudo apt update && sudo apt upgrade -y安装Docker(容器运行环境),这是K8s依赖的基础组件:
sudo apt install docker.io -y
sudo systemctl enable docker --now验证Docker正常运行,执行以下命令,能看到官方欢迎信息即为成功:
docker run hello-world第二步:安装Kubernetes核心组件
K8s的核心管理工具分为三类,我们依次安装:
2.1 配置K8s官方海外软件源
依托海外云服务器的网络优势,使用官方海外源能大幅提升下载速度,执行以下命令:
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 update2.2 安装kubeadm、kubelet、kubectl
- kubeadm(K8s集群初始化工具):负责启动K8s集群的核心操作
- kubelet(节点容器管理组件):运行在每个节点上,管理容器的启停
- kubectl(K8s命令行操作工具):用来操作K8s集群的终端工具
执行安装命令并锁定版本,避免自动更新引发兼容性问题:
sudo apt install kubeadm kubelet kubectl -y
sudo apt-mark hold kubeadm kubelet kubectl验证安装,执行以下命令,能正常显示版本号即为成功:
kubeadm version第三步:初始化Kubernetes集群
这一步是启动K8s“超级管理员”的关键操作:
1. 执行集群初始化命令,替换“你的公网IP”为海外云服务器的实际公网IP:
sudo kubeadm init --apiserver-advertise-address=你的公网IP --pod-network-cidr=10.244.0.0/162. 配置普通用户权限,执行完初始化命令后,终端会输出一段配置命令,直接复制执行:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config3. 验证集群状态,执行以下命令,此时节点状态为NotReady,这是因为还未安装网络插件:
kubectl get nodes3.1 安装Flannel网络插件
K8s集群内部的Pod(K8s最小部署单元)需要专用网络才能通信,Flannel是入门最友好的网络插件,执行命令安装:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml等待2-3分钟,再次执行kubectl get nodes,当节点状态变为Ready,说明K8s集群初始化成功!
第四步:部署第一个应用验证集群
我们部署常用的Nginx应用,测试K8s的容器管理能力:
1. 创建Nginx部署:
kubectl create deployment nginx-demo --image=nginx:latest2. 暴露应用到外部访问:
kubectl expose deployment nginx-demo --type=NodePort --port=803. 查看应用访问端口,执行以下命令,会看到nginx-demo的PORT列显示“80:3xxxx/TCP”,其中3xxxx就是外部访问的NodePort端口:
kubectl get svc4. 验证访问,在本地浏览器输入“海外云服务器公网IP:3xxxx”,能看到Nginx的官方欢迎页面,说明应用部署成功
入门级故障排查小技巧
4.1 节点状态一直NotReady?
执行以下命令,查看flannel开头的Pod状态,如果是CrashLoopBackOff,检查服务器防火墙是否开放了Flannel需要的8472端口,或重新执行Flannel安装命令:
kubectl get pods -n kube-system4.2 无法访问部署的应用?
检查海外云服务器控制台是否开放了对应NodePort端口(30000-32767范围)
执行以下命令,确认端口映射规则正确:
kubectl describe svc nginx-demo用ping命令测试本地网络是否能连通海外云服务器的公网IP
现在你已经在**海外云服务器**上完成了K8s的入门部署。试试扩容应用,执行kubectl scale deployment nginx-demo --replicas=3,观察K8s自动创建多个容器实例。或是删除一个Pod,看它是否自动重建。这些都是K8s作为“超级管理员”的核心能力,后续可逐步探索更多容器编排功能。
工信部备案:苏ICP备2025168537号-1