我在2个区域中有2个Kubernetes集群
2个kubeconfig文件为kube1.kubeconfig和kube2.kubeconfig
我使用python调用kubernetes集群使用kubernetes-client python
我看到它将从envKUBECONFIG加载配置
但我的程序需要推动API到2个不同的集群
那么有没有办法解决这些问题:
示例代码:
if <condiation a>:
(load kube1.kubeconfig)
(process my code)
elif <condition b>:
(load kube2.kubeconfig)
(process my code)
3条答案
按热度按时间bbmckpt71#
您可以使用
new_client_from_config_dict
函数从不同的kubeconfig
创建单独的客户端。这为您提供了2个独立的客户端,而无需全局加载配置:mo49yndu2#
对于
kubectl
,通常的方法是将所有kubeconfig
文件合并为一个kubeconfig
文件,然后使用上下文API在上下文/集群kubectl config use-context my-context-1
或kubectl config use-context my-context-2
之间切换。看看python kubernetes-client,你可以做同样的事情:kubeconfig
文件,您可以查看How to merge kubectl config file with ~/.kube/config?。tpgth1q73#
python Kubernetes库提供以下功能:https://github.com/kubernetes-client/python-base/blob/09dbbe521e203634154764b903208bb28cd70f9d/config/kube_config.py#L796
你可以这样使用它:
您还可以指定在同一个kubeconfig文件中有多个上下文的情况下使用kubeconfig文件中的哪个上下文。
所以如果你想保持kubeconfig文件独立,这是另一种方法。