在 python openshift rest 客户端中使用 load_incluster_config 时如何修复 'No such file or directory: '/home/jenkins/.kube/config''

How to fix 'No such file or directory: '/home/jenkins/.kube/config'' when using load_incluster_config in python openshift rest client

我写了一个脚本来检查 OpenShift 集群中的一些秘密。我为 Openshift 使用了 python rest-client 库,脚本在集群内执行。但我总是得到 IOError: [Errno 2] No such file or directory: '/home/jenkins/.kube/config'

我知道我在 pod 中没有 kube 配置,因此我尝试使用 kubernetes.config.load_incluster_config() 方法启用集群配置。

from kubernetes import client, config
from openshift.dynamic import DynamicClient

config.load_incluster_config()

k8s_client = config.new_client_from_config()
dyn_client = DynamicClient(k8s_client)

我假设不再需要通过 load_incluster_config 调用提供 kube 配置。有人使用服务帐户解决了集群执行中其余客户端和 openshift 的问题吗?

感谢任何帮助,谢谢。

我的意思是,您可能已经检查过了,但确定您在正确的目录中吗?因为 运行 来自错误目录的文件会导致 "No such file or directory".

的错误

我用以下方法解决了它:

if os.getenv('KUBERNETES_SERVICE_HOST'):
    config.load_incluster_config()
else:
    config.load_kube_config()

dyn_client = DynamicClient(ApiClient())

ApiClient 使用默认配置。