如何在 Linux VPS服务器上部署 Kubernetes 并安装 Prometheus 监控教程

在 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 节点
  1. 关闭 swap(Kubernetes 要求):
    sudo swapoff -a
    sed -i '/ swap / s/^/(.*/)$/#/1/g' /etc/fstab
    
  2. 使用 kubeadm 初始化集群
    sudo kubeadm init --pod-network-cidr=10.244.0.0/16
    

    等待执行完成后,会输出类似 kubeadm join ... 命令,用于添加工作节点(多节点时使用)。

  3. 配置 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 界面

  1. 使用端口转发 (临时方式)
    kubectl port-forward -n monitoring svc/my-prometheus-kube-prometheus-stack-prometheus 9090:9090
    

    在本地浏览器访问 http://127.0.0.1:9090/ 查看 Prometheus UI。

  2. 使用 Ingress 或 NodePort (生产方式)
    • 若你有域名和 Ingress 控制器,可给 Prometheus、Grafana 等服务配置外部路由。
    • 或者修改 values.yaml 启用 service.type=NodePort 方式让外部可访问,结合防火墙或负载均衡器。

简单使用教程

  1. Prometheus 监控原理:定期从各个暴露监控指标的端点(如 节点、Kubernetes 控制平面、Pod 等)抓取数据,然后存储、分析,并可与 Grafana 搭配展示图表。
  2. 通过内置 ServiceMonitor / PodMonitor:kube-prometheus-stack 会自动发现 Kubernetes 组件和 Node 节点。要监控自己部署的应用,需在 Pod 或服务里暴露 /metrics 端点,并创建对应的 ServiceMonitor 或 PodMonitor 资源。
  3. 查看 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
    
  4. 设置告警:kube-prometheus-stack 也包含 Alertmanager,可设置基于 CPU 使用率、响应延迟等进行邮件或其他形式通知,确保出现异常时能及时获知。

维护与扩展

  1. 更新 Kubernetes:定期 sudo apt update && sudo apt upgrade 并查看 kubeadm/kubectl 更新,遵循官方升级指引。
  2. 更新 Helm Charts
    helm repo updatehelm upgrade my-prometheus prometheus-community/kube-prometheus-stack -n monitoring
    

    获取最新特性及安全修复。

  3. 分布式集群扩容:在多台 VPS 里安装 kubeadm 并执行 kubeadm join ... 命令,将节点加入同一集群,提升容器应用的可用性。

总结

通过以上步骤,你已经在 VPS 服务器上使用 kubeadm 完整部署了单节点或多节点的 Kubernetes 集群,并借助 Prometheus(可搭配 Grafana)实时监控集群及各容器应用的运行状况。Kubernetes + Prometheus 的组合为应用提供了自动化容器编排与高可用监控,让开发与运维在可观测性方面更具主动性。

如需更进一步,请参考:

上述步骤已经覆盖了从基础环境搭建到最终部署监控工具的全过程。如果你在操作过程中遇到任何问题,比如特定命令报错、配置文件格式不正确等,欢迎随时告诉我,我会进一步为你排查并提供解决方案 。

搬瓦工推荐方案
温馨提醒 如果您有选择困难症,直接选中间的 CN2 GIA-E方案,季付 $49.99,多达 12 个机房任意切换
方案 内存 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购买图文教程

【AD】美国洛杉矶CN2 VPS/香港CN2 VPS/日本CN2 VPS推荐,延迟低、稳定性高、免费备份_搬瓦工vps

【AD】DMIT:圣诞新年促销,美国CN2 GIA/CMIN2线路,2-4Gbps大带宽,年付100美元起,香港/日本CMI年付155美元起