This site will be decommissioned on January 30th 2025. After that date content will be available at techdocs.broadcom.com.

Vorbereiten einer Umgebung mit Internetbeschränkungen

Sie können Tanzu Kubernetes Grid-Verwaltungscluster und -Arbeitslastcluster in Umgebungen bereitstellen, die nicht mit dem Internet verbunden sind, wie z. B.:

  • Proxyumgebungen
  • Air-Gapped-Umgebungen, ohne physische Verbindung zum Internet

In diesem Thema wird die Bereitstellung von Verwaltungsclustern in einer Umgebung mit Internetbeschränkungen auf vSphere oder AWS erläutert. Sie müssen diese Schritte nicht ausführen, wenn Sie Tanzu Kubernetes Grid in einer mit dem Internet verbundenen Umgebung verwenden, die Images über eine externe Internetverbindung abrufen kann.

Hinweis

Dieses Dokument enthält allgemeine Schritte zur Bereitstellung von Tanzu Kubernetes Grid-Verwaltungs- und Arbeitslastclustern in Air-Gapped-Umgebungen. Informationen zum Bereitstellen der Verwaltungs- und Arbeitslastcluster in einer spezifischen und validierten Konfiguration in Air-Gapped-Umgebungen finden Sie unter Air-Gapped-Referenzdesign und ‑Bereitstellung in VMware Tanzu Kubernetes Grid 2.3. Das TKG v2.3-Referenzdesign gilt sowohl für TKG v2.3 als auch für v2.4.

Bei diesem Verfahren können Sie entweder eine einzelne Maschine oder verschiedene Maschinen als Bootstrap-Maschinen in den Online- und Offline-Umgebungen verwenden.

(Optional) Herunterladen der Harbor-OVA

Wenn Sie die Harbor-Registrierung installieren möchten, laden Sie die Harbor-OVA-Datei herunter:

  1. Navigieren Sie zu VMware Customer Connect und melden Sie sich mit Ihren Anmeldedaten für VMware Customer Connect an.
  2. Gehen Sie zur Download-Seite von Tanzu Kubernetes Grid.
  3. Klicken Sie in der Zeile VMware Tanzu Kubernetes Grid auf Zu den Downloads (Go to Downloads).
  4. Wählen Sie im Dropdown-Menü Version auswählen (Select version) den Wert 2.4.0 aus.
  5. Scrollen Sie unter Produktdownloads (Product Downloads) zum Abschnitt mit der Bezeichnung Harbor OVA und klicken Sie auf Jetzt herunterladen (Download Now).
  6. (Optional) Stellen Sie sicher, dass die heruntergeladenen Dateien die unveränderten Originaldateien sind. VMware stellt für jeden Download eine SHA-1-, eine SHA-256- und eine MD5-Prüfsumme bereit. Um diese Prüfsummen zu erhalten, klicken Sie unter dem Eintrag, den Sie herunterladen möchten, auf Weitere Informationen (Read More). Weitere Informationen finden Sie unter Verwenden kryptografischer Hashes.

Allgemeine Voraussetzungen

Damit Sie Verwaltungscluster und Arbeitslastcluster in einer Umgebung mit Internetbeschränkungen bereitstellen können, benötigen Sie Folgendes:

  • Eine mit dem Internet verbundene Linux-Bootstrap-Maschine, die:
  • Zugriff für Cluster-VMs auf Images in der privaten Registrierung:
    • Über Proxyumgebungen: Ein Egress-Proxyserver, mit dem Cluster-VMs auf die Registrierung zugreifen können.
      • Wenn Sie einen Verwaltungscluster in dieser Proxyumgebung bereitstellen, legen Sie in der Clusterkonfigurationsdatei TKG_*_PROXY-Variablen auf die Adresse des Proxyservers fest. Wenn das Zertifikat selbstsigniert ist, legen Sie TKG_PROXY_CA_CERT auf die Zertifizierungsstelle des Proxyservers fest. Weitere Informationen finden Sie unter Konfigurieren von Proxys.
    • Air-Gapped-Umgebungen: Ein USB-Stick oder ein anderes Medium, um die private Registrierung hinter eine Air-Gap zu bewegen, nachdem die Registrierung mit Images aufgefüllt wurde.
  • Ein USB-Stick oder ein anderes tragbares Offlinespeichergerät.

