是否有 fabric8 API(对于 kubernetes)来观察与服务相关的事件并找到它的 public IP?
is there a fabric8 API (for kubernetes) to watch events associated w/ a service and find its public IP?
我最近开始研究使用 fabric8 管理容器的代码库,pods,
kubernetes 中的服务等。
为给定的 pod 创建服务后,我需要通知我们的最终用户外部
他们可以通过其访问所述服务的 IP。
从命令行 (kubectl),我会做一个描述,并得到这样的输出
kubectl describe service spark-master
Name: spark-master
Namespace: 5683616f16426028459a535c
Labels: group=krylov-dev,name=spark-master
Selector: name=spark-master
Type: LoadBalancer
IP: 10.0.0.103
Port: 7077 7077/TCP
NodePort: 7077 31988/TCP
Endpoints: 172.17.0.2:7077
Port: 7070 7070/TCP
NodePort: 7070 32539/TCP
Endpoints: 172.17.0.2:7070 <<- this is what i want!
Session Affinity: None
No events.
我使用 wireshark 来跟踪 REST API 调用,这些调用是在上述情况下进行的
命令运行,原始 Kubernetes REST API 似乎通过 URL 访问上述信息
像这样
GET /api/v1/namespaces/my_namespace_whatever/endpoints/spark-master
因此,理论上我可以通过原始 Kubernetes REST API 获得我想要的信息。但自从我们
正在使用 fabric8,如果有任何方法可以做到这一点,我宁愿坚持下去
与他们 API。
我看到 class 携带有关 fabric8 端点的信息
( io.fabric8.kubernetes.api.model.Endpoints),但我搜索过但找不到文档
关于如何查询服务的端点信息。
此外,当使用 fabric8 API 来观察我们已经尝试过的事件时
查看 service.getStatus.getLoadBalancer.getIngress() (每当我们得到
a 与我们的服务相关的事件),但这总是空的 ;^(
如有任何提示或指导,我们将不胜感激....
-克里斯
Fabric8 客户端有以下 API 调用:
client.endpoints().get();
这将为您提供所有端点的列表。现在有一些方法可以将您收到的列表限制为特定的 namespace/labels 使用:
client.endpoints().inNamespace("5683616f16426028459a535c").withLabel("name", "spark-master").list();
我最近开始研究使用 fabric8 管理容器的代码库,pods, kubernetes 中的服务等。
为给定的 pod 创建服务后,我需要通知我们的最终用户外部 他们可以通过其访问所述服务的 IP。
从命令行 (kubectl),我会做一个描述,并得到这样的输出
kubectl describe service spark-master
Name: spark-master
Namespace: 5683616f16426028459a535c
Labels: group=krylov-dev,name=spark-master
Selector: name=spark-master
Type: LoadBalancer
IP: 10.0.0.103
Port: 7077 7077/TCP
NodePort: 7077 31988/TCP
Endpoints: 172.17.0.2:7077
Port: 7070 7070/TCP
NodePort: 7070 32539/TCP
Endpoints: 172.17.0.2:7070 <<- this is what i want!
Session Affinity: None
No events.
我使用 wireshark 来跟踪 REST API 调用,这些调用是在上述情况下进行的 命令运行,原始 Kubernetes REST API 似乎通过 URL 访问上述信息 像这样
GET /api/v1/namespaces/my_namespace_whatever/endpoints/spark-master
因此,理论上我可以通过原始 Kubernetes REST API 获得我想要的信息。但自从我们 正在使用 fabric8,如果有任何方法可以做到这一点,我宁愿坚持下去 与他们 API。
我看到 class 携带有关 fabric8 端点的信息
( io.fabric8.kubernetes.api.model.Endpoints),但我搜索过但找不到文档
关于如何查询服务的端点信息。
此外,当使用 fabric8 API 来观察我们已经尝试过的事件时 查看 service.getStatus.getLoadBalancer.getIngress() (每当我们得到 a 与我们的服务相关的事件),但这总是空的 ;^(
如有任何提示或指导,我们将不胜感激.... -克里斯
Fabric8 客户端有以下 API 调用:
client.endpoints().get();
这将为您提供所有端点的列表。现在有一些方法可以将您收到的列表限制为特定的 namespace/labels 使用:
client.endpoints().inNamespace("5683616f16426028459a535c").withLabel("name", "spark-master").list();