我想使用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列表,但出现以下错误:
回溯(最近一次通话最后一次):文件“ test.py”,第4行,在 config.load_kube_config()文件“ /Users//works/test-kube-api-python/env/lib/python2.7/site-packages/kubernetes/config/kube_config.py”, 在load_kube_config中的第661行 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”, _load_authentication中的第203行 如果self._load_auth_provider_token():文件“ /Users//works/test-kube-api-python/env/lib/python2.7/site-packages/kubernetes/config/kube_config.py”, _load_auth_provider_token中的第221行 返回self._load_azure_token(提供者)文件“ /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”, _refresh_azure_token中的第253行 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”, _acquire_token中的第128行 返回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,无,client_secret)文件 “ /Users//works/test-kube-api-python/env/lib/python2.7/site-packages/adal/token_request.py”, _get_token_with_refresh_token中的第340行 返回self._oauth_get_token(oauth_parameters)文件“ /Users//works/test-kube-api-python/env/lib/python2.7/site-packages/adal/token_request.py”, _oauth_get_token中的第112行 返回client.get_token(oauth_parameters)文件“ /Users//works/test-kube-api-python/env/lib/python2.7/site-packages/adal/oauth2_client.py”, 第291行,在get_token中 引发AdalError(return_error_string,error_response)adal.adal_error.AdalError:获取令牌请求返回的HTTP错误:400 和服务器响应: {“错误”:“ invalid_grant”,“错误描述”:“ AADSTS65001:用户或 管理员不同意使用ID为的应用程序 ''名为'Kubernetes AD客户端 '。发送对此用户的交互式授权请求,然后 资源。\ r \ n跟踪ID: \ r \ n相关ID: \ r \ n时间戳:2019年10月14日 12:32:35Z“,”错误代码“:[65001],”时间戳“:” 2019-10-14 12:32:35Z“,” trace_id“:”“,” correlation_id“:”“,” suberror“:” consent_required“}
我真的不明白为什么它不起作用。
当我使用kubectl时,一切正常。
我阅读了一些文档,但是我不确定是否会理解adal错误。
感谢您的帮助
答案 0 :(得分:0)
如果您不是租户管理员,则不能征得管理员同意
来自https://github.com/Azure-Samples/active-directory-angularjs-singlepageapp-dotnet-webapi/issues/19