Hinweis

VMware unterstützt keine TKG-Arbeitslastcluster mit Windows-Worker-Knoten in Proxied- oder Air-Gapped-Umgebungen.

Voraussetzungen und Architektur für vSphere

Dieses Dokument enthält allgemeine Schritte zur Bereitstellung der Tanzu Kubernetes Grid-Verwaltungs- und Arbeitslastcluster im vSphere-Netzwerk in einer Air-Gapped-Umgebung. Informationen zum Bereitstellen der Cluster in einer spezifischen und validierten Konfiguration im vSphere-Netzwerk in einer Air-Gapped-Umgebung finden Sie im Dokument Air-Gapped-Referenzdesign in VMware Tanzu Kubernetes Grid on vSphere und Bereitstellen von Tanzu Kubernetes Grid auf vSphere-Netzwerken in einer Air-Gapped-Umgebung im Dokument Air-Gapped-Referenzdesign und ‑Bereitstellung in VMware Tanzu Kubernetes Grid 2.3. Das TKG v2.3-Referenzdesign gilt sowohl für TKG v2.3 als auch für v2.4.

vSphere-Architektur

Eine internetbeschränkte Tanzu Kubernetes Grid-Installation auf vSphere verfügt über Firewalls und kommuniziert zwischen Hauptkomponenten, wie hier gezeigt.

Hinweis

Das folgende Diagramm beschreibt das Szenario, in dem verschiedene Bootstrap-Maschinen in den Online- und Offline-Umgebungen verwendet werden.

Diagramm: Air Gap-TKG auf vSphere

Auf vSphere müssen Sie zusätzlich zu den oben genannten allgemeinen Voraussetzungen Folgendes ausführen:

  • Laden Sie in vSphere die OVAs hoch, aus denen Knoten-VMs erstellt werden. Weitere Informationen finden Sie unter Importieren der Basisimage-Vorlage in vSphere in Bereitstellen von Verwaltungsclustern für vSphere.

    Wenn Sie sich nach der Erstellung der VM nicht mit dem Standardbenutzernamen/-Kennwort anmelden können, setzen Sie bei Photon OS das Kennwort mithilfe von Gnu GRUB zurück, wie unter Zurücksetzen eines verlorenen Root-Kennworts beschrieben.

  • Melden Sie sich bei der Jumpbox als root an und aktivieren Sie Remote-SSH wie folgt:

    1. Öffnen Sie die Datei /etc/ssh/sshd_config in einem Editor. nano /etc/ssh/sshd_config
    2. Fügen Sie im Abschnitt „Authentifizierung“ (Authentication) der Datei eine Zeile PermitRootLogin yes ein. Falls die Zeile bereits vorhanden ist, entfernen Sie das „#“.
    3. Speichern Sie die aktualisierte Datei /etc/ssh/sshd_config.
    4. Starten Sie den SSH-Server mit service sshd restart neu.
  • Installieren und konfigurieren Sie eine private Docker-kompatible Containerregistrierung wie Harbor, Docker oder Artifactory wie folgt. Diese Registrierung wird außerhalb von Tanzu Kubernetes Grid ausgeführt und ist von allen Registrierungen getrennt, die als gemeinsam genutzter Dienst für Cluster bereitgestellt werden:

    • Installieren Sie die Registrierung innerhalb Ihrer Firewall.
    • Sie können die Containerregistrierung mit SSL-Zertifikaten konfigurieren, die von einer vertrauenswürdigen Zertifizierungsstelle signiert wurden, oder mit selbstsignierten Zertifikaten.
    • Die Registrierung darf die Benutzerauthentifizierung nicht implementieren. Wenn Sie beispielsweise eine Harbor-Registrierung verwenden, muss das Projekt öffentlich und nicht privat sein.
    • So installieren Sie Harbor auf vSphere:
  • Konfigurieren Sie ein Offline-Subnetz zur Verwendung als Umgebung mit Internetbeschränkungen und verknüpfen Sie es mit der Jumpbox.

  • Richten Sie den DHCP-Server ein, um der neuen Instanz private IP-Adressen zuzuteilen.

  • Erstellen Sie einen vSphere Distributed Switch auf einem Datencenter, um die Netzwerkkonfiguration mehrerer Hosts gleichzeitig von einer zentralen Stelle aus zu regeln.

