我想从 IBM Cloud Function 连接到 Kubernetes 容器,以便 Cloud Function 可以查询同一资源组中 Kubernetes 集群中的 Rest API。Kubernetes 集群禁用了公共 IP,只有私有 IP 已启用。
我该如何解决这个问题?
有很多方法可以访问 Kubernetes Api,你可以在这里阅读我认为大多数方法。
我只会提到一些可能对你的情况有用的。
一种是使用可以使用pip install kubernetes
安装的python客户端。 有关库的更多信息,您应该查看此页面。
你需要通过 IBM Cloud Function 从 Kubernetes 集群复制 kubeconfig ffly,一旦完成,你的基本代码可能如下所示:
from kubernetes import client, config
config.load_kube_config()
v1=client.CoreV1Api()
print("Listing pods with their IPs:")
ret = v1.list_pod_for_all_namespaces(watch=False)
for i in ret.items:
print("%st%st%s" % (i.status.pod_ip, i.metadata.namespace, i.metadata.name))
你可以在他们的GitHub页面上找到更多Python的例子。
还有其他库,如Java客户端,dotnet客户端,JavaScript客户端。
官方库的完整列表可在客户端库上找到,他们也提到了社区维护的库。