怎么用kubernetes和skaffold调试python代码?

Thi*_*Lam 4 python kubernetes skaffold

我目前正在通过 kubernetes 在 python3 下运行 django 应用程序skaffold dev。我有使用 Python 源代码的热重载。目前是否可以在 kubernetes 上使用 python 进行交互式调试?

例如,

def index(request):
    import pdb; pdb.set_trace()
    return render(request, 'index.html', {})
Run Code Online (Sandbox Code Playgroud)

通常,在容器外,击中端点会将我放入(pdb)外壳中。

在当前的设置,我已经设置stdinttytrueDeployment文件。代码确实在断点处停止,但它没有让我访问(pdb)shell。

VAS*_*VAS 6

有一个kubectl命令允许您附加到 pod 中正在运行的容器:

kubectl attach <pod-name> -c <container-name> [-n namespace] -i -t

-i  (default:false) Pass stdin to the container
-t  (default:false) Stdin is a TTY
Run Code Online (Sandbox Code Playgroud)

它应该允许您与容器中的调试器进行交互。您可能需要调整 pod 以使用调试器,因此以下文章可能会有所帮助:

还有远程呈现工具可以帮助您使用不同的应用程序调试方法:

使用远程呈现允许您为本地服务使用自定义工具,例如调试器和 IDE,并为服务提供对 ConfigMap、秘密和远程集群上运行的服务的完全访问权限。

使用该--swap-deployment选项将现有部署与 Telepresence 代理交换。交换允许您在本地运行服务并连接到远程 Kubernetes 集群。远程集群中的服务现在可以访问本地运行的实例。