Voraussetzungen und Architektur für AWS

Dieses Dokument enthält allgemeine Schritte zur Bereitstellung der Tanzu Kubernetes Grid-Verwaltungs- und Arbeitslastcluster auf AWS in einer Air-Gapped-Umgebung. Informationen zum Bereitstellen der Cluster in einer bestimmten und validierten Konfiguration auf AWS in einer Air-Gapped-Umgebung finden Sie unter Air-Gapped-Referenzdesign in VMware Tanzu Kubernetes Grid on AWS und Bereitstellen von Tanzu Kubernetes Grid auf vSphere-Netzwerken in einer Air-Gapped-Umgebung im Dokument Air-Gapped-Referenzdesign und ‑Bereitstellung in VMware Tanzu Kubernetes Grid 2.3. Das TKG v2.3-Referenzdesign gilt sowohl für TKG v2.3 als auch für v2.4.

AWS-Architektur

Eine Proxy-Installation von Tanzu Kubernetes Grid auf Amazon Web Services (AWS) verfügt über Firewalls und kommuniziert zwischen Hauptkomponenten, wie hier gezeigt. Sicherheitsgruppen (SG) werden automatisch zwischen der Steuerungsebene und den Arbeitslastdomänen sowie zwischen den Arbeitslastkomponenten und Steuerungsebenenkomponenten erstellt.

Diagramm: Air-Gapped TKG auf AWS

Für eine Proxy-Installation auf AWS benötigen Sie zusätzlich zu den oben genannten allgemeinen Voraussetzungen folgendes:

  • Eine AWS-VPC ohne Internet-Gateway („Offline-VPC“), die wie unten beschrieben konfiguriert ist.
    • Ihre mit dem Internet verbundene Bootstrap-Maschine, die innerhalb dieser Offline-VPC auf IP-Adressen zugreifen kann. Weitere Informationen finden Sie unter VPC-Peering.
  • Eine private Docker-kompatible Containerregistrierung wie Harbor, Docker oder Artifactory, die wie folgt installiert und konfiguriert ist. Diese Registrierung wird außerhalb von Tanzu Kubernetes Grid ausgeführt und ist von allen Registrierungen getrennt, die als gemeinsam genutzter Dienst für Cluster bereitgestellt werden:
    • Installieren Sie die Registrierung innerhalb Ihrer Firewall.
    • Sie können die Containerregistrierung mit SSL-Zertifikaten konfigurieren, die von einer vertrauenswürdigen Zertifizierungsstelle signiert wurden, oder mit selbstsignierten Zertifikaten.
    • Die Registrierung darf die Benutzerauthentifizierung nicht implementieren. Wenn Sie beispielsweise eine Harbor-Registrierung verwenden, muss das Projekt öffentlich und nicht privat sein.
    • Installieren von Harbor:
      1. Laden Sie die Harbor-OVA herunter.
      2. Befolgen Sie die Anweisungen zum Installieren und Konfigurieren von Harbor in der Harbor-Dokumentation.
  • Eine Linux-Bootstrap-VM, die in Ihrer Offline-VPC ausgeführt wird, die ähnlich wie die mit dem Internet verbundene Maschine oben bereitgestellt wird.
    • Die Offline-Bootstrap-VM muss von Tanzu Kubernetes Grid erstellte Cluster-VMs direkt ohne Proxy erreichen können.

Nachdem Sie die Offline-VPC erstellt haben, müssen Sie ihr die folgenden Endpoints hinzufügen (Ein VPC-Endpoint aktiviert private Verbindungen zwischen Ihrer VPC und den unterstützten AWS-Diensten.):

  • Dienst-Endpoints:
    • sts
    • ssm
    • ec2
    • ec2messages
    • elasticloadbalancing
    • secretsmanager
    • ssmmessages

