如何通过 Kubernetes C# 客户端查找现有服务 API
How to find existing service by Kubernetes C# client API
我在 K3s Orchestrator 上有 KubernetesClient 代码 运行 我的应用程序。我已经为 app-module
命名空间创建了服务 prog
、prog-external
和 my-module
,这些端口现在可以在 kubectl get svc -A
[=33= 中看到] 命令:
root@Ubuntu20-VM:~# kubectl get svc -A
NAMESPACE NAME TYPE CLUSTER-IP PORT(S) AGE
default kubernetes ClusterIP 10.43.0.1 443/TCP 86m
kube-system kube-dns ClusterIP 10.43.0.10 53/UDP,53/TCP,9153/TCP 86m
kube-system metrics-server ClusterIP 10.43.4.133 443/TCP 86m
app-module prog ClusterIP 10.43.175.255 9008/TCP,9009/UDP,9001/TCP 64m
app-module prog-external NodePort 10.43.108.249 9000:30001/TCP,9001:30002/TCP 64m
app-module my-module ClusterIP 10.43.23.30 9008/TCP,9009/UDP,9001/TCP 64m
有人可以告诉我 KubernetesClient 到 find/get 论文服务中是否有 API 吗?请提出建议。
PS: 我认为 API ListNamespacedServiceWithHttpMessagesAsync will return all pods config for namespace app-module
, but I only want those pods config in app-module
NS for which I created services ,这里是:prog
, prog-external
& my-module
。如果我的理解有误,请指正?
您无法通过一次 Kubernetes API 调用(Kubernetes C# 库中的一次函数调用)获取与服务(在命名空间中)相关的所有 pods。
您需要执行以下操作:
- 列出所有服务(按 namespace/name 过滤)
- 列出所有端点/端点切片(与您在第 1 点中获取的服务相关。)
- 列出所有 Pods(与第 2 点的端点/端点切片相关。)
您可以将 service -> pod 视为一种单向关系。所以服务指向 pods(通过端点),但是 pod 对服务一无所知
实现您想要的目标的一种对 Kubernetes 更友好的方法是实际标记您的资源。因此,在您的 services/pods 中保持一致的标签,然后按标签列出您的资源。
我在 K3s Orchestrator 上有 KubernetesClient 代码 运行 我的应用程序。我已经为 app-module
命名空间创建了服务 prog
、prog-external
和 my-module
,这些端口现在可以在 kubectl get svc -A
[=33= 中看到] 命令:
root@Ubuntu20-VM:~# kubectl get svc -A
NAMESPACE NAME TYPE CLUSTER-IP PORT(S) AGE
default kubernetes ClusterIP 10.43.0.1 443/TCP 86m
kube-system kube-dns ClusterIP 10.43.0.10 53/UDP,53/TCP,9153/TCP 86m
kube-system metrics-server ClusterIP 10.43.4.133 443/TCP 86m
app-module prog ClusterIP 10.43.175.255 9008/TCP,9009/UDP,9001/TCP 64m
app-module prog-external NodePort 10.43.108.249 9000:30001/TCP,9001:30002/TCP 64m
app-module my-module ClusterIP 10.43.23.30 9008/TCP,9009/UDP,9001/TCP 64m
有人可以告诉我 KubernetesClient 到 find/get 论文服务中是否有 API 吗?请提出建议。
PS: 我认为 API ListNamespacedServiceWithHttpMessagesAsync will return all pods config for namespace app-module
, but I only want those pods config in app-module
NS for which I created services ,这里是:prog
, prog-external
& my-module
。如果我的理解有误,请指正?
您无法通过一次 Kubernetes API 调用(Kubernetes C# 库中的一次函数调用)获取与服务(在命名空间中)相关的所有 pods。
您需要执行以下操作:
- 列出所有服务(按 namespace/name 过滤)
- 列出所有端点/端点切片(与您在第 1 点中获取的服务相关。)
- 列出所有 Pods(与第 2 点的端点/端点切片相关。)
您可以将 service -> pod 视为一种单向关系。所以服务指向 pods(通过端点),但是 pod 对服务一无所知
实现您想要的目标的一种对 Kubernetes 更友好的方法是实际标记您的资源。因此,在您的 services/pods 中保持一致的标签,然后按标签列出您的资源。