我有一个守护程序集,它部署容器来检查几个挂载点的状态。此守护进程部署是通过 python 脚本完成的,在部署命令之后不久,我将收集将由上述守护程序 pod 创建的日志。我看到日志在触发守护程序创建后不久就会被复制,并且出于同样的原因,日志不完整。
经过一番调查,我发现守护程序 pod 仍在执行脚本和写入日志的过程中。同时,主脚本已经跳转到下一个使用kubectl cp
命令复制日志的命令。
有什么方法可以根据仅在脚本执行完成后复制日志的条件进行等待。
这是我拥有的代码部分
# Create diag pod
cmd = "kubectl apply -f diagnostic_daemon.yaml"
(rc, cmd_out, cmd_err) = cmdHandle.cmd_run(cmd)
if cmd_err.strip():
print "ERROR: Unbale to create diag POD. Exiting!!!"
print "> " + REDC + cmd_err.strip() + ENDC
sys.exit(1)
# wait for the daemonset pod to reach running state
check_daemonset_state("cos-plugin-diag")
print "n*****Collecting cos-plugin-diag logs*****"
# Collect diag pod logs
global nodeQdigl
所以你还需要检查 pod 是否处于Running
状态(Pod 中的所有容器(
# wait for the pod
check_pod_state("cos-plugin-diag")
因此,例如,如果 Pod 有 2 个容器,您应该检查2/2
例:
NAME READY STATUS RESTARTS AGE
calico-node-9wnst 2/2 Running 0 6d
您需要检查日志文件中确定日志结尾的字符串的另一个方面,您可以使用
kubectl logs <pod-name> -c <container-if-multiple-containers> -n <your-namespace>
希望对你有帮助