【问题标题】:kubernetes integration with pythonKubernetes 与 python 的集成
【发布时间】:2019-09-06 18:56:32
【问题描述】:

如何使用 Python 获取启用 RBAC 的 kubernetes 中的命名空间列表。

我已经在我的 Windows 中配置了 kubernetes,并且我有包含集群信息的配置文件。运行 kubectl 代理后,我可以启动 UI 仪表板。它需要令牌,一旦我添加了访问令牌,我就可以获取命名空间和 pod 详细信息。令牌在 60 分钟内过期后一次。

再次,UI 仪表板正在询问新的令牌详细信息。一旦我提供了新的访问令牌,它就会给出

403 未经授权的错误。

谁能帮助我为什么我的新访问令牌无法识别

在给出新的访问令牌后访问命名空间、pods

【问题讨论】:

    标签: python kubernetes


    【解决方案1】:

    访问令牌通常与Service Account 相关联。可能是您最初使用的服务帐号已不存在。

    您可能正在使用看起来像这样的Bootstrap Token:781292.db7bc3a58fc5f07e 如果是这种情况,这些将在 60 分钟后过期,您将不得不生成一个新的。假设您使用 kubeadm 创建了集群,您可以像这样重新生成它:

    $ kubeadm token generate
    

    【讨论】:

      【解决方案2】:

      为了访问K8s资源,最好创建Service Account,获取token并访问。例如,看看这个Service Accountmanifest file,指定必要的RoleBinding/ClusterRolebinding并创建Service Account

      完成后,使用此shell script 生成 kubeconfig 文件,其中包含您的服务帐户令牌(在前面的步骤中创建)

      使用 kubeconfig 文件以编程方式访问 kubernetes 资源

      【讨论】:

        【解决方案3】:

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

        你还可以使用类似的代码:

            import kubernetes, os, sys
            kubernetes.config.load_incluster_config()
        
        
            v1 = kubernetes.client.CoreV1Api()
        

        【讨论】:

          猜你喜欢
          • 2018-07-03
          • 1970-01-01
          • 2018-10-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-04-15
          相关资源
          最近更新 更多