如何拥有多个 kubernetes 配置并在它们之间快速更改

How to have multiple kubernetes config and change quicky between them

我在 Azure 上使用多个 Kubernetes 集群,所以我需要从一个集群快速切换到另一个集群,而路径上没有各种文件 C:\Users\username\.kube,因为我必须重命名或替换文件想换成其他的

您需要拥有所有 kubernetes 配置文件。

1.- 在路径 C:\Users\username\.kube

中创建一个 config 文件

2.- 从每个 config 文件中获取数据。例如,每个环境(dev、qa、prod)一个 3 个文件,所以让我们合并成一个

您的文件必须如下所示:

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: some_authority_01
    server: some_server_url_01
  name: some_cluster_name_01

- cluster:
    certificate-authority-data: some_authority_02
    server: some_server_url_02
  name: some_cluster_name_02

- cluster:
    certificate-authority-data: some_authority_03
    server: some_server_url_03
  name: some_cluster_name_03

contexts:
- context:
    cluster: some_cluster_name_01
    user: some_user_01
  name: some_cluster_name_01

- context:
    cluster: some_cluster_name_02
    user: some_user_02
  name: some_cluster_name_02

- context:
    cluster: some_cluster_name_03
    user: some_user_03
  name: some_cluster_name_03

current-context: some_cluster_name_01
kind: Config

preferences: {}
users:
- name: some_user_01
  user:
    client-certificate-data: some_certificate_01
    client-key-data: some_key_01
- name: some_user_02
  user:
    client-certificate-data: some_certificate_02
    client-key-data: some_key_02
- name: some_user_02
  user:
    client-certificate-data: some_certificate_03
    client-key-data: some_key_03

注意: current-context 的值可能会有所不同,不一定是第一个集群。

添加快捷方式

3.- 为 Windows 10 添加快捷方式以快速更改 kubernetes 上下文 3.1.- 在路径 C:\Users\username\Documents\WindowsPowerShell

中创建一个名为 Microsoft.PowerShell_profile.ps1 的文件

3.2 将此数据复制到最近创建的文件中

function See-Contexts{kubectl config get-contexts}
Set-Alias -Name seec -Value See-Contexts


function change-context-01 { kubectl config use-context some_cluster_name_01}
Set-Alias -Name ctx01 -Value change-context-01

function change-context-02 { kubectl config use-context some_cluster_name_02}
Set-Alias -Name ctx01 -Value change-context-02

function change-context-03 { kubectl config use-context some_cluster_name_03}
Set-Alias -Name ctx01 -Value change-context-03

3.3.- 在 Windows 的搜索栏中搜索 PowerShell 并打开选项 RUN ISE as Administrator 并打开文件 Microsoft.PowerShell_profile.ps1 和 运行 文件。

使用此解决方案,您可以使用快捷方式轻松更改 kubernetes 集群。例如,如果您想更改为 集群 some_cluster_name_01 您只需输入 ctx01。当我们有多个 kubernetes 集群时,这很有用。

我建议您使用这个工具:kubectxwin

这是 kubectx 工具的 Windows 版本,它是许多人在集群和集群内的命名空间之间快速切换的首选工具。

我建议您使用以下工具和技巧:

  • 使用asdf管理多个kubectl版本
  • Set the KUBECONFIG 在多个 kubeconfig 文件之间切换的环境变量
  • 使用 kube-ps1 跟踪您当前的 context/namespace
  • 使用kubectx and kubens在clusters/namespaces
  • 之间快速变化
  • 使用别名将它们组合在一起

看看这篇文章,它解释了如何做到这一点:Using different kubectl versions with multiple Kubernetes clusters

我还推荐这本书:Mastering the KUBECONFIG file