温馨提示×

Debian K8s安装后如何监控集群状态

小樊
32
2025-12-26 20:55:18
栏目: 智能运维

Debian上Kubernetes集群状态监控实操指南

一 基础命令行巡检

  • 节点与组件健康
    • 查看节点状态:kubectl get nodes(关注 STATUS=Ready
    • 查看系统组件:kubectl get componentstatuses(或 kubectl get cs
    • 查看所有命名空间资源概况:kubectl get pods,svc,deployments,daemonsets,statefulsets,events --all-namespaces
    • 查看事件(定位调度失败、镜像拉取失败等):kubectl get events --all-namespaces --sort-by=.metadata.creationTimestamp
  • 资源与事件详情
    • 查看对象详情:kubectl describe pod -n kubectl describe node
    • 实时查看日志:kubectl logs -f -n [-c ]
  • 资源用量(需集群已部署 Metrics Server
    • 节点与Pod资源:kubectl top nodeskubectl top pods --all-namespaces
  • 终端可视化工具
    • K9s:快速查看资源、日志、进入容器,适合日常值守与排障

二 指标监控与可视化

  • 前置条件
    • 部署 Metrics Server(为 kubectl top 与 HPA 提供数据)
      • 安装:kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
      • 验证:kubectl get pods -n kube-system | grep metrics-serverkubectl top nodes
  • Prometheus + Grafana(生产推荐)
    • 部署 kube-prometheus-stack
      • Helm 安装:
        • helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
        • helm repo update
        • kubectl create ns monitoring
        • helm install kube-prometheus-stack prometheus-community/kube-prometheus-stack -n monitoring
    • 访问验证
      • Prometheus:kubectl port-forward svc/prometheus-kube-prometheus-stack-prometheus -n monitoring 9090:9090,浏览器访问 http://:9090,查询 up(值为 1 表示目标可达)
      • Grafana:kubectl port-forward svc/prometheus-kube-prometheus-stack-grafana -n monitoring 3000:3000,默认账号 admin/admin;添加数据源 Prometheus(地址 http://prometheus-kube-prometheus-stack-prometheus.monitoring.svc.cluster.local:9090),导入仪表盘(如 Kubernetes Cluster Monitoring 等官方/社区仪表盘)
  • 组件说明
    • cAdvisor:内置于 kubelet,采集容器 CPU/内存/网络/磁盘;默认指标路径 /metrics
    • node-exporter:节点级指标(CPU、内存、磁盘、文件系统、网络等)
    • kube-state-metrics:监听 API Server,生成 Deployment/Pod/Node 等对象状态指标(如 kube_pod_status_phase

三 可视化与日志补充

  • Kubernetes Dashboard(Web 管理/查看)
    • 安装:kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
    • 访问:启动代理 kubectl proxy --port=8080,浏览器访问 http://localhost:8080/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
    • 认证:创建 ServiceAccount 并绑定 cluster-admin,获取 Token 登录(最小权限原则)
  • 日志方案(与指标互补)
    • EFK(Elasticsearch + Fluentd + Kibana):集中存储与检索容器/节点日志
    • Loki + Promtail + Grafana:轻量日志聚合,与 Grafana 统一查询体验

四 快速排障与日常巡检清单

  • 快速定位路径
    • 节点异常:先看 kubectl get nodeskubectl describe node → 检查 kubelet容器运行时 状态/日志
    • Pod 异常:先看 kubectl get pods -n -o widekubectl describe pod -n kubectl logs -f -n
    • 资源瓶颈:用 kubectl top nodes/pods 与 Grafana 面板确认 CPU/内存/磁盘压力
    • 控制面异常:查看 kubectl get cs、组件 Pod 日志(如 kube-apiserver、kube-controller-manager、kube-scheduler、etcd
  • 日常巡检命令清单
    • 集群概况:kubectl get nodes,ns
    • 工作负载:kubectl get pods,svc,deploy,ds,sts --all-namespaces
    • 事件与告警:kubectl get events --all-namespaces --sort-by=.metadata.creationTimestamp
    • 资源用量:kubectl top nodeskubectl top pods --all-namespaces
    • 控制面健康:kubectl get cs 与关键组件 Pod 状态/日志

五 安全与维护要点

  • 访问控制
    • Prometheus/Grafana/Dashboard 建议通过 kubectl port-forwardIngress 限制访问;Dashboard 使用 Token/OAuth,遵循最小权限(RBAC)
  • 组件版本与兼容
    • Helm Chart/YAMLKubernetes 版本保持兼容;升级前备份与灰度验证
  • 系统与安全
    • 保持 Debian 与基础组件安全更新;Kubernetes 组件按官方渠道升级;证书与密钥定期轮换
  • 备份与恢复
    • 定期备份 etcd(如 etcdctl snapshot save),并验证可恢复性;关键 ConfigMap/Secret/Deployment 纳入版本化管理

0