为了能够在 TKG 服务 集群中使用快照技术,必须在 TKG 集群中安装并部署外部 CSI 快照 Webhook。外部 CSI 快照 Webhook 是一个具有 HTTP 回调功能的开源组件,用于响应准入请求。它负责验证卷快照对象。

外部 CSI 快照 Webhook 会在 主管 中自动安装。本主题仅适用于 TKG 服务 集群。

必备条件

准备 TKG 服务 集群以安装外部 CSI 快照 Webhook

按照以下步骤在 TKG 服务 集群中安装外部 CSI 快照 Webhook。

过程

  1. 获取要在其中部署外部 CSI 快照 Webhook 的 TKG 集群的管理员凭据。
    tanzu cluster kubeconfig get my-cluster --admin
  2. 将环境切换到置备了目标 TKG 集群的 vSphere 命名空间
    kubectl config use-context my-cluster-admin@my-cluster
  3. 如果集群没有软件包存储库(如 tanzu-standard 存储库),请安装一个。
    如果目标集群是基于计划的旧版集群,则可以跳过此步骤。对于基于计划的集群,将在 tanzu-package-repo-global 命名空间中自动启用 tanzu-standard 软件包存储库。
    tanzu package repository add PACKAGE-REPO-NAME --url PACKAGE-REPO-ENDPOINT --namespace tkg-system
    • PACKAGE-REPO-NAME 是软件包存储库的名称(例如 tanzu-standard),或配置了 ADDITIONAL_IMAGE_REGISTRY 变量的专用映像注册表的名称。
    • PACKAGE-REPO-ENDPOINT 是软件包存储库的 URL。
  4. 如果尚未执行此操作,请安装 cert-manager。
    有关信息,请参见 安装证书管理器

结果

现在,您可以部署外部 CSI 快照 Webhook。

部署外部 CSI 快照 Webhook

可以按照以下步骤,在 TKG 服务 集群上部署外部 CSI 快照 Webhook。

过程

  1. 确认集群中存在外部 CSI 快照 Webhook 软件包。
    tanzu package available list -A

    如果该软件包不存在,请确保正确安装包含所需外部 CSI 快照 Webhook 软件包的软件包存储库。有关说明,请参见准备 TKG 服务 集群以安装外部 CSI 快照 Webhook 中的步骤 3。

  2. 获取可用软件包的版本。
    tanzu package available list external-csi-snapshot-webhook.tanzu.vmware.com -A
  3. 安装具有适当可用版本的软件包。
    tanzu package install external-csi-snapshot-webhook --package external-csi-snapshot-webhook.tanzu.vmware.com --version AVAILABLE-PACKAGE-VERSION --namespace kube-system
    AVAILABLE-PACKAGE-VERSION 指定在步骤 2 中获取的软件包版本。
  4. 确认已安装外部 CSI 快照 Webhook 软件包。
    tanzu package installed list -A
    要查看有关软件包的更多详细信息,还可以运行以下命令:
    tanzu package installed get external-csi-snapshot-webhook --namespace kube-system
  5. 确认 external-csi-snapshot-webhook 应用已在 TARGET-NAMESPACE 中成功协调。
    kubectl get apps -A
    如果状态不是 Reconcile Succeeded,请查看 external-csi-snapshot-webhook 应用程序的完整状态详细信息。查看完整状态可帮助您对问题进行故障排除。
    kubectl get app external-csi-snapshot-webhook --namespace kube-system -o yaml
    如果故障排除未帮助您解决问题,请使用以下命令卸载软件包,然后再重新安装。
    tanzu package installed delete external-csi-snapshot-webhook --namespace kube-system
  6. 通过列出集群中的所有 Pod,确认 external-csi-snapshot-webhook 正在运行。
    kubectl get pods -A
    确认已在 kube-system 命名空间中创建 external-csi-snapshot-webhook pod。