在 Linux VPS 服务器上部署 Kubernetes 并安装 Prometheus 监控,需要依次完成 Kubernetes 环境搭建、Prometheus 部署等多个步骤。以下为你详细介绍概念简介、安装流程及配置示例,让你对 Kubernetes + Prometheus 有一个快速上手的体验。
Kubernetes 简介
Kubernetes 是一款容器编排平台,可自动管理容器应用的部署、伸缩与运维。它抽象了底层硬件与网络资源,使分布式应用的管理更加高效与可扩展。
Prometheus 简介
Prometheus 是一款开源的监控与告警系统,遵循 “拉取” 模式(pull-based),定期从目标端点采集指标数据,并通过可视化与告警实现及时监控。
准备条件
- VPS 服务器 一台或多台,建议配置至少 2 vCPU / 4GB RAM(更大规模集群同理,可多台 VPS)。
- 操作系统 建议使用主流发行版,如 Ubuntu 20.04+、Debian 10+、CentOS 7/8 或其他兼容 Linux。
- 网络连通 如果需要多节点,确保节点间互通。
- sudo/root 权限 以便安装所需组件与配置。
安装 Kubernetes
以下以 kubeadm 方式在 Ubuntu 系统上部署单主节点集群为例,其他系统或多节点场景类似。
安装依赖
sudo apt update && sudo apt upgrade -y sudo apt install -y apt-transport-https ca-certificates curl
添加 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
初始化 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
部署网络插件
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-
即移除对调度的限制。
安装 Prometheus 监控
准备 Helm
Helm 是 Kubernetes 包管理工具,用来简化应用安装与升级。
curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
或使用软件包管理器安装。
添加并更新仓库
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo update
部署 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,说明部署成功。
访问 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 方式让外部可访问,结合防火墙或负载均衡器。
简单使用教程
- 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 使用率、响应延迟等进行邮件或其他形式通知,确保出现异常时能及时获知。
维护与扩展
- 更新 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 ... 命令,将节点加入同一集群,提升容器应用的可用性。
总结
通过以上步骤,你已经在 VPS 服务器上使用 kubeadm 完整部署了单节点或多节点的 Kubernetes 集群,并借助 Prometheus(可搭配 Grafana)实时监控集群及各容器应用的运行状况。Kubernetes + Prometheus 的组合为应用提供了自动化容器编排与高可用监控,让开发与运维在可观测性方面更具主动性。
如需更进一步,请参考:
- Kubernetes 官方文档
- Prometheus 官方文档
- kube-prometheus-stack Helm Chart
上述步骤已经覆盖了从基础环境搭建到最终部署监控工具的全过程。如果你在操作过程中遇到任何问题,比如特定命令报错、配置文件格式不正确等,欢迎随时告诉我,我会进一步为你排查并提供解决方案 。
方案 | 内存 | CPU | 硬盘 | 流量/月 | 带宽 | 机房 | 价格 | 购买 |
---|---|---|---|---|---|---|---|---|
CN2 (最便宜) |
1GB | 1核 | 20GB | 1TB | 1Gbps | DC3 CN2 DC8 ZNET |
$49.99/年 | 直达 |
CN2 | 2GB | 1核 | 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 |
$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 | $89.99/月 $899.99/年 |
直达 |
HK | 4GB | 4核 | 80GB | 1TB | 1Gbps | $155.99/月 $1559.99/年 |
直达 | |
TOKYO | 2GB | 2核 | 40GB | 0.5TB | 1.2Gbps | 日本东京 CN2 GIA | $89.99/月 $899.99/年 |
直达 |
TOKYO | 4GB | 4核 | 80GB | 1TB | 1.2Gbps | $155.99/月 $1559.99/年 |
直达 | |
搬瓦工优惠码:BWHCGLUKKB | 2024年最新搬瓦工VPS购买图文教程 |