Kubernetes(K8s) kubectl logs 常用命令

Kubernetes(K8s)中使用Kubectl 命令行工具管理 Kubernetes 集群。 kubectl 在 $HOME/.kube 目录中查找一个名为 config 的配置文件。 可以通过设置 KUBECONFIG 环境变量或设置 --kubeconfig 参数来指定其它 kubeconfig 文件。本文主要介绍Kubernetes(K8s)中kubectl logs 常用命令。

1、Kubectl语法

kubectl logs [-f] [-p] POD [-c CONTAINER]

kubectl logs:输出pod中一个容器的日志。如果pod只包含一个容器则可以省略容器名。容器内程序输出到标准输出的内容。与docker的logs命令类似。如要获得tail -f 的方式,也可以使用-f选项。

2、kubectl命令中的简写

kubectl命令中可以使用的缩写,具体如下:

certificatesigningrequests (缩写 csr)
componentstatuses (缩写 cs)
configmaps (缩写 cm)
customresourcedefinition (缩写 crd)
daemonsets (缩写 ds)
deployments (缩写 deploy)
endpoints (缩写 ep)
events (缩写 ev)
horizontalpodautoscalers (缩写 hpa)
ingresses (缩写 ing)
limitranges (缩写 limits)
namespaces (缩写 ns)
networkpolicies (缩写 netpol)
nodes (缩写 no)
persistentvolumeclaims (缩写 pvc)
persistentvolumes (缩写 pv)
poddisruptionbudgets (缩写 pdb)
pods (缩写 po)
podsecuritypolicies (缩写 psp)
replicasets (缩写 rs)
replicationcontrollers (缩写 rc)
resourcequotas (缩写 quota)
serviceaccounts (缩写 sa)
services (缩写 svc)
statefulsets (缩写 sts)
storageclasses (缩写 sc)

3、kubectl logs 命令

1)返回仅包含一个容器的pod nginx的日志快照

kubectl logs nginx

2)返回pod java中已经停止的容器web-m的日志快照

kubectl logs -p -c java web-m

3)持续输出pod java中的容器web-m的日志

kubectl logs -f -c java web-m

4)仅输出pod nginx中最近的20条日志

kubectl logs --tail=20 nginx

5)输出pod nginx中最近一小时内产生的所有日志

kubectl logs --since=1h nginx

6)查看指定pod的日志

kubectl logs <pod_name>
kubectl logs -f <pod_name> #类似tail -f的方式查看(tail -f 实时查看日志文件 tail -f 日志文件log)

7)查看指定pod中指定容器的日志

kubectl logs <pod_name> -c <container_name>

一次性查看:

kubectl logs pod_name -c container_name -n namespace

tail -f方式实时查看:

kubectl logs -f <pod_name> -n namespace

推荐阅读
cjavapy编程之路首页