在 Fusion 12.0 中,增强了 vctl 实用程序以支持 KIND。通过此增强功能,KIND 可以使用 vctl 容器而不是 Docker 容器作为节点来运行本地 Kubernetes 集群。

前提条件

默认情况下,vctl 会为托管 vctl 容器节点的每个 CRX 虚拟机分配 2 GB 内存。这可确保在运行单节点集群时 Mac 计算机具有 2 GB 可用内存,运行双节点集群时具有 4 GB 可用内存。在集群中配置的节点越多,所需的可用内存就越多。

过程

  1. 在 Mac 上,打开终端窗口。
  2. 运行 vctl system start 命令以启动 vctl 容器运行时。
    此命令将执行以下任务:
    1. <user home folder>/.vctl 文件夹中创建一个 bin 文件夹。
    2. 下载 kubectlkindcrx.vmdk 文件,并将它们保存到 bin 文件夹中。
    3. 创建一个指向 /Applications/VMware Fusion.app/Contents/Library/vkd/bin/vctl 的 Docker 链接文件。
  3. 运行 vctl kind 命令。
    此命令将执行以下四项任务:
    1. <user home folder>/.vctl 文件夹中创建一个 bin 文件夹。
    2. 下载 kubectlkindcrx.vmdk 文件,并将它们保存到 bin 文件夹中。
    3. 创建一个指向 /Applications/VMware Fusion.app/Contents/Library/vkd/bin/vctl 的 Docker 链接文件。
    4. 通过将 <user home folder>/.vctl/bin 添加到 PATH 环境变量创建一个基于 vctl 的 KIND 上下文,然后将其设为第一个可搜索的路径。

      因此,在“终端”窗口中,<user home folder>/.vctl/bin 文件夹中的 kubectl/kind/docker CLI 工具将优先于其他现有版本的此类工具,这些版本可能安装在其他位置。

  4. 如果关闭“终端”窗口,则基于 vctl 的 KIND 上下文将会丢失。

    在下次想要与 Kubernetes 集群进行交互时,请运行 vctl kind 命令。

    注:
    • vctl 不支持 kind build 命令。
    • 默认情况下,vctl 为托管节点容器的 CRX 虚拟机分配 2 GB 内存和 2 个 CPU 内核,您可以使用 vctl system config 命令的 --k8s-cpus--k8s-mem 选项自定义配置。
    • 每个 Fusion 版本仅支持一个特定版本的 kind CLI 和 kubectl CLI 工具。例如:
      • Fusion 12.0.0 支持 kind v0.8.1 和 kubectl v1.18.6。
      • Fusion 12.1.0 支持 kind v0.9.0 和 kubectl v1.19.1。
      Fusion 12.1.0 中的 vctl 实用程序引入了对 kind CLI 和 kubectl CLI 工具的版本检查。运行 vctl system startvctl kind 命令时,如果 <user home folder>/.vctl/bin 文件夹中已存在 kind CLI 和 kubectl CLI 工具,且当前 Fusion 版本支持这些工具的版本,则 vctl 命令将不会再次下载这些工具。如果当前 Fusion 版本不支持这些工具的版本,则 vctl 命令将下载这些工具的受支持版本并移除不受支持的版本。