我有下面的命令行。它给了我命名空间和入口路由的名字(见下面的例子)
kubectl --context mlf-eks-dev get --all-namespaces ingressroutes
NAMESPACE NAME AGE
aberdeentotalyes aberdeentotalgeyes-yesgepi 98d
我试图通过我的python代码复制上面的kubetl命令行,使用kubernetes的python客户端,但我错过了如何获取ingressroutes的选项。
#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("%st%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
我有名称空间,但没有入口路由,因为我不知道如何得到它。
问题是有ingress路由的选项是什么,请问?
欢迎任何帮助。
欢呼仔细阅读了现有的ingressroutes api的文档后,我发现没有一个可以使用,它们都还在测试阶段,因为ingressroutes不是Kubernetes的原生组件。
我还在Slack的Kubernetes客户端频道上问过。
Alan C在Kubernetes的slack上给了我这个答案:
没有ingressroutes类。您可以使用动态客户端来支持任意资源类型(见链接)
我的解决方案是使用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")