k8s、rancher通过kubectl logs获取容器pod内的日志

/ 2021-05-27 / 2748人浏览 / 2人评论

k8s

使用rancher的同学都知道,rancher管理系统中能看到的日志真的是寥寥无几啊。所以这个肯定是不符合我们的迫切想去分析查看日志的欲望,下面直接说下怎么去获取容器内的日志。

查询namespace下的所有pod

先获取指定namespace下的pod,执行命令如下:

kubectl get pod -n <namespace>

输入结果大致如下:

NAME                                                  READY   STATUS    RESTARTS   AGE
xxxxxxx-proxy-564d7849cb-4brcp                        1/1     Running   0          5d21h
xxxxxxx-xxx-xxxx-55694cfbf8-h5d79               1/1     Running   0          2d2h
xxxxxxx-xxx-xxxx-55694cfbf8-mvsnx               1/1     Running   0          5d18h
xxxxxxx-xxxx-cp-kafka-0                            2/2     Running   0          78d
xxxxxxx-xxxx-cp-kafka-1                            2/2     Running   0          78d
xxxxxxx-xxxx-cp-kafka-2                            2/2     Running   0          78d
xxxxxxx-xxxx-cp-kafka-connect-55bd77bcd7-6l6nv     2/2     Running   3          78d
xxxxxxx-xxxx-cp-kafka-rest-56488d469c-nnn8b        2/2     Running   0          78d
xxxxxxx-xxxx-cp-ksql-server-6dc99b7ccb-444cs       2/2     Running   3          78d
xxxxxxx-xxxx-cp-schema-registry-869d4ffcf5-shfj8   2/2     Running   3          78d
xxxxxxx-xxxx-cp-zookeeper-0                        2/2     Running   0          78d
xxxxxxx-xxxx-cp-zookeeper-1                        2/2     Running   0          78d
xxxxxxx-xxxx-cp-zookeeper-2                        2/2     Running   0          78d
xxxxxxx-xxxx-kafka-topics-ui-56886dc986-nnw9r      1/1     Running   0          77d
xxxxxxx-xxxx-xxxxx-5f5f855698-dkfw4              1/1     Running   0          21d
xxxxxxx-xxxx-page-84c845458d-cs69t                 1/1     Running   0          78d
minio-bf76768b9-96d2h                                 1/1     Running   0          78d

获取pod实时的日志

想查看当前实时日志,通过下方命令获取

kubectl logs -f <pod-name> -n <namespace>

具体结果不作展示,你执行成功就能瞧见

pod容器中的日志导出到本地

想要一次性获取pod从启动至今输出到控制台(注意是输出到控制台)的日志怎么获取?执行下面的命令可以将历史的日志全部输出到本地文件中:

kubectl logs <pod-name> -n <namespace> > log.txt

说明:windows 文件输出位置不指定,一般在系统盘当前用户目录下

上面的命令加上-f ,会持续将实时日志输出到log.txt

kubectl logs -f  <pod-name> -n <namespace> > log.txt

全部评论