use*_*mda 3 java service fabric8 kubernetes
我正在使用fabric8.io在Kubernetes中编排应用程序容器.我正在寻找创建一个服务来管理某个端口上具有特定标签的pod.是否有API的特定示例执行此操作.我在例子中找不到它
似乎没有javadoc可用???
Fabric8的Kubernetes Client使用生成的模型和DSL,其结构与JSON和YAML配置完全相同.
所以为了创建一个看起来像这样的Service实例:
{
"kind": "Service",
"apiVersion": "v1",
"metadata": {
"name": "myservice"
},
"spec": {
"ports": [
{
"protocol": "TCP",
"port": 80,
"targetPort": 8080,
}
],
"selector": {
"key": "value1",
},¬
"portalIP": "172.30.234.134",
"type": "ClusterIP",
}
Run Code Online (Sandbox Code Playgroud)
}
您可以使用以下代码:
Service service = new ServiceBuilder()
.withNewMetadata()
.withName("myservice")
.endMetadata()
.withNewSpec()
.addNewPort()
.withProtocol("TCP")
.withPort(80)
.withNewTargetPort(8080)
.endPort()
.addToSelector("key1", "value1")
.withPortalIP("172.30.234.134")
.withType("ClusterIP")
.endSpec()
.build();
Run Code Online (Sandbox Code Playgroud)
如果不需要保存服务对象的引用而您只想创建它,则可以将其内联为:
client.services().createNew()
.withNewMetadata()
.withName("myservice")
.endMetadata()
.withNewSpec()
.addNewPort()
.withProtocol("TCP")
.withPort(80)
.withNewTargetPort(8080)
.endPort()
.addToSelector("key1", "value1")
.withPortalIP("172.30.234.134")
.withType("ClusterIP")
.endSpec()
.done();
Run Code Online (Sandbox Code Playgroud)
JSON等效的更紧凑,因为可以提交默认值,也可以选择内联一些像选择器这样的内容.
这不仅适用于Service,也适用于每一个Kubernetes/Openshift资源.
如果您有JSON或YAML,则可以通过向客户端提供输入流来轻松加载它们:
Service service = client.services().load(inputStream).get();
Run Code Online (Sandbox Code Playgroud)
这里有更多选项,比如直接创建服务:
Service newService = client.services().load(inputStream).create();
Run Code Online (Sandbox Code Playgroud)
无论lang,格式如何,记住结构始终是相同的总是有帮助的.几乎所有内容都可以内联,因此IDE中的选项卡完成确实非常有用.
| 归档时间: |
|
| 查看次数: |
3212 次 |
| 最近记录: |