本文介绍如何在一台(或多台)VPS 服务器上部署 Kubernetes 集群,并使用 Prometheus 对集群进行监控。教程含概念简介、安装流程及配置示例,让你对 Kubernetes + Prometheus 有一个快速上手的体验。
1. 背景与准备
1.1 Kubernetes 简介
Kubernetes 是一款容器编排平台,可自动管理容器应用的部署、伸缩与运维。它抽象了底层硬件与网络资源,使分布式应用的管理更加高效与可扩展。
1.2 Prometheus 简介
Prometheus 是一款开源的监控与告警系统,遵循 “拉取” 模式(pull-based),定期从目标端点采集指标数据,并通过可视化与告警实现及时监控。
1.3 准备条件
- VPS 服务器 一台或多台,建议配置至少 2 vCPU / 4GB RAM(更大规模集群同理,可多台 VPS)。
- 操作系统 建议使用主流发行版,如 Ubuntu 20.04+、Debian 10+、CentOS 7/8 或其他兼容 Linux。
- 网络连通 如果需要多节点,确保节点间互通。
- sudo/root 权限 以便安装所需组件与配置。
2. 安装 Kubernetes
以下以 kubeadm 方式在 Ubuntu 系统上部署单主节点集群为例,其他系统或多节点场景类似。
亦可参考《搬瓦工 VPS 上安装部署 Docker 集群管理工具 Kubernetes (K8S) 教程》
2.1 安装依赖
sudo apt update && sudo apt upgrade -y
sudo apt install -y apt-transport-https ca-certificates curl
2.2 添加 Kubernetes 软件源并安装
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
sudo bash -c 'cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF'
sudo apt update
sudo apt install -y docker.io kubelet kubeadm kubectl
sudo systemctl enable docker
sudo systemctl start docker
2.3 初始化 Master 节点
- 关闭 swap(Kubernetes 要求):
sudo swapoff -a sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
- 使用 kubeadm 初始化集群:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
等待执行完成后,会输出类似
kubeadm join ...
命令,用于添加工作节点(多节点时使用)。 - 配置 kubectl:
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
2.4 部署网络插件
Kubernetes 需要网络插件(CNI)让 Pod 能够正常通信。以 Flannel 为例:
kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml
检查集群状态:
kubectl get nodes
出现 Ready
状态,说明主节点已就绪。此时若只是练习,可以把主节点同时当作工作节点使用(生产不推荐):
kubectl taint nodes --all node-role.kubernetes.io/control-plane-
即移除对调度的限制。
3. 安装 Prometheus 监控
3.1 准备 Helm
Helm 是 Kubernetes 包管理工具,用来简化应用安装与升级。
curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
或使用软件包管理器安装。
3.2 添加并更新仓库
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
3.3 部署 Prometheus
Prometheus 官方推荐的安装方式是通过 kube-prometheus-stack
(打包了 Prometheus、Alertmanager、Grafana 等组件),可以一站式获得监控、告警、可视化能力:
helm install my-prometheus prometheus-community/kube-prometheus-stack \
--namespace monitoring --create-namespace
my-prometheus
:Release 名称,可自由修改。monitoring
:创建并使用monitoring
命名空间。
等待安装完成后,可用以下命令查看状态:
kubectl get pods -n monitoring
若全部处于 Running
或 Completed
,说明部署成功。
3.4 访问 Prometheus 界面
- 使用端口转发 (临时方式):
kubectl port-forward -n monitoring svc/my-prometheus-kube-prometheus-stack-prometheus 9090:9090
在本地浏览器访问 http://127.0.0.1:9090/ 查看 Prometheus UI。
- 使用 Ingress 或 NodePort (生产方式):
- 若你有域名和 Ingress 控制器,可给 Prometheus、Grafana 等服务配置外部路由。
- 或者修改
values.yaml
启用service.type=NodePort
方式让外部可访问,结合防火墙或负载均衡器。
4. 简单使用教程
- Prometheus 监控原理:定期从各个暴露监控指标的端点(如 节点、Kubernetes 控制平面、Pod 等)抓取数据,然后存储、分析,并可与 Grafana 搭配展示图表。
- 通过内置 ServiceMonitor / PodMonitor:kube-prometheus-stack 会自动发现 Kubernetes 组件和 Node 节点。要监控自己部署的应用,需在 Pod 或服务里暴露
/metrics
端点,并创建对应的 ServiceMonitor 或 PodMonitor 资源。 - 查看 Grafana 仪表盘:
kubectl port-forward -n monitoring svc/my-prometheus-kube-prometheus-stack-grafana 3000:80
浏览器访问 http://127.0.0.1:3000 登录,默认用户名
admin
,密码可在 helm install 时通过--set grafana.adminPassword=xxx
自定义,或在安装后查询:kubectl get secret \my-prometheus-kube-prometheus-stack-grafana -n monitoring -o jsonpath="{.data.admin-password}" \| base64 --decode
- 设置告警:kube-prometheus-stack 也包含 Alertmanager,可设置基于 CPU 使用率、响应延迟等进行邮件或其他形式通知,确保出现异常时能及时获知。
5. 维护与扩展
- 更新 Kubernetes:定期
sudo apt update && sudo apt upgrade
并查看 kubeadm/kubectl 更新,遵循官方升级指引。 - 更新 Helm Charts:
helm repo updatehelm upgrade my-prometheus prometheus-community/kube-prometheus-stack -n monitoring
获取最新特性及安全修复。
- 分布式集群扩容:在多台 VPS 里安装 kubeadm 并执行
kubeadm join ...
命令,将节点加入同一集群,提升容器应用的可用性。
6. 总结
通过以上步骤,你已经在 VPS 服务器上使用 kubeadm 完整部署了单节点或多节点的 Kubernetes 集群,并借助 Prometheus(可搭配 Grafana)实时监控集群及各容器应用的运行状况。Kubernetes + Prometheus 的组合为应用提供了自动化容器编排与高可用监控,让开发与运维在可观测性方面更具主动性。
如需更进一步,请参考:
祝你在 VPS 上部署 Kubernetes 的学习和实践顺利!
搬瓦工新手教程和优惠套餐
搬瓦工推荐方案
搬瓦工实时库存:https://stock.bwg.net
方案 | 内存 | CPU | 硬盘 | 流量/月 | 带宽 | 推荐机房 | 价格 | 购买 |
---|---|---|---|---|---|---|---|---|
KVM (最便宜) | 1GB | 2核 | 20GB | 1TB | 1Gbps | DC2 AO DC8 ZNET | $49.99/年 | 购买 |
KVM | 2GB | 3核 | 40GB | 2TB | 1Gbps | $52.99/半年 $99.99/年 | 购买 | |
CN2 GIA-E (最推荐) | 1GB | 2核 | 20GB | 1TB | 2.5Gbps | 美国 DC6 CN2 GIA-E 美国 DC9 CN2 GIA 日本软银 JPOS_1 荷兰 EUNL_9 美国圣何塞 CN2 GIA 加拿大 CN2 GIA | $49.99/季度 $169.99/年 | 购买 |
CN2 GIA-E | 2GB | 3核 | 40GB | 2TB | 2.5Gbps | $89.99/季度 $299.99/年 | 购买 | |
HK (高端首选) | 2GB | 2核 | 40GB | 0.5TB | 1Gbps | 中国香港 CN2 GIA 日本东京 CN2 GIA 日本大阪 CN2 GIA 新加坡 CN2 GIA | $89.99/月 $899.99/年 | 购买 |
HK | 4GB | 4核 | 80GB | 1TB | 1Gbps | $155.99/月 $1559.99/年 | 购买 | |
OSAKA | 2GB | 2核 | 40GB | 0.5TB | 1.5Gbps | 日本大阪 CN2 GIA | $49.99/月 $499.99/年 | 购买 |
OSAKA | 4GB | 4核 | 80GB | 1TB | 1.5Gbps | $86.99/月 $869.99/年 | 购买 | |
搬瓦工优惠码:BWHCGLUKKB | 搬瓦工购买教程:《2025 年最新搬瓦工购买教程和支付宝支付教程》 |
选择建议:
- 入门:常规 KVM 套餐,目前最便宜,入门之选。
- 推荐:洛杉矶 CN2 GIA-E 套餐,速度超快,可选机房多(DC6、DC9、日本软银、荷兰联通等),性价比最高。
- 高端:香港 CN2 GIA 套餐,价格较高,但是无可挑剔。大阪 CN2 GIA 套餐也是非常不错的高端选择。
搬瓦工新手教程
- 搬瓦工新手入门:《搬瓦工新手入门完全指南:方案推荐、机房选择、优惠码和购买教程》(推荐阅读)
- 搬瓦工购买教程:《2025 年最新搬瓦工购买教程和支付宝支付教程》
- 搬瓦工优惠码:BWHCGLUKKB
- 搬瓦工补货通知:《欢迎订阅搬瓦工补货通知(补货提醒)/ 加入搬瓦工交流群》
- 搬瓦工方案推荐:《搬瓦工高性价比 VPS 推荐:目前哪款方案最值得买?》
未经允许不得转载:Bandwagonhost中文网 » 在 Linux VPS 服务器上部署 Kubernetes 并安装 Prometheus 监控