如何拥有多个 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
我在 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
andkubens
在clusters/namespaces 之间快速变化
- 使用别名将它们组合在一起
看看这篇文章,它解释了如何做到这一点:Using different kubectl versions with multiple Kubernetes clusters
我还推荐这本书:Mastering the KUBECONFIG file