基础日志处理 链接到标题 在 Kubernetes(简称 k8s)中,所有应用在 Pod(k8s 管理容器最小单位)中运行,标准处理方式为将日志打印到标准日志输出和标准错误输出,这样我们可以通过 kuberctl logs 关键字获取容器运行时日志,根据容器运行时的类型不同,日志保存路径也不同,以 Docker 为例,所有真实日志均在 /var/lib/docker/ 路径下,下面我们来看一个例子:
在 k8s 中创建一个 Pod,Pod 中指定打印当前时间到标准输出中:
apiVersion: v1 kind: Pod metadata: name: counter spec: containers: - name: count image: busybox args: [/bin/sh, -c, 'i=0; while true; do echo "$i: $(date)"; i=$((i+1)); sleep 1; done'] 运行该 Pod,通过 kubectl logs 获取当前 Pod 日志:
[root@node1 blog]# kubectl get pod |grep counter counter 1/1 Running 0 9s [root@node1 blog]# kubectl logs counter 0: Fri May 17 00:34:01 UTC 2019 1: Fri May 17 00:34:02 UTC 2019 2: Fri May 17 00:34:03 UTC 2019 3: Fri May 17 00:34:04 UTC 2019 4: Fri May 17 00:34:05 UTC 2019 5: Fri May 17 00:34:06 UTC 2019 6: Fri May 17 00:34:07 UTC 2019 7: Fri May 17 00:34:08 UTC 2019 8: Fri May 17 00:34:09 UTC 2019 9: Fri May 17 00:34:10 UTC 2019 10: Fri May 17 00:34:11 UTC 2019 11: Fri May 17 00:34:12 UTC 2019 12: Fri May 17 00:34:13 UTC 2019 这里如果使用 -f 选项,可以持续输出该 Pod 日志。