Kurzanleitung zur Installation des privaten Anthos-Modus

Der private Anthos-Modus ist eine Version von Anthos, die in einer Umgebung mit Air Gap vollständig isoliert vom Internet ausgeführt werden kann. Sie können den privaten Anthos-Modus verwenden, um stark regulierte Arbeitslasten lokal auszuführen, und gleichzeitig von vielen Vorteilen der für die Cloud entwickelten Infrastruktur profitieren.

Themen der Kurzanleitung für privaten Anthos-Modus

Diese Kurzanleitung führt Sie durch die Installation des privaten Anthos-Modus als Infrastrukturbetreiber, der für die Infrastrukturebene wie Bare-Metal-Maschinen, Netzwerke, Speicher und das Betriebssystem verantwortlich ist. In dieser Kurzanleitung lernen Sie Folgendes:

  • Den privaten Anthos-Modus mithilfe des Ansatzes der Mindestinstallation installieren und konfigurieren
  • Einen Administratorcluster bereitstellen
  • Einen Nutzercluster erstellen und eine Anwendung im Nutzercluster bereitstellen

Der private Anthos-Modus umfasst zwei Arten von Clustern:

  • Administratorcluster werden verwendet, um Nutzercluster zu erstellen und zu verwalten.
  • In Nutzerclustern werden Ihre Arbeitslasten ausgeführt.

Sie haben auch eine Administrator-Workstation, die eine einzelne Maschine mit den Tools zum Installieren und Verwalten der Bereitstellung im privaten Anthos-Modus ist.

Hinweis

Prüfen Sie, ob die technischen Anforderungen für den privaten Anthos-Modus erfüllt sind und Sie mindestens fünf einsatzbereite Maschinen haben. Für diese Kurzanleitung sind Erfahrungen mit Kubernetes und der Systemverwaltung erforderlich.

Umgebung vorbereiten

Zugriff auf den privaten Anthos-Modus erhalten

Google muss Ihnen Zugriff auf Releases des privaten Anthos-Modus gewähren. Teilen Sie Ihrem Ansprechpartner bei Google eine E-Mail-Adresse für jeden Tester mit, damit wir ihm Zugriff auf das Download-Repository gewähren können. Diese E-Mail-Adressen müssen Google-Konten sein.

Wenn Ihr Ansprechpartner bei Google bestätigt hat, dass Sie Zugriff auf die im Rahmen des privaten Anthos-Modus verteilten Releases haben, prüfen Sie, ob Sie die Berechtigungen zum Herunterladen der Releases des privaten Anthos-Modus haben. Führen Sie dazu den folgenden Befehl aus:

gsutil ls gs://anthos-private-mode-release/

Wenn eine Fehlermeldung angezeigt wird, prüfen Sie, ob gsutil dasselbe Google-Konto verwendet, das Sie Ihrem Google-Ansprechpartner bereitgestellt haben. Führen Sie dazu den Befehl gcloud auth list aus.

Alternativ können Sie den neuesten Release-Bucket aufrufen, um zu prüfen, ob Sie die richtigen Berechtigungen haben. Sie müssen mit dem Google-Konto angemeldet sein, das Sie zuvor angegeben haben.

Wenn Sie Probleme beim Zugriff auf die Releases des privaten Anthos-Modus haben, wenden Sie sich an Ihren Ansprechpartner bei Google.

Privaten Anthos-Modus herunterladen

In diesem Abschnitt laden Sie den Release für den privaten Anthos-Modus herunter, der in mehreren Dateien mit mehreren Gigabyte enthalten ist. Je nach Internetverbindung kann das Herunterladen länger dauern.

Privaten Anthos-Modus herunterladen

Führen Sie auf Ihrer Administrator-Workstation die folgenden Befehle aus:

# Login with the account granted access to Anthos private mode
gcloud auth login

# Download the script which helps download all the latest components
export VERSION=1.9.3-gke.0

# Please use official 'INSTALLER_DIGEST' value from https://cloud.google.com/anthos/private-mode/docs/1.9/installing/infrastructure#download
export INSTALLER_DIGEST=ad410b7450e8ecaaa94821592dd0f49a1ade75e460e9ab18205c3b1364c6e910
export INSTALLER=get-anthos-private-mode-$VERSION.sh
gsutil cp gs://anthos-private-mode-release/$VERSION/$INSTALLER .
if [[ -n "$INSTALLER_DIGEST" ]]; then echo "$INSTALLER_DIGEST $INSTALLER" | sha256sum -c; fi && chmod +x $INSTALLER && ./$INSTALLER

