Как заставить kubernetes обслуживать несколько портов в JAVA? - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь заставить мой сервис прослушивать несколько портов:

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);

Однако код выполняется только если включен один порт, в противном случае исключение

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. Как это исправить?

1 Ответ

2 голосов
/ 26 июня 2019

Если вы хотите предоставить более одного сервисного порта, вы должны назначить каждому из них уникальное имя. Либо используйте конструктор с именем, либо вызовите .setName() для ссылочной переменной, поскольку это не метод построения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...