Kubernetes:如何通过windows系统同时连接生产和非生产Azure CLI?

问题描述 投票:0回答:1

我需要通过我的Windows系统同时使用Azure CLI连接生产和非生产环境。我可以访问这两个环境,并且也有两个环境的 kube 配置文件。

我是 AKS 的新手,因此我正在管理系统中的两个文件,并通过重命名其他文件来使用配置文件连接任一环境。例如,我的目录中有两个文件,即

C:\Users\foo\.kube
,文件名为 configconfig-nonprod。现在我使用以下命令登录到 Azure CLI

  • az 登录 --scope foo
  • az账户设置--订阅栏

现在,如果我运行

kubectl get ns
命令,它将列出可用于生产的命名空间,因为我当前的配置文件设置为生产。

现在,如果我想连接非产品环境,那么我只需将当前 config 文件重命名为 config-prod 并将当前 config-nonprod 文件重命名为 config 。如果我运行

kubectl get ns
命令,那么现在它将列出非产品环境的可用命名空间。

我不想每次都做这个练习。我需要任何可以同时连接两个环境的方法。

我们将非常感谢及时的帮助。

azure kubernetes azure-aks azure-cli
1个回答
0
投票

没错,

kubectl
,与 Kubernetes 交互的命令行工具,原生不支持通过单个命令操作多个集群。
KUBECONFIG
环境变量或
--kubeconfig
标志用于为每个操作指定单个集群的配置文件。

但是,您可以在单个

kubeconfig
文件中拥有多个上下文,其中每个上下文对应于不同的集群。您可以在这些上下文之间切换以与不同的集群进行交互。管理和切换上下文-

kubectl config get-contexts
kubectl config use-context <context-name>

通过更改上下文与特定集群交互 -

kubectl config use-context <other-context-name>
kubectl get ns

要使用 Azure CLI 同时连接到多个 Kubernetes 集群,可以使用

KUBECONFIG
环境变量指定多个 kubeconfig 文件。 1. 打开命令提示符并设置
KUBECONFIG
环境变量以包含两个以分号 (;) 分隔的 kubeconfig 文件

set KUBECONFIG=C:\Users\foo\.kube\config;C:\Users\foo\.kube\config-nonprod

运行

az login
命令以针对这两个环境使用 Azure 进行身份验证

az login --scope foo 
az account set --subscription bar

运行

kubectl
命令以与所需环境进行交互,如上所述,使用

kubectl config set-context <context-name> 
kubectl get ns

enter image description here

顺便说一句,为了使切换更加容易,您可以为上下文切换命令创建别名 使用 powershell-

Set-Alias kctx-nonprod "kubectl config use-context <your-nonprod-context-name>"

使用 bash-

alias kctx-nonprod="kubectl config use-context your-nonprod-context-name"

enter image description here

现在您只需调用

kctx-nonprod
kctx-prod
即可快速切换上下文。通过执行这些步骤,您应该能够从一台机器管理多个 Kubernetes 集群,而无需不断重命名和切换 kubeconfig 文件。

参考: kubectl 配置上下文

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.