搬瓦工VPS
Bandwagonhost

在Linux VPS上部署Kubernetes (K8s) 与Prometheus监控

本文于 2026-03-03 00:56 更新,内容已保持最新状态,请放心阅读。

在现代IT架构中,Kubernetes (K8s) 与 Prometheus 的组合已成为容器编排与可观测性的“黄金标准”。拥有一个自己的K8s集群,无论对于学习、开发测试,还是部署高可用应用,都很有价值。本篇K8s集群部署教程将摒弃过时的方法,为大家提供一套完整的Linux VPS搭建Kubernetes实战指南。无论您是想在主流服务器上尝试VPS部署K8s,还是寻找从零开始的完整流程,本文都会带您一步步完成核心环境的搭建,并附带详细的VPS安装Prometheus监控套件部署方案。

在Linux VPS上部署Kubernetes (K8s) 与Prometheus监控实战指南

基于 Linux VPS 环境的 K8s 集群部署与 Prometheus 监控一体化架构演示

一、基础概念与准备工作

在正式开始部署之前,让我们先快速了解几个核心概念和需要满足的基本条件,这有助于我们更好地理解后续的每一步操作。

1. Kubernetes & Prometheus 简介

  • Kubernetes (K8s):一个开源的容器编排平台,能自动化管理容器化应用的部署、扩展和运维。
  • Prometheus:一款顶级的开源监控与告警系统,与Grafana结合,能提供极其强大的数据可视化能力。

