可以在 TKG 服务 集群中安装并部署 vSphere PVCSI Webhook。vSphere PVCSI Webhook 是一个具有回调功能的组件,用于响应 CSI 准入请求。它负责验证 Kubernetes 对象,例如持久卷声明、持久卷、存储类等。

vSphere PVCSI Webhook 会在 主管 中自动安装。本主题仅适用于 TKG 服务 集群。

必备条件

准备 TKG 服务 集群以安装 vSphere PVCSI Webhook

按照以下步骤准备 TKG 服务 集群,以安装 vSphere PVCSI Webhook。

过程

  1. 获取要在其中部署 vSphere PVCSI Webhook 的 TKG 集群的管理员凭据。
    tanzu cluster kubeconfig get my-cluster --admin
  2. 将环境切换到置备了目标 TKG 集群的 vSphere 命名空间
    kubectl config use-context my-cluster-admin@my-cluster
  3. 如果集群中没有安装了 vsphere-pv-csi-webhook 软件包的软件包存储库(如 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。
    有关信息,请参见 安装证书管理器

结果

现在,您可以部署vSphere PVCSI Webhook。

部署 vSphere PVCSI Webhook

可以按照以下步骤,在 TKG 服务 集群上部署 vSphere PVCSI Webhook。

过程

  1. 确认集群中存在 vSphere PVCSI Webhook 软件包。
    tanzu package available list -A

    如果软件包不可用,请确保正确安装了包含所需vSphere PVCSI Webhook 软件包的软件包存储库。有关说明,请参见准备 TKG 服务 集群以安装 vSphere PVCSI Webhook 中的步骤 3。

  2. 获取可用软件包的版本。
    tanzu package available list vsphere-pv-csi-webhook.tanzu.vmware.com -A
  3. 安装具有适当可用版本的软件包。
    tanzu package install vsphere-pv-csi-webhook --package vsphere-pv-csi-webhook.tanzu.vmware.com --version AVAILABLE-PACKAGE-VERSION --namespace TARGET-NAMESPACE
    • TARGET-NAMESPACE 指定要安装 vsphere-pv-csi-webhook 软件包的命名空间。
      注: TARGET-NAMESPACE 必须与安装 vsphere-pv-csi 软件包的命名空间相同。

      如果未指定 --namespace 标记,Tanzu CLI 会将软件包及其资源安装在默认命名空间中,例如,vsphere-pv-csi-webhook 软件包将安装在 vmware-system-csi 中。指定的命名空间必须已存在,例如,通过运行 kubectl create namespace vmware-system-csi 进行确认。

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