You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Kubernetes Python客户端调用list_namespaced_ingress报AttributeError

解决Kubernetes Python客户端调用Ingress API的AttributeError问题

问题核心原因

你遇到的AttributeError: 'NetworkingV1Api' object has no attribute 'list_namespaced_ingress'错误,本质是Kubernetes Python客户端版本与集群API版本不兼容,或是客户端版本自身的API方法命名差异导致。

排查与解决步骤

1. 检查当前Python客户端版本

先确认已安装的客户端版本,执行命令:

pip show kubernetes
  • 若版本低于v12.0.0,NetworkingV1Api尚未被纳入稳定API组,直接升级客户端:
    pip install --upgrade kubernetes
    

2. 确认集群支持的Ingress API版本

在kubectl环境执行命令,查看集群支持的Ingress API组:

kubectl api-resources | grep ingress
  • 输出含ingresses ing networking.k8s.io/v1:集群支持networking.k8s.io/v1稳定版;
  • 输出含ingresses ing extensions/v1beta1:集群使用旧beta版API。

3. 匹配API版本调整代码

情况1:集群支持networking.k8s.io/v1稳定版

确保客户端版本≥v12.0.0,检查方法名拼写无误后,使用以下代码:

from kubernetes import client, config
import os

# 替换为你的目标命名空间
ns1 = "your-namespace"

config.load_kube_config(
    config_file=os.environ.get("KUBECONFIG", 'my-cluster.config'),
    context=os.environ.get("KUBECONTEXT")
)

v1 = client.NetworkingV1Api()
ingress_list = v1.list_namespaced_ingress(namespace=ns1)
print(ingress_list)

情况2:集群使用extensions/v1beta1旧beta版

改用ExtensionsV1beta1Api调用对应方法:

from kubernetes import client, config
import os

ns1 = "your-namespace"

config.load_kube_config(
    config_file=os.environ.get("KUBECONFIG", 'my-cluster.config'),
    context=os.environ.get("KUBECONTEXT")
)

v1_ext = client.ExtensionsV1beta1Api()
ingress_list = v1_ext.list_namespaced_ingress(namespace=ns1)
print(ingress_list)

4. 额外排查点

  • 确认代码中ns1变量已正确定义,避免间接错误;
  • 若升级客户端后仍报错,尝试卸载重装清理缓存:
    pip uninstall -y kubernetes
    pip install kubernetes
    

内容的提问来源于stack exchange,提问作者Venu Madhav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 21:35:04