k8s取节点内docker中的日志

Kubernetes(k8s)是Google开源的容器集群管理系统(谷歌内部:Borg)。在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。


图片参考这里

问题:

Node节点ip是集群内私有ip,只能通过API server[master]-------->kube proxy[Node],所以外部无法直接取得Node内Pod中container里程序运行的日志(文件)。
必须从master节点入手,然后通过Node ip地址(私有地址)进入Node,通过docker cp将Pod节点内container运行的日志,复制到宿主节点(Node),在通过scp将Node中文件复制到master节点。可取。

取日志步骤

  • 获得master节点ip,ssh root@ip 登录到master节点
  • 获得Node节点的ip2(平台如PaaS,是可以通过UI看到的),也就是Pod节点的宿主机的ip, ssh root@ip2
  • 获得运行进程的container id,通过docker ps,找到运行进程对应的container id即可,假设为containerID
  • docker cp containerID:/home/tmp /tmp ,将containerID中的文件复制到宿主机
  • scp -r /tmp root@ip:/tmp ,将宿主机文件复制到master节点
  • 通过ftp将master节点文件down到本地

k8s学习参考

原文地址:https://www.cnblogs.com/lknny/p/6965278.html