使用 python k8 的 api 客户端库获取所有正确的命名空间和入口路由
get all the proper namespaces and ingressroutes with the python k8's api client library
我在下面有以下命令行。它给了我命名空间和入口路由名称(参见下面的示例)
kubectl --context mlf-eks-dev get --all-namespaces ingressroutes
例子
NAMESPACE NAME AGE
aberdeentotalyes aberdeentotalgeyes-yesgepi 98d
我正在尝试通过我的 python 代码复制上面的 kubetl 命令行,使用 kubernetes 的 python 客户端,但我错过了关于如何获取入口路由的选项。
#My python code
from kubernetes import client, config
# Configs can be set in Configuration class directly or using helper utility
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("%s\t%s" % (i.metadata.namespace, i.metadata.name))
结果如下
wwwpaulolo ci-job-backup-2kt6f
wwwpaulolo wwwpaulolo-maowordpress-7dddccf44b-ftpbq
wwwvhugo ci-job-backup-dz5hs
wwwvhugo wwwvhua-maowordpress-5f7bdfdccd-v7kcx
我有命名空间但没有入口路由,因为我不知道如何获得它。
问题是进入路由的选项是什么?
我们非常欢迎任何帮助。
干杯
仔细阅读了documentation现有的ingressroutes API,发现none可以使用,由于Ingressroutes不是其原生组件,所以都还处于beta阶段Kubernetes.
我还在 Slack 的 Kubernetes 上问过,在 Kubernetes 客户端频道上。
Alan C 在 Kubernetes 的 slack 上给了我这样的答案:
There's no class for ingressroutes. You can use the dynamic client to
support arbitrary resource types (see link)
我的解决方案是使用 python 库 subprocess
到 运行 kubectl
命令行。
您尝试过 CustomObjectsApi 吗?
from kubernetes import client, config
config.load_kube_config()
api = client.CustomObjectsApi()
dir(api) # check for list_cluster_custom_object
#example below api will list all issuers in the cluster.
#issuer is custom resource of cert-manager.io
api.list_cluster_custom_object(group="cert-manager.io",
version="v1",plural="issuers")
我在下面有以下命令行。它给了我命名空间和入口路由名称(参见下面的示例)
kubectl --context mlf-eks-dev get --all-namespaces ingressroutes
例子
NAMESPACE NAME AGE
aberdeentotalyes aberdeentotalgeyes-yesgepi 98d
我正在尝试通过我的 python 代码复制上面的 kubetl 命令行,使用 kubernetes 的 python 客户端,但我错过了关于如何获取入口路由的选项。
#My python code
from kubernetes import client, config
# Configs can be set in Configuration class directly or using helper utility
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("%s\t%s" % (i.metadata.namespace, i.metadata.name))
结果如下
wwwpaulolo ci-job-backup-2kt6f
wwwpaulolo wwwpaulolo-maowordpress-7dddccf44b-ftpbq
wwwvhugo ci-job-backup-dz5hs
wwwvhugo wwwvhua-maowordpress-5f7bdfdccd-v7kcx
我有命名空间但没有入口路由,因为我不知道如何获得它。
问题是进入路由的选项是什么?
我们非常欢迎任何帮助。
干杯
仔细阅读了documentation现有的ingressroutes API,发现none可以使用,由于Ingressroutes不是其原生组件,所以都还处于beta阶段Kubernetes.
我还在 Slack 的 Kubernetes 上问过,在 Kubernetes 客户端频道上。
Alan C 在 Kubernetes 的 slack 上给了我这样的答案:
There's no class for ingressroutes. You can use the dynamic client to support arbitrary resource types (see link)
我的解决方案是使用 python 库 subprocess
到 运行 kubectl
命令行。
您尝试过 CustomObjectsApi 吗?
from kubernetes import client, config
config.load_kube_config()
api = client.CustomObjectsApi()
dir(api) # check for list_cluster_custom_object
#example below api will list all issuers in the cluster.
#issuer is custom resource of cert-manager.io
api.list_cluster_custom_object(group="cert-manager.io",
version="v1",plural="issuers")