Windows系统下如何通过Azure CLI同时连接生产与非生产AKS环境
同时连接生产/非生产AKS环境的实用方案
作为AKS新手,不用每次重命名kubeconfig文件,有以下几种高效方法:
方法1:合并Kube Config文件(推荐)
把两个环境的配置合并到一个文件里,通过上下文切换快速切换环境:
- 把你的生产配置命名为
config-prod、非生产配置命名为config-nonprod,都放在C:\Users\foo\.kube目录下 - 打开PowerShell,进入该目录:
cd C:\Users\foo\.kube - 执行合并命令(会覆盖原
config文件,建议先备份):kubectl config view --merge --kubeconfig=config-prod --kubeconfig=config-nonprod > config - 查看所有可用上下文:
你会看到两个环境的上下文条目,名称一般是AKS集群名加订阅信息kubectl config get-contexts - 切换到生产环境:
kubectl config use-context <生产环境上下文名称> - 切换到非生产环境:
kubectl config use-context <非生产环境上下文名称> - (可选)给上下文改个好记的名字,比如:
之后切换只需输入kubectl config rename-context <原冗长名称> prod-aks kubectl config rename-context <原冗长名称> nonprod-akskubectl config use-context prod-aks
方法2:用环境变量指定配置文件
不想合并文件的话,可以通过临时设置环境变量指定要使用的kubeconfig:
- 在PowerShell中切换到生产环境:
$env:KUBECONFIG="C:\Users\foo\.kube\config-prod" - 切换到非生产环境:
$env:KUBECONFIG="C:\Users\foo\.kube\config-nonprod"
注意:这个设置只在当前PowerShell窗口生效,关闭窗口后会重置。如果要永久生效,可以在系统环境变量中添加
KUBECONFIG,但这样同一时间只能用一个环境,灵活性不如合并配置。
方法3:用Azure CLI直接管理AKS上下文(最省心)
利用Azure CLI自动获取并管理两个环境的上下文,不用手动维护kubeconfig文件:
- 登录Azure CLI后,切换到生产订阅:
az account set --subscription <生产订阅ID/名称> - 获取生产AKS的上下文并添加到kubeconfig:
az aks get-credentials --resource-group <生产资源组名称> --name <生产AKS集群名称> --overwrite-existing - 切换到非生产订阅:
az account set --subscription <非生产订阅ID/名称> - 获取非生产AKS的上下文:
az aks get-credentials --resource-group <非生产资源组名称> --name <非生产AKS集群名称> --overwrite-existing - 之后同样用
kubectl config get-contexts查看上下文,用kubectl config use-context切换即可。Azure CLI会自动更新凭证,避免手动维护配置的麻烦。
额外小技巧
可以在PowerShell里定义快捷函数,一键切换环境:
function kube-prod { kubectl config use-context prod-aks } function kube-nonprod { kubectl config use-context nonprod-aks }
保存到你的PowerShell配置文件($PROFILE)里,之后直接输入kube-prod或kube-nonprod就能快速切换。
内容的提问来源于stack exchange,提问作者Deep Dalsania
相关产品推荐
相关产品推荐

