我正在尝试以编程方式重新启动 Pod。首先,我找到了一些通过 oc 命令行执行此操作的方法:
- 删除 pod,将创建一个新的 Pod:
oc delete pod postgresql-2-wz989
- 启动新部署:
oc rolloutlatest dc/postgresql
我认为第二种方法更好,因为部署配置名称是静态的,不会像 Pod 名称那样发生变化。
我的问题是如何使用 Java Rest 客户端执行此操作?我不太清楚如何使用这个客户端 API。
提前致谢。
最佳答案
考虑到 Graham Dumpleton 关于使用 --loglevel=9
的提示,我找到了使用 java 客户端的解决方案:
IClient client = new ClientBuilder("https://10.0.75.2:8443")
.withUserName("developer")
.withPassword("developer")
.build();
IProject project = client.getResourceFactory().stub(ResourceKind.PROJECT, "prj4testing");
IDeploymentConfig deploymentConfig = client.getResourceFactory().stub(ResourceKind.DEPLOYMENT_CONFIG, "postgresql", project.getName());
IDeploymentTriggerable capability = deploymentConfig.getCapability(IDeploymentTriggerable.class);
capability.setForce(true);
capability.setLatest(true);
capability.trigger();
我通过研究客户端的源代码找到了这个解决方案。我不知道是否有更好的方法来实现这一目标。欢迎大家提出意见。
关于java - 从 OpenShift Java REST 客户端重新启动 Pod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50823125/