gpt4 book ai didi

docker - 在K8S pod中快速修改Python应用进行调试

转载 作者:行者123 更新时间:2023-12-02 11:52:11 25 4
gpt4 key购买 nike

背景
我有一个大型Python服务可以在台式机上运行,​​并且需要将其作为K8S部署的一部分运行。我希望我必须做一些小改动,才能使服务在部署/ pods 中运行,然后才能运行。

问题
到目前为止,如果我在Python代码中遇到问题,则需要一段时间来更新代码,并将其部署到另一轮测试中。例如,我必须:

  • 修改我的Python代码。
  • 重建Docker容器(包括我的Python服务)。
  • scp将Docker容器移至Docker Registry服务器。
  • docker load图像,更新标签,并将其推送到注册表后端数据库。
  • 手动杀死当前正在运行的Pod,以便部署使用新的Docker镜像重新启动所有Pod。

  • 每次我需要调试一个小问题时,这都需要很多准备时间。理想情况下,我更喜欢能够修改已经在Pod上运行的Python代码的副本,但是我无法终止它(因为Python服务是使用 PID=1启动的默认应用程序),而K8S不会(据我所知)不支持重启pod。或者,如果我终止/启动另一个Pod,则不会从以前使用的Pod上进行本地更改(当然,这是设计使然;但是对我的调试工作无济于事)。


    是否有更好/更快的方法来快速将(测试/调试)更改部署到我正在测试的容器,而不必花费几分钟来重新创建容器镜像,重新部署/标记/推送它们,等等?如果我可以找到并挂载(读写)Docker镜像,这可能会有所帮助,因为我可以直接编辑其中的数据(即新的Python更改),然后杀死Pod,以便部署重新创建它们。

    最佳答案

    主要有两种选择:一种是使用可减少或自动化流量的工具,另一种是使用Minikube之类的工具在本地进行开发。

    首先,有一百万个半工具,但Skaffold可能是最常见的工具。

    第二步,您执行( eval $(minikube docker-env) && docker build -t myimagename . )之类的操作,它将直接在Minikube泊坞环境中构建镜像,因此您完全跳过列表中的步骤3和4。您可以将其与检测镜像更改并重新启动Pod或更新部署(重新启动Pod)的工具结合使用。

    同样,使用scpdocker load的FWIW是非常不标准的,通常会组合成docker push

    关于docker - 在K8S pod中快速修改Python应用进行调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55873256/

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