So fügen Sie die Dienst-Endpoints zu Ihrer VPC hinzu:

  1. Navigieren Sie in der AWS-Konsole zu VPC-Dashboard > Endpoints.
  2. Für jeden der oben genannten Dienste:
    1. Klicken Sie auf Endpoint erstellen (Create Endpoint).
    2. Suchen Sie nach dem Dienst und wählen Sie ihn unter Dienstname (Service Name) aus.
    3. Wählen Sie ihre VPC und die zugehörigen Subnetze (Subnets) aus.
    4. Wählen Sie DNS-Name aktivieren (Enabled DNS Name) für den Endpoint aus.
    5. Wählen Sie eine Sicherheitsgruppe (Security group) aus, die VMs in der VPC den Zugriff auf den Endpoint erlaubt.
    6. Wählen Sie Richtlinie (Policy) > Vollzugriff (Full Access) aus.
    7. Klicken Sie auf Endpoint erstellen (Create Endpoint).

Vorbereiten einer Umgebung mit Internetbeschränkungen

Um eine Umgebung mit Internetbeschränkungen für die Bereitstellung von Tanzu Kubernetes Grid vorzubereiten, können Sie eine der folgenden Optionen auswählen:

  • Eine einzelne Bootstrap-Maschine für die Online- und Offline-Umgebungen.

  • Verschiedene Bootstrap-Maschinen für die Online- und Offline-Umgebungen.

Führen Sie basierend auf der ausgewählten Option die in der folgenden Tabelle beschriebenen Schritte aus:

Einzelne Bootstrap-Maschine Verschiedene Bootstrap-Maschinen
Schritt 1: Installieren des Plug-Ins für isolierte Cluster auf der Online-Maschine Ja
Ja
Schritt 2: Herunterladen der TKG-Images auf die Online-Maschine Ja
Ja
Schritt 3: Herunterladen des Tanzu CLI-Binär-Images für Linux auf die Online-Maschine Nein
Ja
Schritt 4: Herunterladen des CLI-Plug-In-Pakets auf die Online-Maschine Nein
Ja
Schritt 5: Kopieren der Dateien auf die Offline-Maschine Nein
Ja
Schritt 6: Entpacken der Dateien auf der Offline-Maschine Nein
Ja
Schritt 7: Anmelden bei der privaten Registrierung auf der Offline-Maschine Ja
Ja
Schritt 8: Installieren der Tanzu CLI auf der Offline-Maschine Nein
Ja

Schritt 9: Installieren des CLI-Plug-Ins-Pakets auf der Offline-Maschine Ja
Ja
Schritt 10: Hochladen der TKG-Images in die private Registrierung Ja
Ja

Schritt 1: Installieren des Plug-Ins für isolierte Cluster auf der Online-Maschine

So installieren Sie das Plug-In isolated-cluster:

  1. Installieren Sie das Plug-In isolated-cluster, indem Sie das für die Installation eines einzelnen Plug-Ins beschriebene Verfahren unter Installieren von Tanzu CLI-Plug-Ins in der VMware Tanzu CLI-Dokumentation befolgen.

  2. Stellen Sie sicher, dass die Versionsnummer des Plug-Ins isolated-cluster mit der Versionsnummer der Core-Tanzu CLI kompatibel ist:

    1. Führen Sie tanzu plugin list aus, um die Versionsnummer der Tanzu CLI-Plug-Ins anzuzeigen.

    2. Siehe Versionen der TKG- und Tanzu CLI-Plug-Ins in Informationen zu Tanzu Kubernetes Grid, um sicherzustellen, dass die Version des Plug-Ins isolated-cluster mit TKG v2.4 kompatibel ist.

      • Die Version der Core-Tanzu CLI, die beim Ausführen von tanzu version aufgelistet wird, sollte mit der Tanzu CLI-Version für TKG v2.4 übereinstimmen, die unter Produkt-Snapshot in den Versionshinweisen zu TKG aufgeführt ist.
    3. Wenn die Version des Plug-Ins isolated-cluster nicht mit Ihrer TKG-Version übereinstimmt, aktualisieren Sie TKG gemäß der Beschreibung unter Aktualisieren von Tanzu Kubernetes Grid.

Schritt 2: Herunterladen der TKG-Images auf die Online-Maschine

Wichtig

Stellen Sie vor der Durchführung dieses Schritts sicher, dass die Festplattenpartition, auf die Sie die Images herunterladen, über 45 GB freien Speicherplatz verfügt.

Laden Sie das Image-Paket auf Ihre mit dem Internet verbundene Linux-Bootstrap-Maschine herunter:

tanzu isolated-cluster download-bundle --source-repo <SOURCE-REGISTRY> --tkg-version <TKG-VERSION> --ca-certificate <SECURITY-CERTIFICATE>

