默认情况下,k3d 会将新集群的详细信息更新到你的默认 Kubernetes 配置文件(kubeconfig)中,并将当前上下文(current - context)设置为该新集群(此功能可以禁用)。
若要手动设置一个用于连接 k3d 集群的 kubeconfig,而不依赖这种自动更新机制,你可以采用以下不同的方法。
获取新创建集群的 kubeconfig
1.在集群创建后创建一个新的 kubeconfig 文件
k3d kubeconfig write mycluster-
注意:这将创建(或更新)文件
$HOME/.k3d/kubeconfig-mycluster.yaml -
提示:使用它:
export KUBECONFIG=$(k3d kubeconfig write mycluster) -
注意 2:或者你可以使用
k3d kubeconfig get mycluster > some-file.yaml
2.在创建集群时更新你的默认 kubeconfig(默认行为)
k3d cluster create mycluster --kubeconfig-update-default- 注意:这不会切换当前上下文(要切换的话请附加
--kubeconfig-switch-context参数)
3.在集群创建后更新你的默认 kubeconfig
k3d kubeconfig merge mycluster --kubeconfig-merge-default- 注意:这不会切换当前上下文(要切换的话请附加
--kubeconfig-switch-context参数)
4.在集群创建后更新另一个 kubeconfig
k3d kubeconfig merge mycluster --output some/other/file.yaml-
注意:这不会切换当前上下文
-
如果该文件不存在,将会创建它
切换当前上下文
上述选项默认都不会切换当前上下文。
这样做的目的是尽量减少干扰,因为当前上下文具有全局影响。
你可以通过在 kubeconfig merge 命令中添加 --kubeconfig-switch-context 标志来直接切换当前上下文。5.从 kubeconfig 中删除集群详细信息
k3d cluster delete mycluster 总是会从默认的 kubeconfig 中删除 mycluster 的详细信息。如果 $HOME/.k3d/ 中相应的 kubeconfig 文件存在,也会将其删除。处理多个集群
k3d kubeconfig merge 允许你通过参数指定一个或多个集群,也可以通过 --all 指定所有集群。
如果指定了 --kubeconfig-merge-default 或 --output,所有的 kubeconfig 文件将被合并到一个文件中。
如果这两个标志都未指定,将为每个集群创建一个新文件,并返回合并后的路径(例如 $HOME/.k3d/kubeconfig-cluster1.yaml:$HOME/.k3d/cluster2.yaml)。
- 注意,当指定多个集群时,
--kubeconfig-switch-context标志会将当前上下文更改为列表中最后一个集群。