# If you are working on a workstation shared with other users,
# we recommend that you revoke your credentials after downloading the release.
gcloud auth revoke YOUR_EMAIL_ADDRESS

Verbleibende Abhängigkeiten installieren

Sobald der Download des privaten Anthos-Modus abgeschlossen ist, führen Sie die folgenden Befehle aus:

cd anthos-baremetal-private-mode

# Add actl command line tool and tools directory to the PATH
export PATH=$PWD/bin:$PATH

# Download Harbor offline installer
curl -SL \
  https://github.com/goharbor/harbor/releases/download/v2.2.0/harbor-offline-installer-v2.2.0.tgz \
  --output "local-registry/harbor-offline-installer.tgz"

# Install docker-compose
curl -SL \
  https://github.com/docker/compose/releases/download/1.28.5/docker-compose-Linux-x86_64 \
  --output "local-registry/docker-compose"

Sie benötigen danach keine Internetverbindung, bis Sie die Demoanwendung bereitstellen.

Lokale Container-Registry einrichten

Im privaten Anthos-Modus werden die Anthos-Container-Images in einer lokalen Container Registry gespeichert.

Exportieren Sie die folgenden Umgebungsvariablen:

export REGISTRY_HOST=REGISTRY_HOST
export REGISTRY_PASSWORD=REGISTRY_PASSWORD

# By default, a library public project is created,
# and you can also create other private projects via the container registry portal.
export PRIVATE_REGISTRY=${REGISTRY_HOST}/library

Dabei gilt:

  • REGISTRY_HOST ist Ihre Registry-IP-Adresse. Wenn Sie die Container-Registry des privaten Anthos-Modus auf der Administrator-Workstation installieren und verwenden möchten, verwenden Sie hier die IP-Adresse Ihrer Administrator-Workstation.

  • REGISTRY_PASSWORD ist der Wert, den Sie für Ihr Registry-Passwort festgelegt haben.

Container-Registry des privaten Anthos-Modus einrichten

In diesem Abschnitt richten Sie eine private Container Registry auf der Administrator-Workstation ein. Führen Sie alle unten genannten Befehle auf der Administrator-Workstation aus.

  1. Wenn Sie keine eigene private Container-Registry haben, installieren Sie die Container-Registry des privaten Anthos-Modus.

    cd ~/anthos-baremetal-private-mode
    
    # Move it to a path under $PATH
    chmod a+x local-registry/docker-compose
    sudo cp local-registry/docker-compose /usr/bin
    
    # Install local registry
    ./local-registry/install.sh
    
  2. Melden Sie sich in der Registry an, um zu prüfen, ob Sie Zugriff haben. Wenn Sie eine Fehlermeldung erhalten, müssen Sie möglicherweise einige Sekunden warten.

    docker login ${REGISTRY_HOST} -u admin -p ${REGISTRY_PASSWORD}
    

Die Container-Registry ist nach dem Start des Dienstes unter https://REGISTRY_HOST/ verfügbar. Die Anmeldedaten sind der Nutzername admin und REGISTRY_PASSWORD für das Passwort.

Images in Container Registry hochladen

In diesem Abschnitt laden Sie die Container-Images im privaten Anthos-Modus in Ihre Container Registry hoch.

Bereiten Sie die Container-Images des privaten Anthos-Modus vor und laden Sie sie in Ihre Container-Registry hoch. Wenn Sie dazu aufgefordert werden, wählen Sie die Option Use that credential aus oder geben Sie die neuen Anmeldedaten ein.

actl images push --private-registry=${PRIVATE_REGISTRY} \
    --images ~/anthos-baremetal-private-mode

Hinweis: Wenn Sie auf Ihrer Workstation einen HTTP-Proxy verwenden, müssen Sie möglicherweise die folgenden Umgebungsvariablen deaktivieren, damit der Befehl actl images push funktioniert:

unset http_proxy
unset https_proxy
unset HTTP_PROXY
unset HTTPS_PROXY

Management Center installieren

In diesem Abschnitt installieren Sie einen Anthos-Administratorcluster auf Bare-Metal-Maschinen und installieren dann das Anthos Management Center im Administratorcluster.

Konfiguration des Administratorclusters vorbereiten

Aktualisieren Sie die Datei ./actl-workspace/admin/admin.yaml mit Einstellungen, die Ihrer Umgebung entsprechen.

vi ./actl-workspace/admin/admin.yaml

