如何获取Kubernetes API密钥?

2024-05-18 17:42:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试让Python客户端连接到我的Kubernetes。 我从this问题中获得灵感,最终得出如下结论:

  1. 获取密钥的命令:kubectl describe secret $(kubectl get secrets | grep default | cut -f1 -d ' ') | grep -E '^token' | cut -f2 -d':' | tr -d '\t'

  2. 一个让名称空间检查一切是否正常的小程序:

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'))

我怀疑问题是关键,但说实话,我对库伯内特斯不太了解,所以我在这里有点迷茫


Tags: fromimportclientapidefaulthostgrepconfiguration
1条回答
网友
1楼 · 发布于 2024-05-18 17:42:34

您的连接被拒绝,因此您描述的端口和主机上没有任何内容正在侦听。 由于kubectl可以工作,只需在程序中使用相同的设置:

kubectl config view

显示当前上下文的配置,使用为您的程序打印的server

相关问题 更多 >

    热门问题