java - 如何让kubernetes服务处理JAVA中的多个端口?

标签 java service kubernetes port

我正在尝试让我的服务监听多个端口:

V1Service service = new V1Service();
service.setMetadata(new V1ObjectMeta().name("tests"));
V1ServiceSpec spec = new V1ServiceSpec();
spec.setType("NodePort");
spec.putSelectorItem("name", "tests");
spec.addPortsItem(new V1ServicePort().port(25452));

// WHEN I ADD ANY OF THE 3 LINES BELOW, THE CODE CRASHES, WHY?
spec.addPortsItem(new V1ServicePort().port(24932));
spec.addPortsItem(new V1ServicePort().port(25445));
spec.addPortsItem(new V1ServicePort().port(25432));

service.setSpec(spec);

mmaService = api.createNamespacedService(namespace, service, null);

但是,该代码仅在包含一个端口时执行,否则 异常(exception)

io.kubernetes.client.ApiException: Unprocessable Entity
at io.kubernetes.client.ApiClient.handleResponse(ApiClient.java:882)
at io.kubernetes.client.ApiClient.execute(ApiClient.java:798)
at io.kubernetes.client.apis.CoreV1Api.createNamespacedServiceWithHttpInfo(CoreV1Api.java:9237)
at io.kubernetes.client.apis.CoreV1Api.createNamespacedService(CoreV1Api.java:9221)

在调用createNamespacedService方法时抛出。如何解决这个问题?

最佳答案

如果您想公开多个服务端口,则必须为每个端口分配一个唯一的名称。使用带有名称的构造函数或对引用变量调用 .setName(),因为这不是构建器方法。

关于java - 如何让kubernetes服务处理JAVA中的多个端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56770644/

相关文章:

android - 在关闭应用程序时检查 Firebase 数据库中的更改

amazon-web-services - Kubernetes集群中只有两个主节点处于启动状态,而AWS中的kops

java - 递归列出Java中的文件

java - java.awt.graphics 中图形的自定义方法

Java Spring 3 MVC Controller 显式加载服务

android - 前台服务和 PARTIAL_WAKE_LOCK 之间的关系

android - 在 Android 中每 1 秒有效地在后台运行我的代码

Kubernetes 作业被创建但不会立即执行

deployment - 如何使用 Helm 文件

java - 猜数字游戏每次猜测都会生成不同的数字