在CentOS上部署Kubernetes(K8s)后,查看日志是监控和故障排除的重要步骤。以下是几种常用的方法来查看K8s集群中的日志:
使用 kubectl
命令查看日志
kubectl
是Kubernetes的官方命令行工具,可以用来查看Pod的日志。以下是基本步骤:
-
登录到K8S集群:
kubectl config use-context my-k8s-cluster
-
获取Pod名称:
kubectl get pods
-
查看特定Pod的日志:
kubectl logs
如果你的服务有多个容器,可以通过
-c
参数指定容器名称:kubectl logs -c
实时查看服务日志信息,可以使用
-f
参数:kubectl logs -f
查看最新日志行,可以使用
--tail
参数:kubectl logs --tail 100
使用 journalctl
命令查看系统日志
journalctl
是Linux系统日志的工具,可以用来查看K8s组件的日志:
journalctl -u kube-scheduler journalctl -u kubelet
使用第三方工具查看日志
Kubetail
Kubetail 是一个简单的Shell脚本,可以将多个Pod中的日志信息聚合到一起进行展示,并支持彩色输出和条件过滤。
-
安装Kubetail:
brew tap johanhaleby/kubetail && brew install kubetail
或者从源码安装:
wget https://raw.githubusercontent.com/johanhaleby/kubetail/master/kubetail chmod +x kubetail cp kubetail /usr/local/bin
-
使用Kubetail查看日志:
kubetail
可以指定命名空间、容器名称、使用正则表达式等。
Stern
Stern 是用Go语言开发的一款开箱即用的工具,功能类似Kubetail,但更加强大。
-
安装Stern:
brew install stern
或者使用asdf安装:
asdf plugin add stern
-
使用Stern查看日志:
stern
可以指定命名空间、容器名称、使用正则表达式等。
使用ELK(Elasticsearch, Fluentd, Kibana)系统
ELK系统是一个流行的日志收集和分析解决方案。
-
部署ELK:
- Filebeat:部署在每个节点上,收集日志并发送到Elasticsearch。
- Fluentd:作为DaemonSet部署,收集日志并发送到Elasticsearch。
- Kibana:用于日志的可视化。
-
查看日志: 通过Kibana界面可以查看和分析存储在Elasticsearch中的日志。
通过以上方法,你可以有效地查看和管理CentOS上K8s集群的日志,帮助你快速定位和解决问题。