kubectl是Kubernetes原生命令行工具,无需额外安装,适合快速查看集群状态。常用命令包括:
kubectl get nodes(显示节点名称、状态(Ready/NotReady)、IP等信息);kubectl get pods --all-namespaces(列出所有命名空间的Pod名称、状态、所在节点);kubectl get deployments --all-namespaces(查看Deployment的副本数、更新状态);kubectl get services --all-namespaces(查看Service的类型、集群IP、端口);kubectl get events --all-namespaces(显示集群中发生的事件,如Pod调度失败、节点异常)。Prometheus是开源监控系统,Grafana是可视化工具,二者结合能实现集群指标的实时采集、存储、分析与展示,适合生产环境。
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
kubectl create namespace monitoring
helm install kube-prometheus-stack prometheus-community/kube-prometheus-stack -n monitoring
该命令会自动部署Prometheus、Grafana、Alertmanager等组件,并配置默认监控(节点、Pod、Service等)。http://<NodeIP>:3000(默认用户名/密码:admin/admin),导入Prometheus数据源,选择官方提供的Kubernetes集群监控仪表盘(如ID:19332、1860),即可查看CPU、内存、网络、Pod状态等可视化图表。Kubernetes官方提供的Web界面,适合直观管理集群,无需记忆命令。
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
kubectl proxy # 启动代理
然后在浏览器访问http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/,使用kubectl create serviceaccount dashboard-admin-sa创建的账号登录(需绑定ClusterRole权限)。K9s是基于终端的全屏UI工具,适合喜欢命令行但需要可视化的用户,能实时监控集群状态。
curl -LO "https://github.com/derailed/k9s/releases/latest/download/k9s_linux_amd64.tar.gz"
tar xzvf k9s_linux_amd64.tar.gz
sudo mv k9s /usr/local/bin/
k9s命令,进入主界面,默认显示节点列表;按:键可切换视图(如Pod、Deployment、Service),按Enter键查看详情,按Shift+D查看Pod日志。Metrics Server是Kubernetes官方推荐的轻量级指标聚合器,用于收集节点、Pod的CPU、内存使用数据,为HPA(Horizontal Pod Autoscaler)提供数据支持。
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
kubectl top命令查看资源使用情况:kubectl top nodes # 查看节点CPU、内存使用
kubectl top pods --all-namespaces # 查看所有Pod的CPU、内存使用
以上方法覆盖了从基础到高级的集群监控需求,可根据团队规模、技术栈选择合适的工具组合(如kubectl+Prometheus+Grafana是生产环境的常见选择)。