kube配置

默认情况下,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 标志会将当前上下文更改为列表中最后一个集群。