香港VPS搭建K8s单节点集群完整教程
文章分类:售后支持 /
创建时间:2025-12-04
在数字化应用部署场景中,香港VPS凭借覆盖亚太地区的低延迟网络优势,成为很多开发者搭建容器环境的首选。结合K8s(Kubernetes,容器编排系统)单节点集群,既能满足基础容器管理需求,又能降低多节点集群的复杂度。本文将从环境准备到应用部署,详细讲解如何在香港VPS上完成这一过程。
前期准备:硬件与软件环境
首先需要一台香港VPS,操作系统建议选择Ubuntu 20.04或CentOS 7等主流Linux发行版,这类系统对K8s兼容性更优。硬件配置方面,考虑到K8s组件和容器运行的基础需求,至少需要2GB内存、2核CPU和20GB存储——内存不足可能导致集群组件频繁OOM(内存溢出),存储过小则会影响日志和镜像存储。
软件层面需提前安装Docker,作为K8s的容器运行时。以Ubuntu系统为例,通过以下命令完成安装(操作前建议先更新系统包,避免依赖缺失):
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install -y docker.io
sudo systemctl enable --now docker # 开机启动Docker
安装完成后,可通过`docker run hello-world`验证Docker是否正常工作。
安装K8s核心组件
K8s的核心组件包括kubeadm(集群初始化工具)、kubelet(节点代理)和kubectl(命令行管理工具)。在Ubuntu系统中,需先添加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 # 锁定当前版本
初始化单节点集群与网络配置
使用kubeadm初始化集群时,需指定Pod网络插件的CIDR(无类别域间路由)范围,这里以Flannel插件为例:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
初始化成功后,终端会输出加入集群的命令(单节点场景无需使用,但需记录`admin.conf`路径)。接下来配置kubectl访问集群:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
随后安装Flannel网络插件,确保Pod间通信:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
验证集群状态与部署应用
通过以下命令检查节点状态,当输出中STATUS为Ready时,说明集群初始化完成:
kubectl get nodes
若需进一步确认Pod运行情况,可执行`kubectl get pods -A`查看所有命名空间的Pod状态。
以部署Nginx应用为例,创建`nginx-deployment.yaml`文件:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.25 # 使用较新版本镜像
ports:
- containerPort: 80
resources:
limits:
memory: "512Mi" # 限制容器内存使用
cpu: "1"
通过`kubectl apply -f nginx-deployment.yaml`完成部署,执行`kubectl get deployments`可查看部署状态。若需暴露服务对外访问,可创建Service资源:
kubectl expose deployment nginx-deployment --type=NodePort --port=80
至此,你已在香港VPS上搭建起可用的K8s单节点集群。实际使用中,可根据业务需求调整集群资源、添加监控组件(如Prometheus)或扩展为多节点集群,进一步提升应用的高可用性。
工信部备案:苏ICP备2025168537号-1