【1】安装kubectl
官网文档:https://kubernetes.io/zh-cn/docs/tasks/tools/install-kubectl-windows/
下载后得到 kubectl.exe,放到一个目录下,然后配置环境变量。
此时CMD 进入DOS命令窗口
kubectl version
【2】配置config文件
其实就是连接k8s集群的配置文件config,这个可以问运维同事要或者从服务器环境上面拷贝。
进入用户家目录,创建 .kube
文件夹(不要忽略.
),然后放入config
C:\Users\12746\.kube
【3】查看日志
在 Windows 上安装了 kubectl
之后,你可以使用它来查看 Kubernetes 集群中 Pods 的日志。以下是查看 Pod 日志的基本步骤:
-
打开命令行工具:你可以使用 PowerShell、Command Prompt 或者 Windows Terminal 来运行
kubectl
命令。 -
获取 Pods 列表:首先,你需要知道你想查看哪个 Pod 的日志。通过以下命令列出当前命名空间下的所有 Pods:
kubectl get pods
如果你的 Pod 在不同的命名空间中,可以使用 -n
参数指定命名空间,例如:
kubectl get pods -n your-namespace
- 查看 Pod 日志:一旦你知道了 Pod 的名称,就可以使用
kubectl logs
命令来查看其日志。基本语法如下:
kubectl logs your-pod-name
同样,如果 Pod 在特定的命名空间中,请记得加上 -n
参数:
kubectl logs your-pod-name -n your-namespace
- 实时查看日志:如果你想实时查看日志(类似于 Linux 中的
tail -f
),可以添加-f
参数:
kubectl logs -f your-pod-name -n namespace
需要注意的是上面命令获取的是 容器的标准输出(stdout)和标准错误输出(stderr),也就是程序打印到控制台的内容,不是日志文件里的内容。
- 如果 logger 配置了输出到控制台(默认通常是),那么两种都能看到;
- 如果 logger 只输出到文件(如 app.log),那么只有文件里能看到 logger.info(…) 的内容;
- kubectl logs 只能查看容器中 stdout/stderr 的内容,不能直接读取容器内的日志文件。
- 查看之前容器的日志:如果你的 Pod 已经重启,你可能需要查看之前容器的日志。可以使用
--previous
标志来实现:
kubectl logs your-pod-name --previous
- 将容器日志拷贝到本地查看
kubectl cp jtywb-jane-sc/jane-backend-sc-595c58c75c-5m66n:/var/log/app.log ./app.log
【4】进入实例内部
你已经成功查看了命名空间 jtywb-jane
下的 Pod 列表,现在你想进入某个 Pod 的内部容器进行操作。下面是具体步骤:
✅ 步骤一:选择你要进入的 Pod
从你的输出中,可以选择任意一个 Pod,比如:
nginx-forward-6fdf747f68-mqglh
jane-backend-85cbcfcb7b-c5c77
jane-vue-88ff8489b-pzzrx
✅ 步骤二:使用 kubectl exec
进入 Pod 内部
情况1:Pod 中只有一个容器(大多数情况)
假设你要进入 jane-backend-85cbcfcb7b-c5c77
,命令如下:
kubectl exec -it -n jtywb-jane jane-backend-85cbcfcb7b-c5c77 -- /bin/sh
如果提示 /bin/sh: command not found
,说明容器可能使用的是 bash
,尝试:
kubectl exec -it -n jtywb-jane jane-backend-85cbcfcb7b-c5c77 -- /bin/bash
情况2:Pod 中有多个容器(需要指定容器名)
如果你不确定是否是单个容器,可以先用下面命令查看容器名:
kubectl describe pod -n jtywb-jane jane-backend-85cbcfcb7b-c5c77
找到 Containers:
字段下的容器名称,例如 app-container
,然后执行:
kubectl exec -it -n jtywb-jane jane-backend-85cbcfcb7b-c5c77 -c app-container -- /bin/sh
✅ 示例总结(以 jane-backend 为例):
# 进入 Pod 内部容器
kubectl exec -it -n jtywb-jane jane-backend-85cbcfcb7b-c5c77 -- /bin/sh
🔍 补充说明:
-it
:表示交互式终端。-n jtywb-jane
:指定命名空间。-- /bin/sh
或-- /bin/bash
:表示在容器内启动一个 shell。