Python与Kubernetes集成

4
如何使用Python在启用RBAC的Kubernetes中获取命名空间列表。
我已在Windows上配置了Kubernetes,并拥有包含集群信息的配置文件。运行kubectl代理后,我可以启动UI仪表板。它需要令牌,一旦添加访问令牌,我就能够获取命名空间和Pod详细信息。一旦令牌在60分钟后过期,UI仪表板会再次要求新的令牌详细信息。
一旦提供新的访问令牌,它会给出403未授权错误。有人可以帮助我解决为何我的新访问令牌未被识别的问题吗?
在提供新的访问令牌后访问命名空间和Pod。
3个回答

2
访问令牌通常与Service Account相关联。可能是您最初使用的服务帐户已不再存在。
也可能是您正在使用类似于781292.db7bc3a58fc5f07e这样的引导令牌,如果是这种情况,则在60分钟后过期,您将需要生成一个新的引导令牌。假设您使用kubeadm创建了集群,则可以像这样重新生成它:
$ kubeadm token generate

1
为了访问K8s资源,最好创建“Service Account”,获取令牌并进行访问。例如,请查看此“Service Account”清单文件,指定必要的“RoleBinding”/“ClusterRolebinding”并创建“Service Account”。
完成后,使用此shell脚本生成包含您的服务帐户令牌(在前一步骤中创建)的kubeconfig文件。
使用该“kubeconfig”文件以编程方式访问kubernetes资源。

0

如果您想从 Pod 内部访问 Kubernetes API,可以创建一个服务账户并授予该账户访问权限。

此外,您可以使用类似以下代码的内容:

    import kubernetes, os, sys
    kubernetes.config.load_incluster_config()


    v1 = kubernetes.client.CoreV1Api()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接