Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何等待kubernetes服务启动?_Java_Service_Kubernetes - Fatal编程技术网

Java 如何等待kubernetes服务启动?

Java 如何等待kubernetes服务启动?,java,service,kubernetes,Java,Service,Kubernetes,在kubernetes中,我创建了一个服务: V1ServicePort servicePort = new V1ServicePort().port(2000); servicePort.setName("clientPort"); V1ServiceSpec spec = new V1ServiceSpec(); spec.addPortsItem(servicePort); spec.setType("NodePort"); spec.putSelectorItem("app", "my

在kubernetes中,我创建了一个服务:

V1ServicePort servicePort = new V1ServicePort().port(2000);
servicePort.setName("clientPort");

V1ServiceSpec spec = new V1ServiceSpec();
spec.addPortsItem(servicePort);
spec.setType("NodePort");
spec.putSelectorItem("app", "myAppName");

V1Service service = new V1Service();
service.setMetadata(new V1ObjectMeta().name("my_service"));
service.setSpec(spec);

api.createNamespacedService(namespace, myService, null);
但它不会立即启动。我只能在10秒后使用特定端口连接到服务


如何在Java中发出等待请求,直到服务启动

在Kubernetes中,典型的情况是崩溃。确保记录异常或错误消息

这听起来很糟糕,但实际情况是Kubernetes默认重启崩溃的吊舱。给定JVM启动时间,第二次启动可能需要10秒。如果您的进程启动得非常快,您将短暂地进入CrashLoopBackOff状态,这意味着Kubernetes正在重启pod之间暂停

这种方法的一个重要后果是,如果后端服务实际无法启动,依赖它的服务也将显示为失败(它们将陷入CrashLoopBackOff)。然后,您可以使用
kubectl日志
对其进行诊断,并查看实际情况

其他技巧,如Docker Compose设置中常见的,或只是将connect调用放入for循环中的,也会起作用,但如果整个系统不健康,则失败的时间会更长