Kurzanleitung zur Installation des privaten Anthos-Modus
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.8.5-gke.1
# Please use official 'INSTALLER_DIGEST' value from https://cloud.google.com/anthos/private-mode/docs/1.8/installing/infrastructure#download
export INSTALLER_DIGEST=7747774fc4274f330558c647b4268c3ef7fcac355c3f3451d7c6c09b8d91b933
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.
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
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 lautetURL_SCHEME://REGISTRY_HOST/v2/IMAGE_PREFIX
. Wenn Sie beispielsweise die Registry auf der Workstation erstellt haben, legen Sie den Endpunkt aufhttps://REGISTRY_HOST/v2/library
fest. Beachten Sie, dass/v2/
zwischenREGISTRY_HOST
undIMAGE_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 mindestenscontrolPlaneVIP
festlegen, um einen virtuellen IP-Adresspool (VIP) zu identifizieren, der den Kubernetes API-Server undaddressPools
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 # L7 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
Installieren Sie Management Center mit der Standardkonfiguration auf dem Administratorcluster.
cd ~/anthos-baremetal-private-mode actl platform management-center create
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.
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.
Laden Sie das Beispiel-Repository herunter:
git clone https://github.com/GoogleCloudPlatform/microservices-demo.git/ online-boutique
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
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.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.Stellen Sie das Beispiel im Cluster bereit:
kubectl apply -n demo -f online-boutique/release/ --kubeconfig=USER_CLUSTER_KUBECONFIG
Bereinigen
Löschen Sie den Nutzercluster mit dem folgenden Befehl:
kubectl -n cluster-USER_CLUSTER_NAME \
delete Cluster USER_CLUSTER_NAME --kubeconfig=ADMIN_KUBECONFIG