1. 使用Prometheus+Grafana实现全面监控与可视化
Prometheus是开源的监控/警报系统,专为Kubernetes设计,擅长收集时间序列指标;Grafana则是可视化工具,可将Prometheus中的数据转化为直观的仪表板。在Debian上,可通过Helm简化部署:
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts && helm repo updatemonitoring命名空间并安装Prometheus Operator:kubectl create namespace monitoring && helm install kube-prometheus-stack prometheus-community/kube-prometheus-stack -n monitoringkubectl get pods -n monitoringkubectl 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等资源状态。部署步骤:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yamlapiVersion: 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
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep dashboard-admin | awk '{print $1}')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。验证方法:
kubectl get svc -n kube-system | grep cadvisorhttp://<node-ip>:8080/metricskubernetes_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/bink9s(默认使用~/.kube/config配置)npld5. 使用Metrics Server收集集群指标
Metrics Server是轻量级的集群范围指标聚合器,为Kubernetes提供CPU、内存等资源使用数据(是kubectl top命令的后端)。部署步骤:
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yamlkubectl get pods -n kube-system | grep metrics-serverkubectl 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)。部署步骤:
kubectl apply -f https://github.com/kubernetes-sigs/kube-state-metrics/releases/latest/download/components.yamlkubectl get pods -n kube-system | grep kube-state-metricshttp://<node-ip>:8081/metrics