在所有 openshift pods 上安装 python 库
Install python libraries on all openshift pods
我在本地 openshift 集群上部署了一个 redash 服务器,大约有 20 个 pods。
我想在服务器上安装新的 python 库,我可以使用 oc rsh
和 运行 pip install x
.[= ssh 到 pods 之一14=]
问题是我有很多 pods,当我需要一个新库时不想通过 ssh 访问每个 pods。
我也不想更改图像并且每次都必须重新部署我的服务器。
有没有办法在所有 pods 上同时 运行 一个命令?
使用 oc rsh
进行 Pod 维护通常不是一个好主意。正确的方法是更新容器镜像并重新部署您的应用程序,这就是 Kubernetes / OpenShift 的工作方式。
例如,当您的 Pods 中的一个因任何原因重新启动时(底层节点出现问题、您的应用程序崩溃、管理员删除了 Pod,...),那么您的更改将会消失当 Pod 重新启动时。
通常,容器镜像是通过管道或类似方式构建的,因此重新构建镜像应该不是问题。话虽如此,运行 一个命令在所有 Pods 中的一个 hacky 方法如下:
for pod in $(oc get pods -o name); do
oc rsh $pod pip install x
done
我在本地 openshift 集群上部署了一个 redash 服务器,大约有 20 个 pods。
我想在服务器上安装新的 python 库,我可以使用 oc rsh
和 运行 pip install x
.[= ssh 到 pods 之一14=]
问题是我有很多 pods,当我需要一个新库时不想通过 ssh 访问每个 pods。 我也不想更改图像并且每次都必须重新部署我的服务器。 有没有办法在所有 pods 上同时 运行 一个命令?
使用 oc rsh
进行 Pod 维护通常不是一个好主意。正确的方法是更新容器镜像并重新部署您的应用程序,这就是 Kubernetes / OpenShift 的工作方式。
例如,当您的 Pods 中的一个因任何原因重新启动时(底层节点出现问题、您的应用程序崩溃、管理员删除了 Pod,...),那么您的更改将会消失当 Pod 重新启动时。
通常,容器镜像是通过管道或类似方式构建的,因此重新构建镜像应该不是问题。话虽如此,运行 一个命令在所有 Pods 中的一个 hacky 方法如下:
for pod in $(oc get pods -o name); do
oc rsh $pod pip install x
done