gpt4 book ai didi

jenkins - 有没有办法通过 SSH(执行)进入 Kubernetes Jenkins 从属 pod 进行调试?

转载 作者:行者123 更新时间:2023-12-02 12:54:30 26 4
gpt4 key购买 nike

在我的 Jenkinsfile 中出现错误后,从属代理 pod 似乎总是很快就会死亡并消失。有没有办法在我身处其中时执行它并使其保持事件状态?我使用 Helm 在 Kubernetes 上运行 Jenkins

最佳答案

如果 Pod 已经死亡,您就无法 kubectl exec 进入容器。

但是,您可以直接通过 ssh 进入运行 pod 的节点并直接检查(现已停止)容器。 (一旦停止,您就无法docker exec进入它)

类似这样的事情:

# this pod will die pretty quickly
$ kubectl run --restart=Never --image=busybox deadpod -- sh -c "echo quick death | tee /artifact"
pod "deadpod" created

$ kubectl describe pod deadpod
Name: deadpod
Namespace: default
Node: nodexxx/10.240.0.yyy
Containers:
deadpod:
Container ID: docker://zzzzzzzzz
[...]

$ ssh nodexxx

一旦您通过 ssh 连接到节点,您就有多个调试选项。

获取输出:

nodexxx:~# docker logs zzzz
quick death

检查文件系统:

nodexxx:~# mkdir debug; cd debug
nodexxx:~/debug# docker export zzz | tar xv
[...]
nodexxx:~/debug# ls -l; cat artifact
[...]
quick death

从容器创建一个镜像,创建一个新容器并获取一个shell:

nodexxx:~# docker commit zzzz debug
nodexxx:~# docker run -it zzzz sh
/ # cat /artifact
quick death

关于jenkins - 有没有办法通过 SSH(执行)进入 Kubernetes Jenkins 从属 pod 进行调试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45288080/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com