![](/img/trans.png)
[英]Java Fabric 8 - Get Pods of Kubernetes service and starting service using Fabric8 Java API
[英]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?
{
"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)
)。 如果有更多端口,则必须迭代并选择所需的端口。
我希望这有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.