Füllen Sie die folgenden Felder aus:

  • Der sshPrivateKeyPath ist der Schlüssel, der während der Installation für den Zugriff auf die anderen Knoten verwendet wird, die Teil des Clusters sind. Dies ist die private Hälfte des öffentlichen Schlüssels, den Sie an die Knoten in den Voraussetzungen verteilt haben.

  • registryMirrors gibt den Speicherort aller Registry-Spiegel an, in denen die Docker-Images gespeichert sind.

    • registryMirrors.endpoint ist der Endpunkt des Spiegels. Das Format des Endpunkts lautet URL_SCHEME://REGISTRY_HOST/v2/IMAGE_PREFIX . Wenn Sie beispielsweise die Registry auf der Workstation erstellt haben, legen Sie den Endpunkt auf https://REGISTRY_HOST/v2/library fest. Beachten Sie, dass /v2/ zwischen REGISTRY_HOST und IMAGE_PREFIX erforderlich ist.

    • registryMirrors.pullCredentialConfigPath ist der Pfad für die Anmeldedaten. Normalerweise wird dieser in der Form /home/USER/.docker/config.json angegeben.

    • Der registryMirrors.caCertPath ist der Speicherort der Zertifikatsautorität, den die Registry für die Verschlüsselung des Traffics verwendet. Dieses Zertifikat wird während des Installationsprozesses auf die Knoten verteilt, damit sie Images aus der Registry herunterladen können. Der Pfad ist normalerweise /etc/docker/certs.d/REGISTRY_HOST/ca.crt.

  • Die Spezifikation controlPlane definiert, welche Knoten zur Steuerungsebene gehören.

    controlPlane:
      nodePoolSpec:
        nodes:
        # Control plane node pools. Typically, this is either a single machine
        # or 3 machines if using a high availability deployment.
        - address: 10.200.0.3
    
  • Die loadBalancer-Spezifikation definiert, welcher Load-Balancer-Typ verwendet wird. Die Standardkonfiguration installiert einen Load-Balancer in dem ausgeführten Cluster. In diesem Fall müssen Sie mindestens controlPlaneVIP festlegen, um einen virtuellen IP-Adresspool (VIP) zu identifizieren, der den Kubernetes API-Server und addressPools verfügbar macht, um bei Bedarf anfordernden Diensten VIPs zuzuweisen. Beispiel:

    loadBalancer:
      mode: bundled
      # There are two load balancer VIPs: one for the control plane and one for the
      # Layer 7 Ingress service.
      # The VIPs must be in the same subnet as the load balancer nodes.
      vips:
        # ControlPlaneVIP specifies the VIP to connect to the Kubernetes API server.
        # This address must not be in the address pools below.
        controlPlaneVIP: 10.200.0.50
      # AddressPools is a list of non-overlapping IP ranges for the data plane load
      # balancer.
      # All addresses must be in the same subnet as the load balancer nodes.
      # Address pool configuration is only valid for 'bundled' LB mode in non-admin
      # clusters.
      addressPools:
      - name: pool1
        addresses:
        # Each address must be either in the CIDR form (1.2.3.0/24)
        # or range form (1.2.3.1-1.2.3.5).
        - 10.200.0.51-10.200.0.59
    
  • Im letzten Abschnitt der Clusterspezifikation ist loginUser angegeben. Diese Anmeldung muss Zugriff auf den unten angegebenen SSH-Schlüssel haben; sie ist der Nutzer, für den der Schlüssel in den Voraussetzungen verteilt wurde.

    nodeAccess:
      loginUser: LOGIN_USERNAME
    

    Ersetzen Sie LOGIN_USERNAME durch den Nutzernamen, mit dem Sie sich beim Nutzercluster angemeldet haben.

  • Die Spezifikation nodePool gibt die Knoten an, auf denen Management Center Console, Prometheus, Grafana und andere Dienste im Administratorcluster gehostet werden. Diese Knoten sind die Worker-Knoten des Administratorclusters. Beispiel:

    apiVersion: baremetal.cluster.gke.io/v1
    kind: NodePool
    metadata:
      name: node-pool-1
      namespace: cluster-admin
    spec:
      # Cannot be changed, must be admin
      clusterName: admin
      nodes:
      - address: 10.200.0.6
    

Erstellen Sie den Administratorcluster.

Führen Sie den folgenden Befehl aus, um den Administratorcluster zu erstellen. Dies dauert etwa 30 Minuten.

cd ~/anthos-baremetal-private-mode
actl clusters baremetal create admin

Prüfen Sie nach dem Erstellen des Administratorclusters, ob Sie Zugriff darauf haben.

export ADMIN_KUBECONFIG=$(pwd)/bmctl-workspace/admin/admin-kubeconfig
KUBECONFIG=${ADMIN_KUBECONFIG} kubectl get nodes

