如何在OpenShift中重启pod?

Eli*_*ynn 7 openshift

我在正在运行的pod中更新了一个文件(用于调试输出),但是没有得到识别.我打算重新启动它以获取它,但我只看到oc stop而不是oc startoc restart.如何强制刷新pod中的文件?

我想也许它是Ruby的东西(就像PHP中的opcache).但想到重新启动pod会处理它.只是无法弄清楚如何重新启动pod.

Noa*_*nos 11

您可以将部署缩小(到零)然后再放大:

oc get deployments -n <your project> -o wide

oc get pods -n <your project> -o wide

oc scale --replicas=0 deployment/<your deployment> -n <your project>

oc scale --replicas=1 deployment/<your deployment> -n <your project>

watch oc get pods -n <your project> # wait until your deployment is up again
Run Code Online (Sandbox Code Playgroud)

  • 仅供参考:有一个用于观察更改的标志“oc get pods -w” (2认同)

小智 10

如果你想使用 GUI 来做到这一点:

  1. 登录 ocp
  2. 单击工作负载 -> 部署配置
  3. 找到您要重新启动的 Pod。
  4. 单击右侧的 3 个点。
  5. 单击开始推出。

如果删除 pod,或者再次将其缩放到 0 和 1,您可能会失去一些客户端,因为您基本上是在停止并重新启动应用程序。但在推出过程中,现有 Pod 会等待新 Pod 准备就绪,然后自行删除。所以我认为推出比删除或缩放 0/1 更安全。


Rip*_*ops 7

您需要在部署配置中进行更改,但不要在pod中进行更改.因为OpenShift将pod视为不可变的; 在运行时无法对pod定义进行更改.https://docs.openshift.com/enterprise/3.0/architecture/core_concepts/pods_and_services.html#pods

如果您在部署配置中进行了一些更改并保存它们,则pod将重新启动并且您的更改将生效:

oc edit dc "deploy-config-example"

如果您更改了卷或配置文件中的内容,则需要删除pod以重新启动:

oc delete pod "name-of-your-pod"

而pod将重启.


BNJ*_*BNJ 5

感谢 Noam Manos 的解决方案。

我在 Openshift 中使用过“应用程序控制台”。我已经导航到应用程序 - 部署 - #3(检查您的活动部署)以查看带有向上和向下箭头的 pod。目前,我有 1 个 pod 正在运行。所以,我点击了向下箭头以缩小到 0 pod。然后,我单击向上箭头以放大到 1 个吊舱。