如何查看AWS EKS集群部署容器的控制台输出日志
AWS EKS查看工作负载控制台日志操作方法
首先确保本地kubectl已经正确连接到目标EKS集群:安装并配置好AWS CLI后,执行以下命令即可自动更新本地kubeconfig:
aws eks update-kubeconfig --region <集群所在AWS区域,例如ap-northeast-1> --name <你的EKS集群名称>
执行kubectl get nodes能正常返回集群节点列表,就说明连接配置正常。
方式一:kubectl命令行查看(和AKS日志查看逻辑完全一致,效率最高)
- 第一步先定位目标Pod:
执行kubectl get pods即可列出当前命名空间下所有运行的Pod,如果你的应用部署在非default命名空间,追加-n <命名空间名称>参数即可。你截图中的jms-server、activemq、redis等部署对应的Pod都会在返回结果中展示。如果不想手动找Pod,也可以直接按部署维度查询:例如要找jms-server部署的状态,执行
kubectl get deploy jms-server即可。 - 查看日志常用命令:
- 查看单个Pod的历史日志:
kubectl logs <Pod名称> - 实时刷新查看Pod日志(和看本地控制台输出效果一致):
kubectl logs -f <Pod名称>,你之前在AKS中看到的「Tomcat started on...」这类启动日志用这个命令就能直接拉取到 - 查看Pod中上一个崩溃退出的容器日志(适合应用启动失败反复重启的场景):
kubectl logs <Pod名称> --previous - 直接查看某个部署下所有副本的实时日志,不需要手动找Pod名:
kubectl logs -f deploy/<部署名称>,例如查看jms-server的日志就执行kubectl logs -f deploy/jms-server - 如果一个Pod中包含多个容器,追加
-c <容器名称>参数指定要查看的容器即可。
- 查看单个Pod的历史日志:
方式二:通过AWS Web控制台查看(不需要敲命令)
操作路径如下:
- 登录AWS控制台,进入EKS服务页面
- 左侧导航栏选择「集群」,点击你部署应用的目标集群
- 进入集群详情页后切换到「资源」选项卡,在「工作负载」分类下选择「部署」,就能看到你截图中列出的jms-server、activemq、redis等所有部署资源
- 点击你要排查的目标部署(比如jms-server),进入部署详情页后在「Pod管理」板块可以看到该部署关联的所有运行中Pod
- 点击对应Pod名称进入详情页,切换到「日志」选项卡,就能直接看到容器的控制台输出内容。
排查注意事项
- 如果执行命令提示资源不存在,先执行
kubectl config current-context确认当前kubectl连接的是目标EKS集群,同时确认是否漏加-n参数指定了应用所在的命名空间。 - 如果查询到的日志为空,先确认你的Java Spring应用、ActiveMQ等组件的日志是输出到**标准输出(stdout)/标准错误(stderr)**的,Kubernetes只会收集容器输出到这两个通道的日志,如果日志被写到容器内部文件中,需要进入容器查看对应文件,或者调整应用日志配置将日志输出到控制台。
- 你本地客户端连接ActiveMQ报错的场景,除了查看jms-server和ActiveMQ本身的日志,还可以执行
kubectl get svc确认ActiveMQ的Service暴露方式、映射端口是否配置正确,同时检查集群对应安全组是否放通了你本地IP到对应服务端口的访问权限。

内容的提问来源于stack exchange,提问作者Luciore95
相关产品推荐
相关产品推荐

