如何使用 fabric8 java api 获取 nodePort for kubernetes?
How to get the nodePort using fabric8 java api for kubernetes?
我正在按以下方式创建服务
io.fabric8.kubernetes.api.model.Service myService = new ServiceBuilder()
.withNewMetadata()
.withName(svcName).addToLabels(svcLabelKey,svcLabelValue)
.endMetadata()
.withNewSpec().addToSelector(specSelectorKey, specSelectorValue).withType(svcType)
.addNewPort()
.withProtocol(protocol)
.withPort(port)
.endPort()
.endSpec()
.build();
client.services().inNamespace(namespace).create(myService);
return myService;
如何从 json 中获取 nodePort it returns?
{
"metadata": {
"name": "my-svc",
"namespace": "myns",
"selfLink": "",
"uid": "6cb0f222-7e57-11e5-96f2-005056976c6f",
"resourceVersion": "1016121",
"creationTimestamp": "2015-10-29T16:09:25Z",
"labels": {
"name": ""
}
},
"spec": {
"ports": [
{
"protocol": "TCP",
"port": 80,
"targetPort": 80,
"nodePort": 20430
}
],
"selector": {
"name": "p"
},
"clusterIP": "10.254.181.34",
"type": "LoadBalancer",
"sessionAffinity": "None"
},
"status": {
"loadBalancer": {}
}
},
是否有创建服务后获取节点端口的示例?创建后添加的节点端口可以获取服务端口,但获取不到
nodePort
是在 io.fabric8.kubernetes.api.model.ServicePort
中定义的 属性。
您可以获得服务实例,如:
Service srv = client.services().inNamespace(namespace).withName("myid").get();
然后您可以像这样访问 属性:
Integer nodePort = srv.getSpec().getPorts().get(0).getNodePort();
上面的代码,将获取为服务定义的第一个端口的nodePort
。 (参见 get(0)
)。如果你有更多的端口,你将不得不迭代并选择你想要的端口。
希望对您有所帮助。
我正在按以下方式创建服务
io.fabric8.kubernetes.api.model.Service myService = new ServiceBuilder()
.withNewMetadata()
.withName(svcName).addToLabels(svcLabelKey,svcLabelValue)
.endMetadata()
.withNewSpec().addToSelector(specSelectorKey, specSelectorValue).withType(svcType)
.addNewPort()
.withProtocol(protocol)
.withPort(port)
.endPort()
.endSpec()
.build();
client.services().inNamespace(namespace).create(myService);
return myService;
如何从 json 中获取 nodePort it returns?
{
"metadata": {
"name": "my-svc",
"namespace": "myns",
"selfLink": "",
"uid": "6cb0f222-7e57-11e5-96f2-005056976c6f",
"resourceVersion": "1016121",
"creationTimestamp": "2015-10-29T16:09:25Z",
"labels": {
"name": ""
}
},
"spec": {
"ports": [
{
"protocol": "TCP",
"port": 80,
"targetPort": 80,
"nodePort": 20430
}
],
"selector": {
"name": "p"
},
"clusterIP": "10.254.181.34",
"type": "LoadBalancer",
"sessionAffinity": "None"
},
"status": {
"loadBalancer": {}
}
},
是否有创建服务后获取节点端口的示例?创建后添加的节点端口可以获取服务端口,但获取不到
nodePort
是在 io.fabric8.kubernetes.api.model.ServicePort
中定义的 属性。
您可以获得服务实例,如:
Service srv = client.services().inNamespace(namespace).withName("myid").get();
然后您可以像这样访问 属性:
Integer nodePort = srv.getSpec().getPorts().get(0).getNodePort();
上面的代码,将获取为服务定义的第一个端口的nodePort
。 (参见 get(0)
)。如果你有更多的端口,你将不得不迭代并选择你想要的端口。
希望对您有所帮助。