温馨提示×

怎样监控centos上的k8s安装进度

小樊
43
2025-12-27 13:33:33
栏目: 智能运维

监控 CentOS 上 Kubernetes 安装进度的实用方案

一、命令行快速巡检

  • 节点与控制面就绪
    • 查看节点状态:kubectl get nodes -o wide(关注 STATUS=ReadyVERSION 是否一致)
    • 查看系统组件:kubectl get pods -n kube-system(关注 kube-apiserver、kube-controller-manager、kube-scheduler、etcd、corednsREADYRESTARTS
  • 工作负载与网络
    • 查看核心应用:kubectl get pods -A(确认 coredns 等系统 Pod 已 Running)
    • 查看服务与端点:kubectl get svc -Akubectl get endpoints -A
  • 实时观察与定位
    • 实时查看:watch -n 2 ‘kubectl get pods -A -o wide’
    • 事件与原因:kubectl get events -A --sort-by=.metadata.creationTimestamp
    • 详细诊断:kubectl describe pod -n (查看 Events、镜像拉取、挂载、就绪探针等)
    • 日志跟踪:kubectl logs -f -n [-c ];多容器用 -c 指定容器名

二、系统层面日志与关键目录

  • systemd 服务日志(kubelet、容器运行时)
    • 查看 kubelet:journalctl -u kubelet -f
    • 查看容器运行时(如 containerd):journalctl -u containerd -f
    • 过滤安装关键词:journalctl -b | grep -i ‘kube|containerd|install’
  • 组件与 kubelet 数据目录
    • 配置:/etc/kubernetes(如 admin.conf、kubelet.conf、manifests 等)
    • 日志:/var/log/kubernetes(若组件以 Pod 运行,优先用 kubectl logs)
    • 数据:/var/lib/kubelet(运行时状态、卷挂载等)
  • 节点就绪探针失败排查
    • 检查 kubelet 健康端口:curl -k https://127.0.0.1:10250/healthz;若不通,多为 kubelet 未就绪或证书/端口问题

三、可视化与长期监控

  • Kubernetes Dashboard
    • 部署:kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml
    • 本地访问:kubectl proxy,打开 http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
    • 获取登录 Token(示例):kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep dashboard-admin | awk ‘{print $1}’)
  • Prometheus + Grafana
    • 快速安装(Helm):helm repo add prometheus-community https://prometheus-community.github.io/helm-charts && helm install prometheus prometheus-community/kube-prometheus-stack
    • 访问 Grafana(NodePort 或 Ingress 取决于你的 Service 配置),以 Prometheus 为数据源,导入 Kubernetes 常用面板,观察 节点资源、Pod 状态、控制面组件健康
  • 日志聚合(可选)
    • 使用 ELK/EFKLoki 收集容器与系统日志,便于在安装阶段与运行阶段做统一检索与告警

四、常见卡点与快速判断

  • 镜像拉取失败
    • 现象:Pod 状态 ImagePullBackOff/ErrImagePull
    • 处理:kubectl describe pod -n 查看镜像名与仓库;配置国内镜像源或使用企业私有仓库
  • 控制面 Pod CrashLoopBackOff
    • 现象:kube-apiserver/etcd 反复重启
    • 处理:查看日志与事件定位证书、etcd 数据目录权限、端口占用等
  • 节点 NotReady
    • 现象:kubectl get nodes 显示 NotReady
    • 处理:检查 kubelet容器运行时 服务是否运行、网络与防火墙、以及 /var/lib/kubeletcgroups 配置
  • DNS 未就绪
    • 现象:应用 Pod 启动但服务发现失败
    • 处理:确认 coredns Pod Running 且无 CrashLoop;检查 kube-dns ServiceClusterIPEndpoints 是否就绪

0