kubectl logs
简介
打印 Pod 或指定资源中某个容器的日志。如果 Pod 只有一个容器,则容器名称是可选的。
kubectl logs [-f] [-p] (POD | TYPE/NAME) [-c CONTAINER]
示例
# 返回只有一个容器的 nginx Pod 中的快照日志
kubectl logs nginx
# 从 nginx Pod 返回快照日志,每行前面加上来源的 Pod 和容器名称
kubectl logs nginx --prefix
# 从 nginx Pod 返回快照日志,限制输出为 500 字节
kubectl logs nginx --limit-bytes=500
# 从 nginx Pod 返回快照日志,等待其启动运行最多 20 秒
kubectl logs nginx --pod-running-timeout=20s
# 返回有多个容器的 nginx Pod 中的快照日志
kubectl logs nginx --all-containers=true
# 从 nginx Deployment 中的所有 Pod 返回快照日志
kubectl logs deployment/nginx --all-pods=true
# 返回带 app=nginx 标签定义的 Pod 中所有容器的快照日志
kubectl logs -l app=nginx --all-containers=true
# 返回带 app=nginx 标签定义的 Pod 中容器的快照日志,限制并发日志请求为 10 个 Pod
kubectl logs -l app=nginx --max-log-requests=10
# 返回 web-1 Pod 中之前终止的 ruby 容器日志的日志
kubectl logs -p -c ruby web-1
# 开始从 nginx Pod 流式传输日志,即使发生错误也继续
kubectl logs nginx -f --ignore-errors=true
# 开始流式传输 web-1 Pod 中 ruby 容器的日志
kubectl logs -f -c ruby web-1
# 开始流式传输带 app=nginx 标签定义的 Pod 中所有容器的日志
kubectl logs -f -l app=nginx --all-containers=true
# 仅显示 nginx Pod 的最近 20 行输出
kubectl logs --tail=20 nginx
# 显示 nginx Pod 在过去一小时内写入的所有日志
kubectl logs --since=1h nginx
# 显示从 2024 年 8 月 30 日 06:00:00 UTC 开始 nginx Pod 中所有带时间戳的日志
kubectl logs nginx --since-time=2024-08-30T06:00:00Z --timestamps=true
# 显示所提供证书过期的 kubelet 的日志
kubectl logs --insecure-skip-tls-verify-backend nginx
# 返回名为 hello 的 Job 的第一个容器的快照日志
kubectl logs job/hello
# 返回 nginx Deployment 的 nginx-1 容器的快照日志
kubectl logs deployment/nginx -c nginx-1
选项
--all-containers | |
获取 Pod 中所有容器的日志。 |
|
--all-pods | |
从所有 Pod 获取日志。将前缀设置为 true。 |
|
-c, --container string | |
打印指定容器的日志。 |
|
-f, --follow | |
指定日志是否应以流式传输。 |
|
-h, --help | |
logs 操作的帮助命令。 |
|
--ignore-errors | |
如果在监视/跟随 Pod 日志,则允许出现任何非致命的错误。 |
|
--insecure-skip-tls-verify-backend | |
跳过请求日志来源的 kubelet 的身份验证。从理论上讲,攻击者可能会提供无效的日志内容。 如果你的 kubelet 提供的证书已过期,你可能需要使用此参数。 |
|
--limit-bytes int | |
要返回的日志的最大字节数。默认为无限制。 |
|
--max-log-requests int 默认值:5 | |
指定使用选择算符时要遵循的最大并发日志数。默认值为 5。 |
|
--pod-running-timeout duration 默认值:20s | |
等待至少一个 Pod 运行的时长(例如 5s、2m 或 3h,大于零)。 |
|
--prefix | |
在每行日志前添加日志来源(Pod 名称和容器名称)的前缀。 |
|
-p, --previous | |
如果为 true,则打印 Pod 中容器的前一个实例的日志(如果存在)。 |
|
-l, --selector string | |
过滤所用的选择算符(标签查询),支持 '='、'=='、'!='、'in' 和 'notin'。 (例如 -l key1=value1,key2=value2,key3 in (value3))。 匹配的对象必须满足所有指定的标签约束。 |
|
--since duration | |
仅返回比相对时长更新的日志,如 5s、2m 或 3h。 默认返回所有日志。只能使用 since-time 和 since 之一。 |
|
--since-time string | |
仅返回特定日期(RFC3339)之后的日志。默认返回所有日志。 只能使用 since-time 和 since 之一。 |
|
--tail int 默认值:-1 | |
要显示的最近日志文件的行数。不带选择算符时默认为 -1 将显示所有日志行。 否则如果提供了选择算符,则为 10。 |
|
--timestamps | |
在日志输出的每一行中包含时间戳。 |
Parent Options Inherited
--as string | |
操作所用的伪装用户名。用户可以是常规用户或命名空间中的服务账号。 |
|
--as-group strings | |
操作所用的伪装用户组,此标志可以被重复设置以指定多个组。 |
|
--as-uid string | |
操作所用的伪装 UID。 |
|
--cache-dir string 默认值:"$HOME/.kube/cache" | |
默认缓存目录。 |
|
--certificate-authority string | |
证书机构的证书文件的路径。 |
|
--client-certificate string | |
TLS 客户端证书文件的路径。 |
|
--client-key string | |
TLS 客户端密钥文件的路径。 |
|
--cluster string | |
要使用的 kubeconfig 中的集群名称。 |
|
--context string | |
要使用的 kubeconfig 上下文的名称。 |
|
--disable-compression | |
如果为 true,则对服务器所有请求的响应不再压缩。 |
|
--insecure-skip-tls-verify | |
如果为 true,则不检查服务器证书的有效性。这将使你的 HTTPS 连接不安全。 |
|
--kubeconfig string | |
CLI 请求要使用的 kubeconfig 文件的路径。 |
|
--kuberc string | |
用于偏好设置的 kuberc 文件的路径。可以通过导出 KUBECTL_KUBERC=false 特性门控或关闭 KUBERC=off 特性门控来禁用此功能。 |
|
--match-server-version | |
要求服务器版本与客户端版本匹配。 |
|
-n, --namespace string | |
如果存在,则是此 CLI 请求所针对的命名空间范围。 |
|
--password string | |
对 API 服务器进行基本身份验证所用的密码。 |
|
--profile string 默认值:"none" | |
要记录的性能分析信息。可选值为(none|cpu|heap|goroutine|threadcreate|block|mutex)。 |
|
--profile-output string 默认值:"profile.pprof" | |
性能分析信息要写入的目标文件的名称。 |
|
--request-timeout string 默认值:"0" | |
在放弃某个服务器请求之前等待的时长。非零值应包含相应的时间单位(例如 1s、2m、3h)。 值为零表示请求不会超时。 |
|
-s, --server string | |
Kubernetes API 服务器的地址和端口。 |
|
--storage-driver-buffer-duration duration 默认值:1m0s | |
对存储驱动的写入操作将被缓存的时长;缓存的操作会作为一个事务提交给非内存后端。 |
|
--storage-driver-db string 默认值:"cadvisor" | |
数据库名称。 |
|
--storage-driver-host string 默认值:"localhost:8086" | |
数据库 host:port |
|
--storage-driver-password string 默认值:"root" | |
数据库密码。 |
|
--storage-driver-secure | |
使用与数据库的安全连接。 |
|
--storage-driver-table string 默认值:"stats" | |
表名。 |
|
--storage-driver-user string 默认值:"root" | |
数据库用户名。 |
|
--tls-server-name string | |
服务器证书验证所用的服务器名称。如果未提供,则使用与服务器通信所用的主机名。 |
|
--token string | |
向 API 服务器进行身份验证的持有者令牌。 |
|
--user string | |
要使用的 kubeconfig 用户的名称。 |
|
--username string | |
对 API 服务器进行基本身份验证时所用的用户名。 |
|
--version version[=true] | |
--version, --version=raw 打印版本信息并退出;--version=vX.Y.Z... 设置报告的版本。 |
|
--warnings-as-errors | |
将从服务器收到的警告视为错误,并以非零退出码退出。 |
另请参见
- kubectl - kubectl 用于控制 Kubernetes 集群管理器
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.