Dabei gilt:

  • SOURCE-REGISTRY ist die IP-Adresse oder der Hostname der Registrierung, in der die Images gespeichert sind.
  • TKG-VERSION ist die Version von Tanzu Kubernetes Grid, die Sie in der Proxy- oder Air Gap-Umgebung bereitstellen möchten.
  • SECURITY-CERTIFICATE ist das Sicherheitszertifikat der Registrierung, in der die Images gespeichert sind. Um die Validierung des Sicherheitszertifikats zu umgehen, verwenden Sie --insecure anstelle von --ca-certificate. Beide Zeichenfolgen sind optional. Wenn Sie keinen Wert angeben, validiert das System das Standard-Serversicherheitszertifikat.

    Im Folgenden finden Sie ein Beispiel:

    tanzu isolated-cluster download-bundle --source-repo projects.registry.vmware.com/tkg --tkg-version v2.4.0
    
    

Das Image-Paket in Form von TAR-Dateien wird zusammen mit der Datei publish-images-fromtar.yaml auf die Online-Maschine heruntergeladen. Die YAML-Datei definiert die Zuordnung zwischen den Images und den TAR-Dateien.

Schritt 3: Herunterladen des Tanzu CLI-Binär-Images für Linux auf die Online-Maschine

Laden Sie das Tanzu CLI-Image für Linux (ZIP-Datei) auf die Online-Maschine herunter:

  1. Wechseln Sie zur Seite VMware Tanzu CLI auf VMware Customer Connect.
  2. Suchen Sie unter Produkt-Downloads (Product Downloads) nach VMware Tanzu CLI für Linux und klicken auf Jetzt herunterladen (Download Now). Die ZIP-Datei tanzu-cli-linux-amd64.tar.gz wird auf die lokale Maschine heruntergeladen.

Schritt 4: Herunterladen des CLI-Plug-In-Pakets auf die Online-Maschine

Laden Sie das CLI-Plug-In-Paket auf die Online-Maschine herunter:

Führen Sie in der Tanzu CLI den folgenden Befehl aus, um das Plug-Ins-Paket für die CLI herunterzuladen:

tanzu plugin download-bundle --group vmware-tkg/default --to-tar /tmp/plugin-bundle.tar.gz

Schritt 5: Kopieren der Dateien auf die Offline-Maschine

Kopieren Sie die folgenden Dateien über einen USB-Stick oder ein anderes Speichermedium auf die Offline-Maschine, bei der es sich um die Bootstrap-Maschine in der Proxy- oder Air Gap-Umgebung handelt:

  • Die Image-TAR-Dateien
  • YAML-Dateien
  • Die ZIP-Datei tanzu-cli-bundle-linux-amd64.tar.gz
  • Das CLI-Plug-In-Paket

Schritt 6: Entpacken der Dateien auf der Offline-Maschine

Entpacken Sie auf der Offline-Bootstrap-Maschine die ZIP-Datei des Tanzu CLI-Images in das Verzeichnis tanzu:

tar -xvf tanzu-cli-bundle-linux-amd64.tar.gz -C $HOME/tanzu

Schritt 7: Anmelden bei der privaten Registrierung auf der Offline-Maschine

Melden Sie sich über Docker bei der privaten Registrierung auf der Offline-Maschine an:

docker login <URL>

Dabei gilt: URL ist die URL zum privaten Repository, in dem die Bilder in der Proxy- oder Air Gap-Umgebung gespeichert werden.

Schritt 8: Installieren der Tanzu CLI auf der Offline-Maschine

Installieren Sie die Tanzu CLI auf der Offline-Maschine:

sudo install tanzu-cli-linux_amd64 /usr/local/bin/tanzu

Schritt 9: Installieren des CLI-Plug-Ins-Pakets auf der Offline-Maschine

