温馨提示×

Debian上Kubernetes如何监控

小樊
37
2025-10-19 06:56:59
栏目: 智能运维

1. 使用Prometheus+Grafana实现全面监控与可视化
Prometheus是开源的监控/警报系统,专为Kubernetes设计,擅长收集时间序列指标;Grafana则是可视化工具,可将Prometheus中的数据转化为直观的仪表板。在Debian上,可通过Helm简化部署:

  • 添加Prometheus Helm仓库并更新:helm repo add prometheus-community https://prometheus-community.github.io/helm-charts && helm repo update
  • 创建monitoring命名空间并安装Prometheus Operator:kubectl create namespace monitoring && helm install kube-prometheus-stack prometheus-community/kube-prometheus-stack -n monitoring
  • 验证Prometheus Pod状态:kubectl get pods -n monitoring
  • 访问Grafana(通过kubectl port-forward -n monitoring prometheus-grafana 8000:80转发端口),使用默认账号admin/prom-operator登录,导入Kubernetes内置仪表板(如“Nodes”“Pods”)或自定义应用仪表板(从Grafana.com搜索ID导入)。

2. 借助Kubernetes Dashboard实现Web可视化
Kubernetes Dashboard是官方提供的Web UI,可直观查看集群节点、Pod、Deployment等资源状态。部署步骤:

  • 应用Dashboard配置:kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
  • 创建ServiceAccount及角色绑定(简化访问):
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: dashboard-admin
      namespace: kubernetes-dashboard
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: dashboard-admin-binding
    subjects:
    - kind: ServiceAccount
      name: dashboard-admin
      namespace: kubernetes-dashboard
    roleRef:
      kind: ClusterRole
      name: cluster-admin
      apiGroup: rbac.authorization.k8s.io
    
  • 获取访问Token:kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep dashboard-admin | awk '{print $1}')
  • 访问Dashboard:通过kubectl proxy启动代理,在浏览器输入http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/,使用Token登录。

3. 利用cAdvisor监控容器资源
cAdvisor(Container Advisor)是Kubernetes内置的轻量级工具,用于收集容器级别的CPU、内存、网络等指标。无需额外安装,每个节点会自动运行cAdvisor Pod。验证方法:

  • 查看cAdvisor服务:kubectl get svc -n kube-system | grep cadvisor
  • 访问cAdvisor指标页面(替换节点IP):http://<node-ip>:8080/metrics
  • 结合Prometheus,通过kubernetes_sd_configs自动发现并抓取cAdvisor指标(无需手动配置)。。

4. 通过K9s实现终端交互式监控
K9s是基于终端的全屏Kubernetes管理工具,适合习惯命令行的用户。安装步骤:

  • 下载并安装:curl -LO "https://github.com/derailed/k9s/releases/latest/download/k9s_$(uname -s)_$(uname -m).tar.gz" && tar xzvf k9s_*.tar.gz && sudo mv k9s /usr/local/bin
  • 登录集群:k9s(默认使用~/.kube/config配置)
  • 常用操作:
    • 查看节点:输入n
    • 查看Pod:输入p
    • 查看Pod日志:选中Pod后按l
    • 删除资源:选中资源后按d
      K9s支持自定义视图、快捷键及主题,提升监控效率。。

5. 使用Metrics Server收集集群指标
Metrics Server是轻量级的集群范围指标聚合器,为Kubernetes提供CPU、内存等资源使用数据(是kubectl top命令的后端)。部署步骤:

  • 应用Metrics Server配置:kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
  • 验证部署:kubectl get pods -n kube-system | grep metrics-server
  • 使用kubectl top命令查看指标:kubectl top nodes(节点资源使用)、kubectl top pods -A(所有命名空间的Pod资源使用)。。

6. 结合kube-state-metrics监控集群状态
kube-state-metrics监听Kubernetes API Server,生成Deployment、Pod、Node等资源的状态指标(如Replicas、Available Replicas、Pod Phase)。部署步骤:

  • 应用kube-state-metrics配置:kubectl apply -f https://github.com/kubernetes-sigs/kube-state-metrics/releases/latest/download/components.yaml
  • 验证部署:kubectl get pods -n kube-system | grep kube-state-metrics
  • 访问指标页面(替换节点IP):http://<node-ip>:8081/metrics
  • 结合Prometheus抓取这些指标,用于监控集群状态变化(如Deployment扩缩容、Pod重启次数)。。

0