溫馨提示×

centos上k8s部署的日志如何查看

小樊
46
2025-10-15 13:46:11
欄目: 智能運維

在CentOS上查看K8s部署日志的常用方法

1. 使用kubectl logs命令查看Pod容器日志

kubectl logs是Kubernetes官方提供的核心日志查看工具,適用于大多數場景。

  • 基礎用法:查看指定Pod的日志(Pod需處于Running狀態)。
    kubectl logs <pod-name>
    
  • 指定容器:若Pod包含多個容器(如Sidecar、Init容器),需通過-c參數指定容器名稱。
    kubectl logs <pod-name> -c <container-name>
    
  • 實時跟蹤:使用-f參數實時查看日志輸出(類似tail -f),適合監控正在運行的服務。
    kubectl logs -f <pod-name>
    
  • 查看歷史日志:若Pod因重啟或更新導致容器重建,可通過--previous參數查看前一個實例的日志。
    kubectl logs --previous <pod-name>
    
  • 限制日志行數:使用--tail參數指定顯示最后N行日志(如--tail=100顯示最后100行),避免輸出過多。
    kubectl logs --tail=100 <pod-name>
    
  • 時間范圍過濾:通過--since參數查看指定時間后的日志(支持5m、1h、2d等單位),或通過--since-time指定具體時間點(如2025-10-10T10:00:00Z)。
    kubectl logs --since=1h <pod-name>
    kubectl logs --since-time="2025-10-10T10:00:00Z" <pod-name>
    
  • 命名空間指定:若Pod不在默認命名空間(default),需通過-n參數指定命名空間。
    kubectl logs <pod-name> -n <namespace>
    

2. 使用journalctl查看K8s組件系統日志

K8s集群的核心組件(如kubelet、kube-apiserver、kube-controller-manager、kube-scheduler)的日志由系統日志服務journald管理,可通過journalctl命令查看。

  • 查看kubelet日志(負責節點上的Pod生命周期管理):
    journalctl -u kubelet -f  # 實時跟蹤
    journalctl -u kubelet --since="2025-10-10"  # 指定時間范圍
    
  • 查看kube-apiserver日志(K8s API服務):
    journalctl -u kube-apiserver -f
    
  • 查看kube-controller-manager日志(控制器管理器):
    journalctl -u kube-controller-manager -f
    
  • 查看kube-scheduler日志(調度器):
    journalctl -u kube-scheduler -f
    

3. 使用第三方日志聚合工具(大規模集群推薦)

對于生產環境中的大規模K8s集群,手動使用kubectl查看日志效率低下,建議使用日志聚合工具集中收集、存儲和分析日志。常見工具包括:

  • ELK Stack(Elasticsearch + Logstash + Kibana)
    • 部署方式:通過DaemonSet在每個節點上部署Filebeat(輕量級日志收集器),收集容器日志并發送至Elasticsearch存儲;使用Kibana(可視化工具)進行日志查詢、分析和可視化。
    • 查看日志:通過Kibana的Web界面,選擇索引(如filebeat-*),輸入關鍵詞(如error、pod-name)即可快速檢索日志。
  • Stern
    • 功能:類似kubectl logs,但支持多容器、多Pod的日志聚合,支持彩色輸出、正則表達式過濾和實時跟蹤。
    • 安裝與使用
      brew install stern  # macOS(需安裝Homebrew)
      # 或通過Linux包管理器安裝
      stern <pod-name> -n <namespace>  # 查看指定Pod的日志
      stern "app=myapp" -c web -n <namespace>  # 通過標簽選擇器查看多個Pod的日志
      
  • Kubetail
    • 功能:將多個Pod的日志聚合到一個終端,支持彩色輸出和條件過濾。
    • 安裝與使用
      brew install kubetail  # macOS
      kubetail <pod-prefix> -n <namespace>  # 聚合前綴匹配的Pod日志
      

4. 查看節點系統日志(輔助排查底層問題)

若K8s組件或Pod日志無法定位問題,可查看CentOS節點的系統日志,排查底層系統故障(如網絡、磁盤、內存問題)。

  • 查看系統日志
    tail -f /var/log/messages  # CentOS 7及以下
    journalctl -xe  # CentOS 8及以上(實時查看系統日志)
    
  • 查看內核日志
    dmesg -T  # 查看內核環緩沖區日志(包含硬件、驅動相關信息)
    

注意事項

  • 權限控制:確保當前用戶具有查看Pod日志的權限(如cluster-admin角色或自定義角色的get、list、read權限)。
  • 日志輪轉:Pod日志默認會輪轉(由kubelet配置的containerLogMaxSizecontainerLogMaxFiles參數控制),長期運行的Pod可能只保留最近幾天的日志。若需保留更久日志,建議配置日志聚合工具。
  • 敏感信息:日志中可能包含密碼、密鑰等敏感信息,查看時需注意保密,避免泄露。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女