Kubernetes Python客户端连接问题

时间:2019-04-18 08:57:20

标签: python-3.x kubernetes kubectl kubernetes-python-client

我已经设置了官方Kubernetes Python客户端(https://github.com/kubernetes-client/python)。

我正在运行Python代码以连接到Kubernetes集群,并且抛出错误

  

urllib3.exceptions.MaxRetryError:HTTPSConnectionPool(host ='****',port = 6443):url超过了最大重试次数:/ api / v1 /命名空间/ default / pods(由NewConnectionError(':导致失败建立新的连接:[Errno 110]连接超时',))

已安装的要求:

cachetools        3.1.0 ,
certifi           2019.3.9 ,
chardet           3.0.4 , 
google-auth       1.6.3 ,
idna              2.8 ,
ipaddress         1.0.22 ,
kubernetes        10.0.0-snapshot ,
oauthlib          3.0.1 ,
pip               19.0.3 ,
pyasn1            0.4.5 ,
pyasn1-modules    0.2.4 ,
python-dateutil   2.8.0 ,
PyYAML            5.1 ,
requests          2.21.0 ,
requests-oauthlib 1.2.0 ,
rsa               4.0 ,
setuptools        41.0.0 ,
six               1.12.0 ,
urllib3           1.24.1 ,
websocket-client  0.56.0 ,
wheel             0.33.1 

kubectl在相同的配置$HOME/.kube/config和相同的代理设置下可以正常工作。

下面是我的代码:

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)

2 个答案:

答案 0 :(得分:0)

就我而言,仅通过load_kube_config加载配置也无法正常工作。我最终首先运行了代理:

kubectl proxy --port=8888

,然后使用Configuration对象更改主机:

configuration = client.Configuration()
configuration.host = "localhost:8888"
api_client = client.CoreV1Api(client.ApiClient(configuration))

答案 1 :(得分:0)

您需要为您的客户端指定主机 ID。您可以在 AI Platform Pipelines >> 设置中找到它。代码将类似于:

{{1}}