我正在尝试让Python客户端连接到我的Kubernetes。 我从this问题中获得灵感,最终得出如下结论:
获取密钥的命令:kubectl describe secret $(kubectl get secrets | grep default | cut -f1 -d ' ') | grep -E '^token' | cut -f2 -d':' | tr -d '\t'
一个让名称空间检查一切是否正常的小程序:
from kubernetes import client, config
from kubernetes.client.rest import ApiException
ApiToken = 'eyJhbGciOiJSUzI1NiIsImtpZCI6IlREcVNGVXhTUEljWFBxR0RseV84ZUxPWnlkOG1Fcm8wUVlqOWE0WTV6cUEifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImRlZmF1bHQtdG9rZW4tZzZ4Z2oiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZGVmYXVsdCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6Ijk1OGM3MTNhLTU1NTQtNGNkOS1hNGNlLTNkNThhZDE0Mjg5NyIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDpkZWZhdWx0OmRlZmF1bHQifQ.gPD7NZdD3isvRHTfomAZXfHQr7NtNk0RCtaeDFVseiPunCRq41vyTdDMg5dVY4fAlXscUXs-M26IA6UgurIzvAsVFo8V2a2W8pPwfwAiKW1oYL_tTKu2GszndgdiKOMZvfSyS5-V85eb7QyC_U40cRlfw8hKf7WDlERCZIy77GUegkA2cfpXZNVfmbYiPF8fji5DhWRMocHunCH-1mk80E9b3-uwu5zWJbSwjosU8mCBXzUUBbUYAiN_BkL1_7wno8HVAMDYmDd1skGqaPiXBOQc9rYnisyA8QmnM9urib3jO7H0KEzmK_oHSqpqXBClYICz6_LW7VzBfxgaChfDRQ'
configuration = client.Configuration()
configuration.host = '127.0.0.1:8001'
configuration.verify_ssl=False
configuration.debug = True
configuration.api_key={"authorization":"Bearer "+ ApiToken}
client.Configuration.set_default(configuration)
kubeApi = client.CoreV1Api()
try:
namespaces = kubeApi.list_namespace()
print (namespaces)
except ApiException as e:
print("Exception when calling CoreV1Api->list_pod_for_all_namespaces: %s\n" % e)
但我明白了:
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='127.0.0.1', port=8001): Max retries exceeded with url: /api/v1/namespaces (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7ff09e174880>: Failed to establish a new connection: [Errno 111] Connection refused'))
我怀疑问题是关键,但说实话,我对库伯内特斯不太了解,所以我在这里有点迷茫
您的连接被拒绝,因此您描述的端口和主机上没有任何内容正在侦听。 由于kubectl可以工作,只需在程序中使用相同的设置:
kubectl config view
显示当前上下文的配置,使用为您的程序打印的
server
相关问题 更多 >
编程相关推荐