我在 2 个区域有 2 个 kubernetes 集群
2个kubeconfig文件分别是kube1.kubeconfig和kube2.kubeconfig
我正在使用 python 使用 kubernetes-client python 调用 kubernetes 集群
我看到它将从 env KUBECONFIG加载配置
但我的程序需要将 API 推送到 2 个不同的集群
那么有没有办法解决这些问题:
示例代码:
if <condiation a>:
(load kube1.kubeconfig)
(process my code)
elif <condition b>:
(load kube2.kubeconfig)
(process my code)
Run Code Online (Sandbox Code Playgroud)
您可以kubeconfig使用new_client_from_config_dict函数从不同的客户端创建单独的客户端。这为您提供了 2 个独立的客户端,而无需全局加载配置:
def make_k8s_client(kubeconfig: dict) -> kubernetes.client.CoreV1Api:
api_client = kubernetes.config.new_client_from_config_dict(kubeconfig)
return kubernetes.client.CoreV1Api(api_client)
with open('kubeconfig.yaml') as f:
kubeconfig = yaml.safe_load(f)
k8s_1 = make_k8s_client(kubeconfig)
# a different config
with open('kubeconfig2.yaml') as f:
kubeconfig2 = yaml.load(f)
k8s_2 = make_k8s_client(kubeconfig2)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5753 次 |
| 最近记录: |