【发布时间】:2020-02-11 02:24:53
【问题描述】:
我想使用 python kubernetes-client 连接到我的 AKS 集群 api。
为此,我尝试使用 kubernetes 给出的示例:
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\t%s" % (i.status.pod_ip, i.metadata.namespace, i.metadata.name))
它应该加载我的本地 kubeconfig 并获取一个 pod 列表,但我收到以下错误:
Traceback(最近一次调用最后一次):文件“test.py”,第 4 行,在 config.load_kube_config() 文件“/Users//works/test-kube-api-python/env/lib/python2.7/site-packages/kubernetes/config/kube_config.py”, 第 661 行,在 load_kube_config 中 loader.load_and_set(config) 文件“/Users//works/test-kube-api-python/env/lib/python2.7/site-packages/kubernetes/config/kube_config.py”, 第 469 行,在 load_and_set self._load_authentication() 文件“/Users//works/test-kube-api-python/env/lib/python2.7/site-packages/kubernetes/config/kube_config.py”, 第 203 行,在 _load_authentication 如果 self._load_auth_provider_token(): 文件 "/Users//works/test-kube-api-python/env/lib/python2.7/site-packages/kubernetes/config/kube_config.py", 第 221 行,在 _load_auth_provider_token 中 返回 self._load_azure_token(provider) 文件“/Users//works/test-kube-api-python/env/lib/python2.7/site-packages/kubernetes/config/kube_config.py”, 第 233 行,在 _load_azure_token 中 self._refresh_azure_token(provider['config']) 文件 "/Users//works/test-kube-api-python/env/lib/python2.7/site-packages/kubernetes/config/kube_config.py", 第 253 行,在 _refresh_azure_token 中 refresh_token, client_id, '00000002-0000-0000-c000-000000000000') 文件 "/Users//works/test-kube-api-python/env/lib/python2.7/site-packages/adal/authentication_context.py", 第 236 行,在 acquire_token_with_refresh_token 中 返回 self._acquire_token(token_func) 文件“/Users//works/test-kube-api-python/env/lib/python2.7/site-packages/adal/authentication_context.py”, 第 128 行,在 _acquire_token 中 返回 token_func(self) 文件“/Users//works/test-kube-api-python/env/lib/python2.7/site-packages/adal/authentication_context.py”, 第 234 行,在 token_func 中 返回 token_request.get_token_with_refresh_token(refresh_token, client_secret) 文件 "/Users//works/test-kube-api-python/env/lib/python2.7/site-packages/adal/token_request.py", 第 343 行,在 get_token_with_refresh_token 返回 self._get_token_with_refresh_token(refresh_token, None, client_secret) 文件 "/Users//works/test-kube-api-python/env/lib/python2.7/site-packages/adal/token_request.py", 第 340 行,在 _get_token_with_refresh_token 返回 self._oauth_get_token(oauth_parameters) 文件“/Users//works/test-kube-api-python/env/lib/python2.7/site-packages/adal/token_request.py”, 第 112 行,在 _oauth_get_token 中 返回client.get_token(oauth_parameters)文件“/Users//works/test-kube-api-python/env/lib/python2.7/site-packages/adal/oauth2_client.py”, 第 291 行,在 get_token 中 raise AdalError(return_error_string, error_response) adal.adal_error.AdalError: Get Token request returned http error: 400 和服务器响应: {"error":"invalid_grant","error_description":"AADSTS65001: 用户或 管理员未同意使用带有 ID 的应用程序 '' 命名为 'Kubernetes AD 客户端 '。为该用户发送交互式授权请求,并 资源。\r\n跟踪 ID: \r\n相关 ID: \r\n时间戳:2019-10-14 12:32:35Z","error_codes":[65001],"timestamp":"2019-10-14 12:32:35Z","trace_id":"","correlation_id":"","suberror":"consent_required"}
我真的不明白为什么它不起作用。
当我使用 kubectl 时,一切正常。
我阅读了一些文档,但不确定是否理解 adal 错误。
感谢您的帮助
【问题讨论】:
标签: python kubernetes azure-aks