启用 KIND 以使用 vctl 容器作为节点来运行 Kubernetes 集群

在 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. 下载
      kubectl
      kind
      crx.vmdk
      文件,并将它们保存到 bin 文件夹中。
    3. 创建一个指向
      /Applications/VMware Fusion.app/Contents/Library/vkd/bin/vctl
      的 Docker 链接文件。
  3. 运行
    vctl kind
    命令。
    此命令将执行以下四项任务:
    1. <user home folder>/.vctl
      文件夹中创建一个
      bin
      文件夹。
    2. 下载
      kubectl
      kind
      crx.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 start
      vctl kind
      命令时,如果
      <user home folder>/.vctl/bin
      文件夹中已存在 kind CLI 和 kubectl CLI 工具,且当前 Fusion 版本支持这些工具的版本,则 vctl 命令将不会再次下载这些工具。如果当前 Fusion 版本不支持这些工具的版本,则 vctl 命令将下载这些工具的受支持版本并移除不受支持的版本。