Zum Verwenden der Snapshot-Technologie in TKG-Dienst-Clustern müssen Sie einen externen Webhook für CSI-Snapshots in einem TKG-Cluster installieren und bereitstellen. Der externe Webhook für CSI-Snapshots ist eine Open Source-Komponente mit einem HTTP-Callback, das auf Zugangsanforderungen reagiert. Er ist für die Validierung von Volume-Snapshot-Objekten verantwortlich.

Der externe Webhook für CSI-Snapshots wird automatisch in Supervisor installiert. Dieses Thema gilt nur für TKG-Dienst-Cluster.

Voraussetzungen

Vorbereiten eines TKG-Dienst-Clusters für die Installation des externen Webhooks für CSI-Snapshots

Führen Sie die folgenden Schritte aus, um den externen Webhook für CSI-Snapshots in einem TKG-Dienst-Cluster bereitzustellen.

Prozedur

  1. Rufen Sie die Admin-Anmeldedaten des TKG-Clusters ab, in dem Sie den externen Webhook für CSI-Snapshots bereitstellen möchten.
    tanzu cluster kubeconfig get my-cluster --admin
  2. Ändern Sie den Kontext in den vSphere-Namespace, in dem der TKG-Zielcluster bereitgestellt wird.
    kubectl config use-context my-cluster-admin@my-cluster
  3. Wenn der Cluster über kein Paket-Repository verfügt, z. B. das tanzu-standard-Repository, installieren Sie ein Repository.
    Sie können diesen Schritt überspringen, wenn es sich bei Ihrem Zielcluster um einen planbasierten Legacy-Cluster handelt. Für planbasierte Cluster wird das tanzu-standard-Paket-Repository automatisch im tanzu-package-repo-global-Namespace aktiviert.
    tanzu package repository add PACKAGE-REPO-NAME --url PACKAGE-REPO-ENDPOINT --namespace tkg-system
    • PACKAGE-REPO-NAME ist der Name des Paket-Repositorys, z. B. des tanzu-standard-Repositorys, oder der Name einer privaten Image-Registrierung, die mit ADDITIONAL_IMAGE_REGISTRY-Variablen konfiguriert ist.
    • PACKAGE-REPO-ENDPOINT ist die URL des Paket-Repositorys.
  4. Falls noch nicht geschehen, installieren Sie cert-manager.
    Weitere Informationen finden Sie unter Installieren des Zertifikatmanagers.

Ergebnisse

Sie können jetzt den externen Webhook für CSI-Snapshots bereitstellen.

Bereitstellen eines externen CSI-Snapshot-Webhooks

Führen Sie die folgenden Schritte aus, um den externen Webhook für CSI-Snapshots auf einem TKG-Dienst-Cluster bereitzustellen.

Prozedur

  1. Bestätigen Sie, dass das externe Webhook-Paket für CSI-Snapshots im Cluster verfügbar ist.
    tanzu package available list -A

    Wenn das Paket nicht verfügbar ist, stellen Sie sicher, dass das Paket-Repository, das das erforderliche externe CSI-Snapshot-Webhook-Paket enthält, ordnungsgemäß installiert ist. Anweisungen finden Sie in Schritt 3 unter Vorbereiten eines TKG-Dienst-Clusters für die Installation des externen Webhooks für CSI-Snapshots.

  2. Rufen Sie die Version des verfügbaren Pakets ab.
    tanzu package available list external-csi-snapshot-webhook.tanzu.vmware.com -A
  3. Installieren Sie das Paket mit der entsprechenden verfügbaren Version.
    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 gibt die Paketversion an, die Sie in Schritt 2 erhalten haben.
  4. Bestätigen Sie, dass das externe Webhook-Paket für CSI-Snapshots installiert wurde.
    tanzu package installed list -A
    Um weitere Details zum Paket anzuzeigen, können Sie auch den folgenden Befehl ausführen:
    tanzu package installed get external-csi-snapshot-webhook --namespace kube-system
  5. Vergewissern Sie sich, dass die external-csi-snapshot-webhook-App erfolgreich in Ihrem TARGET-NAMESPACE abgeglichen wurde.
    kubectl get apps -A
    Wenn der Status nicht Reconcile Succeeded lautet, zeigen Sie die vollständigen Statusdetails der external-csi-snapshot-webhook-App an. Das Anzeigen des vollständigen Status kann Ihnen bei der Behebung des Problems helfen.
    kubectl get app external-csi-snapshot-webhook --namespace kube-system -o yaml
    Falls Sie das Problem nicht beheben können, deinstallieren Sie das Paket mit dem folgenden Befehl, bevor Sie es erneut installieren.
    tanzu package installed delete external-csi-snapshot-webhook --namespace kube-system
  6. Bestätigen Sie, dass external-csi-snapshot-webhook ausgeführt wird, indem Sie alle Pods im Cluster auflisten.
    kubectl get pods -A
    Stellen Sie sicher, dass external-csi-snapshot-webhook-Pods im kube-system-Namespace erstellt werden.