如何使用fabric8 java api为kubernetes获取节点端口?
我正在以以下方式创建一个服务如何使用fabric8 java api为kubernetes获取节点端口?,java,json,port,fabric8,Java,Json,Port,Fabric8,我正在以以下方式创建一个服务 io.fabric8.kubernetes.api.model.Service myService = new ServiceBuilder() .withNewMetadata() .withName(svcName).addToLabels(svcLabelKey,svcLabelValue) .endMetadata() .withNewSpec().addToSelector(specSelec
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
{
"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();
上面的代码将获取为服务定义的第一个端口的节点端口
。(请参见get(0)
)。如果有更多端口,则必须迭代并选择所需的端口
我希望这有帮助。我记录了一张罚单--