2. 准备条件

  • VPS服务器:至少一台。最低建议配置:2核CPU / 2GB内存(仅供最小化测试)。推荐使用像搬瓦工CN2 GIA-E或香港套餐这样拥有高性能CPU和NVMe硬盘的机器。对于打算尝试搬瓦工搭建K8s的技术朋友来说,优质的线路和底层硬件能为您带来极其流畅的控制平面体验。
  • 操作系统:Ubuntu 22.04+ 或 Debian 12+。(注:如果您偏爱Debian系,KiwiVM面板现已全面支持最新版,系统安装细节可参考:搬瓦工 KiwiVM 后台上线 Debian 13:一键安装教程与 Trixie 新特性深度解析
  • 权限:拥有sudoroot权限。
  • 网络:确保服务器可以访问外网,并且(如果是多节点集群)节点之间网络互通。

3. 网络连通性自检

在集群搭建开始前,必须保证您的服务器网络畅通。如果遇到节点失联或外网不通的情况,建议先进行基础排查:新买的搬瓦工VPS如果PING不通怎么办?。只有网络健康的服务器,才能保证后续拉取镜像和Linux VPS搭建Kubernetes组件通信的顺利进行。

二、准备节点环境

在安装Kubernetes之前,我们需要对Linux系统进行一些基础配置,确保它满足K8s的运行要求。这个阶段的操作是后续所有步骤的基石,请在所有将要成为K8s节点的VPS上执行。

1. 关闭Swap分区 (K8s要求)

Kubernetes的设计理念要求内存的分配和管理是可预测的,而Swap(虚拟内存)机制会干扰调度器的决策。因此,官方强制要求在所有节点上关闭Swap。

sudo swapoff -a
# 为了永久关闭,需要注释掉/etc/fstab中的swap配置
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

虽然VPS部署K8s严格要求关闭虚拟内存,但如果您在其他非K8s服务器上遇到内存瓶颈,或者需要合理利用交换分区来缓解压力,可以参考这篇系统级管理指南:搬瓦工SWAP空间不足?教你如何安全调整/重建SWAP虚拟内存 (进阶教程)

2. 配置内核参数与加载模块

为了让容器网络(Pod之间的通信)能够正常工作,我们需要调整一些内核参数,启用IP转发和iptables桥接功能。

sudo tee /etc/modules-load.d/k8s.conf <<EOF
overlay
br_netfilter
EOF

sudo modprobe overlay
sudo modprobe br_netfilter

sudo tee /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF

sudo sysctl --system

3. 安装Containerd容器运行时

从K8s 1.24版本开始,Docker不再是内置的容器运行时。我们遵循社区的最佳实践,安装轻量且高效的containerd作为容器的运行环境。

sudo apt-get update
sudo apt-get install -y containerd

# 生成默认配置文件
sudo mkdir -p /etc/containerd
sudo containerd config default | sudo tee /etc/containerd/config.toml

# 【重要】修改配置文件,启用systemd cgroup驱动
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml

# 重启并启用containerd
sudo systemctl restart containerd
sudo systemctl enable containerd

三、安装Kubernetes组件

环境准备就绪后,我们进入VPS部署K8s的核心环节,开始安装Kubernetes的“三剑客”:kubelet, kubeadm, kubectl

1. 添加Kubernetes官方软件源 (2026最新方法)

为了确保能安装到官方维护的、最新版本的Kubernetes,我们需要添加其官方软件源。旧的packages.cloud.google.com源已不推荐,我们采用新的社区源pkgs.k8s.io和更安全的GPG密钥添加方法。

sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gpg

# 添加新的GPG密钥(安全方法)
sudo curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.30/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg

# 添加软件源
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.30/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list

(注意:v1.30是示例版本,您可以根据需要替换为最新的稳定版)

2. 安装kubelet, kubeadm, kubectl

现在,我们从刚刚添加的源中,安装这三个核心组件。

sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl # 防止自动更新造成版本错乱

四、初始化Kubernetes集群

基础组件安装完毕后,这篇K8s集群部署教程迎来了最关键的步骤:初始化集群并让主节点(Master Node)正式上线。此阶段操作仅在主节点上执行。

1. 初始化主节点

我们使用kubeadm init命令来完成集群的初始化工作。

sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --image-repository=registry.k8s.io
  • --pod-network-cidr: 为Pod网络指定地址段,后续的Flannel网络插件默认使用这个段。
  • --image-repository: 指定使用官方社区镜像仓库registry.k8s.io,避免国内访问k8s.gcr.io可能遇到的网络问题。

初始化成功后,屏幕会输出一条kubeadm join ...的命令,请务必复制并保存好,这是将来添加其他工作节点(Worker Node)时要用的“通行证”。

2. 配置kubectl

为了能以普通用户身份管理集群,我们需要配置kubectl命令行工具的访问凭证。

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

3. 部署网络插件 (CNI)

一个空的K8s集群,Pod之间还无法通信,需要安装网络插件(CNI)。我们以简单易用的Flannel为例。

kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml

4. 验证集群状态

最后,我们来检查一下集群的健康状况。

kubectl get nodes

等待几分钟,当您看到节点状态从NotReady变为Ready时,恭喜您,您的K8s集群核心已成功就绪!

(可选) 如果您是单节点集群,需要解除主节点的角色限制,使其也能运行普通应用:

kubectl taint nodes --all node-role.kubernetes.io/master-
kubectl taint nodes --all node-role.kubernetes.io/control-plane-

五、部署Prometheus监控系统

现在,我们为健康的集群装上强大的“眼睛”。在云主机上进行完整的VPS安装Prometheus监控配置,能让集群的各项资源调度一目了然。使用Helm包管理器,可以极大地简化这个过程。

1. 安装Helm

Helm是Kubernetes生态系统中最流行的包管理器,如同K8s世界的aptyum

curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

2. 部署kube-prometheus-stack

我们将安装kube-prometheus-stack,这是一个包含了Prometheus, Grafana, Alertmanager等全套监控告警组件的“全家桶”,可以一站式解决所有监控需求。

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update

helm install my-prometheus prometheus-community/kube-prometheus-stack \
 --namespace monitoring --create-namespace

等待安装完成后,使用 kubectl get pods -n monitoring 查看所有监控组件的Pod是否都处于Running状态。

六、访问与使用

部署成功后,我们便可以访问监控系统的Web界面,查看我们集群的各项指标了。

1. 访问Grafana仪表盘 (可视化)

Grafana是数据可视化的核心,它能将Prometheus采集到的枯燥数据,变成炫酷直观的图表。

为了方便测试,我们先通过端口转发的方式,将服务器上的Grafana端口映射到本地访问。

# 通过端口转发临时访问
kubectl --namespace monitoring port-forward svc/my-prometheus-grafana 3000:80

现在,在您本地电脑的浏览器中访问 http://127.0.0.1:3000

  • 默认用户名: admin
  • 默认密码查询方法:
    kubectl --namespace monitoring get secret my-prometheus-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
    

登录后,您会看到大量预设好的、极其专业的仪表盘,实时展示着您K8s集群的CPU、内存、网络、磁盘等各项性能指标。

2. 公网访问的安全防护

当您成功暴露了Grafana面板或K8s API后,服务器将直接面临公网环境的复杂流量。为了保障节点长治久安,防止因异常扫描导致IP受限,建议您提前了解基础防护策略:如何避免搬瓦工IP地址被封的一些事项。做好基础安全加固,才能让您的监控系统和业务容器稳定运转。

七、总结

恭喜您!通过跟随这篇K8s集群部署教程,您已经成功掌握了Linux VPS搭建Kubernetes的完整流程。无论您是采用其他云主机,还是专门使用搬瓦工搭建K8s,这套最新的VPS部署K8s方案都能为您提供坚实的底层支撑。

同时,配合我们在结尾完成的VPS安装Prometheus监控系统,您现在已经拥有了一个生产级别的现代化容器环境,迈出了走向云原生时代的坚实一步。在挑选承载K8s或常规Web业务的底层资源时,如果您对节点规格的规划还有疑问,推荐阅读:搬瓦工搭建网站选择什么样的 VPS 配置才够使用?

另外,标准版 K8s 对服务器资源占用较大。如果您手里正好有吃灰的低配闲置 VPS,跑不动完整的 Kubernetes,建议大家尝试更轻巧的替代方案。您可以参考这篇实战记录:K3s 安装教程:3分钟让闲置 VPS 变身轻量级 K8s 集群,体验极速部署的乐趣。结合下方我们为您整理的优质方案列表,选出最适合您的生产或测试服务器。

如果您面对众多线路不知道该怎么挑,强烈建议在对照下方表格下单前,先阅读这篇详细的选购指南:搬瓦工哪个方案好?最值得购买的VPS套餐整理与推荐

附:搬瓦工最值得买的方案整理

以下是搬瓦工目前热门且在售的VPS套餐方案,您可以根据自己的需求进行选择。

套餐CPU内存硬盘流量带宽机房价格购买
KVM常规线路2核1GB20GB1TB1GbpsDC2 AO
DC8 ZNET
等9个机房
$49.99/年
最便宜
购买
KVM常规线路3核2GB40GB2TB1Gbps$52.99/半年
$99.99/年
购买
CN2 GIA-E
最推荐
2核1GB20GB1TB2.5GbpsDC6 CN2GIA
DC9 CN2GIA
日本软银
圣何塞CN2GIA
加拿大CN2GIA
等15个机房
$49.99/季度
$169.99/年
购买
CN2 GIA-E3核2GB40GB2TB2.5Gbps$89.99/季度
$299.99/年
购买
香港(HKHK_8)
高端首选
2核2GB40GB0.5TB2.5Gbps中国香港
日本东京
日本大阪
新加坡
等15个机房
$89.99/月
$899.99/年
购买
香港(HKHK_8)4核4GB80GB1TB2.5Gbps$155.99/月
$1559.99/年
购买
东京(JPTYO_8)2核2GB40GB0.5TB1.2Gbps中国香港
日本东京
日本大阪
新加坡
等15个机房
$89.99/月
$899.99/年
购买
东京(JPTYO_8)4核4GB80GB1TB1.2Gbps$155.99/月
$1559.99/年
购买
大阪(JPOS_6)2核2GB40GB0.5TB1.5Gbps大阪[JPOS_6]
DC6 CN2GIA
DC9 CN2GIA
香港[HKHK_3]
荷兰[EUNL_9]
等19个机房
$49.99/月
$499.99/年
购买
大阪(JPOS_6)4核4GB80GB1TB1.5Gbps$86.99/月
$869.99/年
购买
阿联酋迪拜2核1GB20GB0.5TB1GbpsDC6 CN2GIA
DC9 CN2GIA
日本软银
圣何塞CN2GIA
加拿大CN2GIA
等15个机房
$19.99/月
$169.99/年
购买
阿联酋迪拜3核2GB40GB1TB1Gbps$32.99/月
$299.99/年
购买
优惠提示:在结算时不要忘记使用本站提供的最新搬瓦工优惠码 NODESEEK2026,可享受高达6.77%的循环折扣!
【常驻小尾巴】
无论本文聊的是 VPS、脚本还是一杯拿铁,我们都为折腾留了一个出口——
👥 搬瓦工中文网QQ交流群:238290124
一句话简介:技术闲聊、优惠爆料、翻车互助、红包随机掉落。
我们在这里等你一起把不可能变成日常。

关于搬瓦工 (BandwagonHost)

搬瓦工隶属于加拿大 IT7 Networks,是全球知名的 VPS 提供商。提供基于 KVM 架构的高性能主机,拥有包括香港、东京、洛杉矶在内的 20 个顶级机房。其自研的 KiwiVM 面板支持机房一键迁移、快照备份及 API 管理,以稳定性和极速直连线路著称。

搬瓦工购买教程搬瓦工套餐汇总