Installieren Sie das CLI-Plug-Ins-Paket auf der Offline-Maschine.

  1. Wenn die private Registrierung in der Air-Gapped-Umgebung mit einem selbstsignierten CA-Zertifikat konfiguriert ist, fügen Sie Ihre Einstellungen für die Zertifikatsüberprüfung hinzu, indem Sie die Anweisungen unter Hinzufügen der Zertifikatskonfiguration für die benutzerdefinierte Registrierung befolgen.

  2. Laden Sie das CLI-Plug-In-Paket in das private Repository in der Air-Gapped-Umgebung hoch:

    tanzu plugin upload-bundle --tar /tmp/plugin-bundle.tar.gz --to-repo PRIVATE-REPO/tanzu_cli/plugins
    

    Dabei gilt: PRIVATE-REPO ist das private Repository, in dem die Images in der Proxy- oder Air-Gapped-Umgebung gespeichert werden. Beispiel: registry.example.com.

  3. Aktualisieren Sie die Tanzu CLI so, dass sie auf die neue Plug-In-Quelle verweist:

    tanzu plugin source update default --url PRIVATE-REPO/tanzu_cli/plugins/plugin-inventory:latest
    
  4. Stellen Sie sicher, dass die Plug-Ins erkennbar sind:

    tanzu plugin search
    
    tanzu plugin group search 
    
  5. Installieren Sie die CLI-Plug-Ins:

    tanzu plugin install 
    

Schritt 10: Hochladen der TKG-Images in die private Registrierung

Laden Sie das TKG-Image-Paket in die private Registrierung hoch:

tanzu isolated-cluster upload-bundle --source-directory <SOURCE-DIRECTORY> --destination-repo <DESTINATION-REGISTRY> --ca-certificate <SECURITY-CERTIFICATE>

Dabei gilt:

  • SOURCE-DIRECTORY ist der Pfad zu dem Speicherort, an dem die TAR-Image-Dateien gespeichert werden.
  • DESTINATION-REGISTRY ist der Pfad zur privaten Registrierung, in der die Images in der Air Gap-Umgebung gehostet werden.
  • SECURITY-CERTIFICATE ist das Sicherheitszertifikat der privaten Registrierung, in der die Images in der Proxy- oder Air Gap-Umgebung gehostet werden. Um die Validierung des Sicherheitszertifikats zu umgehen, verwenden Sie --insecure anstelle von --ca-certificate. Beide Zeichenfolgen sind optional. Wenn Sie keinen Wert angeben, validiert das System das Standard-Serversicherheitszertifikat.

Im Folgenden finden Sie ein Beispiel:

tanzu isolated-cluster upload-bundle --source-directory ./ --destination-repo hostname1 --ca-certificate /tmp/registryca.crt

Nächste Schritte

Konfigurieren Sie die Registrierung, in die Sie die Images verschoben haben, indem Sie die folgenden Referenzvariablen der Konfigurationsdatei verwenden:

  • TKG_CUSTOM_IMAGE_REPOSITORY
  • TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE oder TKG_CUSTOM_IMAGE_REPOSITORY_SKIP_TLS_VERIFY.

Weitere Informationen zu diesen Konfigurationsvariablen finden Sie unter Konfiguration von privaten Image-Registrierungen.

Hinweis

Sie können auch den Befehl tanzu config set env.CONFIG-VARIABLE verwenden, um die Registrierung zu konfigurieren und die Umgebungsvariablen beizubehalten, wenn Sie die Tanzu CLI in Zukunft verwenden. Weitere Informationen finden Sie unter tanzu config set in der Tanzu CLI-Befehlsreferenz.

Ihre Umgebung mit Internetbeschränkungen ist jetzt bereit für die Bereitstellung oder das Upgrade von Tanzu Kubernetes Grid-Verwaltungsclustern und für die Bereitstellung von Arbeitslastclustern auf vSphere oder AWS.

Informationen zum Bereitstellen der Verwaltungs- und Arbeitslastcluster in einer spezifischen und validierten Konfiguration in Air-Gapped-Umgebungen finden Sie unter Air-Gapped-Referenzdesign und ‑Bereitstellung in VMware Tanzu Kubernetes Grid 2.3. Das TKG v2.3-Referenzdesign gilt sowohl für TKG v2.3 als auch für v2.4.

Informationen zum Bereitstellen der Verwaltungscluster mithilfe einer Konfigurationsdatei finden Sie unter Bereitstellen von Verwaltungsclustern über eine Konfigurationsdatei.

Wenn Sie dieses Verfahren im Rahmen eines Upgrades durchgeführt haben, finden Sie weitere Informationen unter Upgrade von Tanzu Kubernetes Grid.

check-circle-line exclamation-circle-line close-line
Scroll to top icon