不同Kubernetes版本(1.7/1.8/1.9)下Pod迁移日志消息查询
嘿,我来帮你梳理下在Kubernetes 1.7、1.8、1.9版本里,要判断Pod是否完成跨节点迁移该看哪些日志——毕竟这些版本虽然有点年头,但核心组件的日志逻辑还是比较清晰的:
一、Kubelet 日志(源节点与目标节点都要查)
Kubelet是节点上直接管理Pod的核心组件,迁移过程中源节点会终止旧Pod实例,目标节点会启动新的Pod,两边的日志都藏着关键信号:
- 源节点的Kubelet日志:
- 搜索包含
Stopping container或Killing container的条目,后面跟着你关注的Pod容器ID或名称,这是源节点开始终止Pod的明确标记。 - 还会出现类似
Pod <pod-name> is terminated, waiting for container deletion的日志,确认Pod在源节点的清理流程正在进行。
- 搜索包含
- 目标节点的Kubelet日志:
- 找
Created container或Started container的日志,对应新Pod容器完成创建与启动的信息。 - 如果Pod需要拉取镜像,还会看到
Successfully pulled image或者Container <container-name> started successfully这类日志,说明Pod在目标节点已正常初始化。
- 找
二、kube-controller-manager 日志
控制器管理器里的ReplicaSet或Deployment控制器(如果你的Pod是由这些资源管理的),会负责检测Pod异常并触发重新调度:
- 查找
Scaled up replica set <rs-name> to <count>或者Created pod <pod-name>的日志,这表示控制器已经检测到源节点的Pod不可用,发起了新Pod的创建请求。 - 要是你是手动执行
kubectl drain触发的驱逐,还会看到Evicting pod <pod-name>的日志条目,这是控制器发起驱逐操作的直接信号。
三、kube-scheduler 日志
调度器的职责是把新创建的Pod绑定到合适的目标节点,这里的日志能直接确认调度结果:
- 搜索
Successfully bound pod <pod-name> to node <target-node-name>,这条日志一出现,就说明Pod已经成功被调度到目标节点了。 - 在这之前,还会有
Scheduled pod <pod-name> on node <target-node-name>的前置日志,代表调度器已经选定了目标节点。
四、快速验证小技巧
除了查日志,你也可以用Kubectl命令快速确认Pod的节点变化:
- 执行
kubectl get pods -o wide,查看Pod当前所在节点,和之前的节点信息对比就能一目了然。 - 执行
kubectl describe pod <pod-name>,在Events部分能看到Scheduled、Pulling image、Started container等事件,这些和日志内容一一对应,更直观。
内容的提问来源于stack exchange,提问作者s g
相关产品推荐
相关产品推荐