Management Center installieren

  1. Installieren Sie Management Center mit der Standardkonfiguration auf dem Administratorcluster.

    cd ~/anthos-baremetal-private-mode
    actl platform management-center create
    
  2. Greifen Sie in Ihrem Browser auf das Anthos Management Center zu.

    actl platform management-center describe --kubeconfig=${ADMIN_KUBECONFIG}
    

Die Anthos Management Center-URL wird zurückgegeben.

Ressourcen registrieren

Inventarmaschinen registrieren

Zum Erstellen eines Nutzerclusters benötigt Anthos einen Pool inaktiver Maschinen. In diesem Abschnitt registrieren Sie Inventarmaschinen beim Anthos-Administratorcluster, um sie verfügbar zu machen.

kubectl apply -f <path/to/example-machine.yaml> --kubeconfig=${ADMIN_KUBECONFIG}

Beispiel:

apiVersion: baremetal.cluster.gke.io/v1alpha1
kind: InventoryMachine
metadata:
  name: IP_ADDRESS
  labels:
    "KEY": "VALUE"
spec:
  address: IP_ADDRESS

Dabei gilt:

  • IP_ADDRESS ist die IP-Adresse der Maschine, z. B. 10.200.0.10.
  • KEY:VALUE ist ein Schlüssel/Wert-Paar, z. B. "rack": "r1020", zur Angabe eines Racks.

Die labels sind Schlüssel/Wert-Paare im freien Format, die an die Ressource angehängt sind. Diese Labels können Sie später im Management Center verwenden, um Maschinen zu filtern. Beispiel: Anhand der Labels können Sie den Rack-Speicherort oder spezielle Hardwarekonfigurationen identifizieren.

Nutzercluster erstellen

Klicken Sie im Management Center auf der Seite Cluster auf Erstellen, um einen neuen Anthos-Nutzercluster zu erstellen. Nachdem der Cluster erstellt wurde, wird er automatisch im Management Center registriert und sofort im Cluster-Dashboard angezeigt.

Cluster erstellen

Es kann bis zu 15 Minuten dauern, bis die Installation abgeschlossen und bereit ist. In der Zwischenzeit können Sie den Status des Nutzerclusters mit dem folgenden Befehl prüfen:

kubectl get Cluster -n USER_CLUSTER_NAME --kubeconfig=${ADMIN_KUBECONFIG}

Ersetzen Sie dabei USER_CLUSTER_NAME durch den Namen des Clusters, den Sie erstellt haben.

Sobald der Status "Bereit" lautet, wird der Cluster erstellt und im Administratorcluster registriert.

Zugriff auf den Nutzercluster erhalten

Nachdem der Nutzercluster erstellt wurde, können Sie die kubeconfig über das Management Center herunterladen.

Demo-App bereitstellen

Sie können den privaten Anthos-Modus ausprobieren, indem Sie die Online Boutique-Beispielanwendung ausprobieren.

Image herunterladen

Für die Schritte in diesem Abschnitt ist eine Internetverbindung erforderlich.

  1. Laden Sie das Beispiel-Repository herunter:

    git clone https://github.com/GoogleCloudPlatform/microservices-demo.git/ online-boutique
    
  2. Laden Sie die Images herunter:

    IMAGES=$(cat online-boutique/release/kubernetes-manifests.yaml | grep image | sed "s/ *image: //")
    actl images save --output online-boutique-images ${IMAGES}
    

Beispiel bereitstellen

  1. Verschieben Sie die Images in die private Registry:

    actl images push --images online-boutique-images --private-registry=PRIVATE_REGISTRY
    

    Ersetzen Sie PRIVATE_REGISTRY durch den Namen Ihrer privaten Registry.

  2. Erstellen Sie einen Namespace für die Anwendung.

    kubectl create namespace demo --kubeconfig=USER_CLUSTER_KUBECONFIG
    

    Ersetzen Sie USER_CLUSTER_KUBECONFIG durch den Pfad zur Kubeconfig-Datei des Nutzerclusters.

  3. Stellen Sie das Beispiel im Cluster bereit:

    kubectl apply -n demo -f online-boutique/release/ --kubeconfig=USER_CLUSTER_KUBECONFIG
    

Online-Boutique mit unzureichenden Ressourcen

Bereinigen

Löschen Sie den Nutzercluster mit dem folgenden Befehl:

kubectl -n cluster-USER_CLUSTER_NAME \
  delete Cluster USER_CLUSTER_NAME --kubeconfig=ADMIN_KUBECONFIG

Nächste Schritte