是否可以在 Kubernetes 的 Sidecar 中运行 Ruby(作为一种语言)

是否可以在 Kubernetes 的 Sidecar 中运行 Ruby(作为一种语言)

我正在使用 Python Pod 来完成一项主要工作。但是,对于单个步骤,我需要不同版本的 Ruby,因此,我不想在“主”python 容器中安装所有版本的 Ruby,而是想知道是否可以为每个容器安装一个版本的 Ruby,然后使用其中一个 Ruby 容器作为 sidecar。这个想法来自 Ruby Docker 镜像的这个用例

docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp ruby:2.5 ruby your-daemon-or-script.r

所以我想知道我们是否可以将这句话翻译成“kubernetes 术语”

答案1

您可以将任何 Docker 映像作为 pod 中的第二个容器运行。您将看到pod.spec.containers一个列表,您可以在其中运行多个容器(具有不同的 Docker 映像/命令/端口/等)。

您对第二个容器做什么取决于您。如果您的主 Python 应用程序需要调用该容器,则 ruby​​ 容器可以运行 Web 服务器。Pod 共享同一网络,因此您的 Python 应用程序可以调用 http://localhost:8080(或您的 ruby​​ 应用程序公开 http 服务器的任何位置)。

您还可以在两个容器之间共享一个卷,以便它们共享相同的文件系统。在此处阅读更多信息:https://kubernetes.io/docs/tasks/access-application-cluster/communicate-containers-same-pod-shared-volume/

希望这对您有所帮助。

相关内容