Sie können die Schritte in der Kurzanleitung mit dem migctl
-Tool oder der Google Cloud Console ausführen. migctl
ist ein Befehlszeilentool zum Einrichten und Verwalten einer Migrate for Anthos-Migrationsumgebung in Google Cloud. migctl
ist in Cloud Shell verfügbar.
Hinweis
Unterstützung für Compute Engine aktivieren
- Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
-
Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für Ihr Projekt aktiviert ist.
- Aktivieren Sie die Compute Engine API.
GKE aktivieren und konfigurieren
Führen Sie die folgenden Aufgaben aus, bevor Sie beginnen:
- Achten Sie darauf, dass die Google Kubernetes Engine API aktiviert ist. Aktivieren Sie Google Kubernetes Engine API
- Prüfen Sie, ob das Cloud SDK installiert ist.
Mit den folgenden Methoden können Sie die gcloud
-Einstellungen festlegen:
- Verwenden Sie
gcloud init
, wenn Sie die Standardeinstellungen ansehen möchten. - Verwenden Sie
gcloud config
, um Ihre Projekt-ID, Zone und Region individuell festzulegen.
gcloud init verwenden
Wenn Sie die Fehlermeldung One of [--zone, --region] must be supplied: Please specify
location
erhalten, führen Sie diesen Abschnitt aus.
-
Führen Sie
gcloud init
aus und folgen Sie der Anleitung:gcloud init
Wenn Sie SSH auf einem Remote-Server verwenden, können Sie mit dem Flag
--console-only
verhindern, dass mit dem Befehl ein Browserfenster geöffnet wird:gcloud init --console-only
- Folgen Sie der Anleitung, um
gcloud
zur Verwendung Ihres Google Cloud-Kontos zu autorisieren. - Erstellen Sie eine neue Konfiguration oder wählen Sie eine vorhandene aus.
- Wählen Sie ein Google Cloud-Projekt aus.
- Wählen Sie eine Compute Engine-Standardzone für zonale Cluster oder eine Region für regionale oder Autopilot-Cluster aus.
gcloud config verwenden
- Legen Sie Ihre standardmäßige Projekt-ID fest:
gcloud config set project PROJECT_ID
- Wenn Sie mit zonalen Clustern arbeiten, legen Sie die Standardzone für Compute Engine fest:
gcloud config set compute/zone COMPUTE_ZONE
- Wenn Sie mit Autopilot oder regionalen Clustern arbeiten, legen Sie die Compute-Standardregion fest:
gcloud config set compute/region COMPUTE_REGION
- Aktualisieren Sie
gcloud
auf die neueste Version:gcloud components update
VM mit einem Webserver erstellen
In den folgenden Schritten erstellen Sie eine einfache Compute Engine-VM, die die Webseite „Hello World!“ bereitstellt. Die Seite können Sie nach der Migration für Tests heranziehen.
Führen Sie den unten aufgeführten Befehl aus, um die VM-Instanz zu erstellen, die migriert werden soll.
Geben Sie eine Zone an, die sich in derselben Zone befindet, in der Sie später in diesem Thema einen GKE-Cluster erstellen.
gcloud compute instances create quickstart-instance \ --project=project-id --zone=zone --machine-type=n1-standard-1 \ --subnet=default --scopes="cloud-platform" \ --tags=http-server,https-server --image=ubuntu-minimal-1604-xenial-v20210119a \ --image-project=ubuntu-os-cloud --boot-disk-size=10GB --boot-disk-type=pd-standard \ --boot-disk-device-name=quickstart-instance
Führen Sie den folgenden Befehl aus, um eine Firewallregel zu erstellen, die Anfragen an die Instanz über HTTP zulässt.
gcloud compute --project=project-id firewall-rules create default-allow-http \ --direction=INGRESS --priority=1000 --network=default --action=ALLOW \ --rules=tcp:80 --source-ranges=0.0.0.0/0 --target-tags=http-server
Öffnen Sie in der Google Cloud Console die Seite "VM-Instanzen".
Klicken Sie in der Liste der VM-Instanzen in der Zeile der gerade erstellten Instanz auf "SSH".
Weitere Informationen zum Herstellen einer Verbindung über SSH finden Sie unter Verbindung zu Instanzen herstellen.
Verwenden Sie im Befehlsfenster von "quickstart-instance" den Paketmanager, um das Paket
apache2
zu installieren.sudo apt-get update && sudo apt-get install apache2 -y
Nach der Installation von Apache startet das Betriebssystem den Apache-Server automatisch.
Überschreiben Sie im selben Befehlsfenster die Standardwebseite des Apache-Webservers mit dem folgenden Befehl:
echo '<!doctype html><html><body><h1>Hello World!</h1></body></html>' | sudo tee /var/www/html/index.html
Suchen Sie auf der Seite VM-Instanzen nach der Zeile für die von Ihnen erstellte Instanz und kopieren Sie die externe IP-Adresse.
Fügen Sie die IP-Adresse der Instanz in die Adressleiste des Browsers ein. Stellen Sie ihr das Präfix
http://
voran.Jetzt sollten Sie die Seite „Hello World!“ sehen.
Klicken Sie auf der Seite VM-Instanzen auf das Kästchen am linken Ende der Zeile für die von Ihnen erstellte Instanz.
Klicken Sie oben auf der Seite auf die Schaltfläche Beenden, um die VM zu beenden.
Verarbeitungscluster erstellen und Migrate for Anthos installieren
In den folgenden Schritten erstellen Sie in der Cloud einen GKE-Cluster, den Sie als Verarbeitungscluster verwenden. In diesem Cluster installieren Sie dann Migrate for Anthos und führen die Migration aus.
Erstellen Sie in Cloud Shell mit folgendem Befehl einen neuen Kubernetes-Cluster, der als Verarbeitungscluster verwendet werden soll.
Achten Sie bei der Angabe des Werts für
machine-type
darauf, einen Maschinentyp mit mindestens 15 GB Arbeitsspeicher festzulegen.gcloud container clusters create migration-processing \ --project=project-id --zone=zone --machine-type n1-standard-4 \ --image-type ubuntu --num-nodes 1 --enable-stackdriver-kubernetes \ --subnetwork "projects/project-id/regions/region/subnetworks/default"
Installieren Sie Migrate for Anthos.
migctl
Damit Migrate for Anthos auf Container Registry und Cloud Storage zugreifen kann, müssen Sie ein Dienstkonto mit der Rolle storage.admin erstellen:
Erstellen Sie in der Cloud Shell das Dienstkonto
m4a-install
:gcloud iam service-accounts create m4a-install \ --project=PROJECT_ID
Weisen Sie dem Dienstkonto die Rolle
storage.admin
zu.gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:m4a-install@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/storage.admin"
Laden Sie die Schlüsseldatei für das Dienstkonto herunter:
gcloud iam service-accounts keys create m4a-install.json \ --iam-account=m4a-install@PROJECT_ID.iam.gserviceaccount.com \ --project=PROJECT_ID
Als Nächstes erstellen Sie die Verbindung zum Cluster:
gcloud container clusters get-credentials migration-processing \ --zone zone --project project-id
Richten Sie in Cloud Shell Migrate for Anthos-Komponenten auf Ihrem Verarbeitungscluster mithilfe des
migctl
-Befehlszeilentools ein, das in Migrate for Anthos enthalten ist:migctl setup install --json-key=m4a-install.json
Prüfen Sie die Installation von Migrate for Anthos.
Bestätigen Sie mit dem Befehl
migctl doctor
, dass die Bereitstellung erfolgreich war.migctl doctor
Es kann länger als eine Minute dauern, bis der Befehl das folgende Erfolgsergebnis zurückgibt.
[✓] Deployment
Console
Die Google Cloud Console unterstützt Sie bei der Installation, indem Sie die erforderlichen Installationsbefehle generieren und in Cloud Shell ausführen tut.
Öffnen Sie in der Cloud Console die Seite "Migrate for Anthos".
Klicken Sie auf Verarbeitungscluster hinzufügen.
Wählen Sie in der Drop-down-Liste den oben erstellten Cluster
migration-processing
aus.Führen Sie die Befehle in Cloud Shell aus, um Folgendes zu tun:
- Erstellen Sie ein Dienstkonto, mit dem Migrate for Anthos auf Container Registry und Cloud Storage zugreifen kann.
- Installieren Sie Migrate for Anthos-Komponenten.
Mit dem letzten Cloud Shell-Befehl können Sie den Installationsstatus überwachen.
Vor Abschluss der Installation wird möglicherweise eine Meldung wie die folgende angezeigt. Warten Sie in diesem Fall einige Minuten, bis die Installation abgeschlossen ist, bevor Sie
migctl doctor
noch einmal ausführen.migctl doctor [!] Deployment validation job is in-progress
In der folgenden Beispielausgabe bedeutet das Häkchen, dass Migrate for Anthos bereitgestellt wurde.
migctl doctor [✓] Deployment
Wählen Sie nach Abschluss der Installation die Option Fertig aus.
VM migrieren
Mit den folgenden Schritten erstellen Sie einen Migrationsplan mit Migrationsdetails und verwenden ihn dann für die Migration der VM.
Geben Sie die Migrationsquelle als Compute Engine-VM an. In diesem Schritt wird dem Migrationsplan die Quellspezifikation hinzugefügt.
migctl
Wenn Sie Compute Engine als Migrationsquelle verwenden möchten, müssen Sie zuerst ein Dienstkonto mit den Rollen compute.viewer und compute.storageAdmin:
Erstellen Sie in der Cloud Shell das Dienstkonto
m4a-ce-src
:gcloud iam service-accounts create m4a-ce-src \ --project=PROJECT_ID
Weisen Sie dem Dienstkonto die Rolle
compute.viewer
zu.gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:m4a-ce-src@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/compute.viewer"
Weisen Sie dem Dienstkonto die Rolle
compute.storageAdmin
zu.gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:m4a-ce-src@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/compute.storageAdmin"
Laden Sie die Schlüsseldatei für das Dienstkonto herunter:
gcloud iam service-accounts keys create m4a-ce-src.json \ --iam-account=m4a-ce-src@PROJECT_ID.iam.gserviceaccount.com \ --project=PROJECT_ID
Erstellen Sie die Migrationsquelle:
migctl source create ce quickstart-source --project project-id --json-key=m4a-ce-src.json
Dabei gibt
m4a-ce-src.json
das Dienstkonto an, das Sie oben erstellt haben.
Console
Öffnen Sie in der Cloud Console die Seite "Migrate for Anthos".
Klicken Sie auf Quelle hinzufügen.
Wählen Sie in der Drop-down-Liste einen Cluster aus, in dem Sie die Migrate for Anthos-Komponenten bereits installiert haben.
Klicken Sie auf Weiter.
Geben Sie den Namen der Migration als
quickstart-source
an.Legen Sie den Quelltyp auf Compute Engine fest.
Klicken Sie auf Weiter.
Wählen Sie das Projekt aus, das die zu migrierende VM enthält.
Erstellen Sie ein Dienstkonto, mit dem Sie Compute Engine als Migrationsquelle verwenden können. Wählen Sie dazu Neues Dienstkonto erstellen aus. Sie werden aufgefordert, den Namen des neuen Dienstkontos einzugeben.
Klicken Sie auf Weiter.
Wählen Sie Quelle hinzufügen aus.
Migration erstellen
migctl
Mit diesem Befehl erstellen Sie einen Migrationsplan, der definiert, was migriert werden soll:
migctl migration create my-migration --source quickstart-source \ --vm-id quickstart-instance --intent Image
Wenn der Migrationsstatus anzeigt, dass die Migration erstellt wurde, können Sie mit dem nächsten Schritt fortfahren:
migctl migration status my-migration NAME CURRENT-OPERATION PROGRESS STEP STATUS AGE my-migration GenerateMigrationPlan [1/3] CreateSourceSnapshots Running 13s
Console
Öffnen Sie in der Cloud Console die Seite "Migrate for Anthos".
Klicken Sie auf Migration erstellen.
Legen Sie Name der Migration auf
migration
fest.Wählen Sie die Migrationsquelle aus, die Sie im vorherigen Schritt erstellt haben:
quickstart-source
.Legen Sie VM-Name oder ID für die Quelle auf
quickstart-instance
fest.Legen Sie Migrationszweck auf
Image
fest.Klicken Sie auf Migration erstellen.
Wenn die Migration abgeschlossen ist, wird in der Spalte Status der Eintrag Migrationsplan generiert angezeigt.
Prüfen Sie den Migrationsplan.
In dieser Kurzanleitung prüfen Sie den Migrationsplan lediglich. Sie können ihn jedoch auch bearbeiten. Weitere Informationen finden Sie unter Migrationsplan anpassen.
migctl
Sie müssen den Migrationsplan herunterladen, damit Sie ihn prüfen können:
Laden Sie den Migrationsplan herunter:
migctl migration get my-migration
Öffnen Sie den heruntergeladenen Migrationsplan
my-migration.yaml
in einem Texteditor, um ihn zu prüfen.Wenn Sie Änderungen vorgenommen haben, laden Sie den bearbeiteten Migrationsplan hoch (für die Kurzanleitung sind keine Änderungen erforderlich):
migctl migration update my-migration --file my-migration.yaml
Console
Prüfen Sie in der Google Cloud Console den Migrationsplan mithilfe des YAML-Editors.
Wählen Sie in der Zeile für die gewünschte Migration den Namen der Migration aus, um den Tab Details zu öffnen.
Wählen Sie den Tab YAML aus.
Prüfen Sie den Migrationsplan.
Klicken Sie auf das "X" rechts oben, um den Plan zu schließen, ohne ihn zu bearbeiten.
Migrieren Sie die VM mithilfe des Migrationsplans.
In diesem Schritt migrieren Sie die VM und generieren Artefakte, die Sie zum Bereitstellen der Arbeitslast verwenden können.
migctl
migctl migration generate-artifacts my-migration
Console
Öffnen Sie in der Cloud Console die Seite "Migrate for Anthos".
Wählen Sie in der Zeile der gewünschten Migration im Drop-down-Menü Weitere Informationen die Option Artefakte generieren aus.
Behalten Sie nach Beginn der Migration deren Status im Blick, bis sie abgeschlossen ist.
Die Migration kann einige Minuten dauern. Wenn Sie währenddessen den Status prüfen, wird der aktuelle Status der Migration gemeldet.
migctl
migctl migration status my-migration
Nach Abschluss der Migration sollten Sie eine Meldung wie die folgende sehen:
migctl migration status my-migration NAME CURRENT-OPERATION PROGRESS STEP STATUS AGE my-migration GenerateArtifacts [1/1] ExtractImage Completed 14m23s
Console
Öffnen Sie in der Cloud Console die Seite "Migrate for Anthos".
Sehen Sie sich den Status einer Migration mit einer der folgenden Methoden an:
Sehen Sie sich in der Zeile Ihrer Migration die Spalte Status an.
Klicken Sie auf den Namen der Migration. Die Seite Migrationsdetails wird geöffnet. Klicken Sie auf den Tab Monitoring, um die Statusdetails aufzurufen, oder auf den Tab Ereignisse, um die Migrationsereignisse aufzurufen.
Wenn die Migration abgeschlossen ist, wird der Status als Migrationsplan erstellt angezeigt.
Migrierte Arbeitslast bereitstellen
Mit den folgenden Schritten rufen Sie die Bereitstellungsartefakte ab, die Sie während der Migration generiert haben. Anschließend stellen Sie damit die migrierte Arbeitslast im Cluster bereit. Als letzten Schritt bestätigen Sie, dass die Webseite „Hello World!“ in Ihrer migrierten Anwendung verfügbar ist.
Laden Sie nach Abschluss der Migration die generierten YAML-Artefakte herunter.
migctl
migctl migration get-artifacts my-migration
Console
Öffnen Sie in der Cloud Console die Seite "Migrate for Anthos".
Klicken Sie in der Zeile für die gewünschte Migration auf den Namen der Migration. Der Tab Details für die Migration wird geöffnet.
Wählen Sie den Tab Artefakte aus.
Wählen Sie die einzelnen Dateien aus, um sie separat herunterzuladen.
Zu den heruntergeladenen Artefaktdateien, die während der Migration generiert wurden, gehören:
deployment_spec.yaml
: Die YAML-Datei, die Ihre Arbeitslast konfiguriert.- Dockerfile: Das Dockerfile, das zum Erstellen des Images für die migrierte VM verwendet wird.
migration.yaml
: Eine Kopie des Migrationsplans.blocklist.yaml
: Die Liste der Containerdienste, die aufgrund der Einstellungen im Migrationsplan deaktiviert werden sollen. Siehe Liste der Dienste anpassen.
Öffnen Sie die Datei
deployment_spec.yaml
und suchen Sie dasService
-Objekt, dessen Namequickstart-instance
ist.Fügen Sie unter der
Service
-Definition einen weiterenService
ein, der Port 80 für den Zugriff auf Ihren Webserver über HTTP freigibt. Speichern Sie dann die Datei.Fügen Sie den hervorgehobenen Code so ein, dass die Bereitstellungsspezifikation Folgendes enthält.
apiVersion: v1 kind: Service metadata: creationTimestamp: null name: quickstart-instance spec: clusterIP: None selector: app: quickstart-instance type: ClusterIP status: loadBalancer: {} --- apiVersion: v1 kind: Service metadata: name: hello-service spec: selector: app: quickstart-instance ports: - protocol: TCP port: 80 targetPort: 80 type: LoadBalancer
Wenden Sie die YAML-Datei mit der Bereitstellungsspezifikation an, um die Arbeitslast bereitzustellen.
kubectl apply -f deployment_spec.yaml
Es kann einige Minuten dauern, bis die Bereitstellung abgeschlossen ist.
Suchen Sie nach einer externen IP-Adresse:
kubectl get service hello-service
Wenn der Webserver bereit ist, wird eine externe IP-Adresse für den hinzugefügten
hello-service
angezeigt.kubectl get service hello-service NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE hello-service LoadBalancer 10.23.241.124 ##.##.###.## 80:32611/TCP 5m4s
Testen Sie die Migration. Öffnen Sie dazu einen Browser und rufen Sie die Webseite unter der externen IP-Adresse auf. Verwenden Sie dabei HTTP und nicht HTTPS.
http://##.##.###.##
Sie können bash
-Befehle für den Container mit der migrierten Arbeitslast ausführen. Weitere Informationen finden Sie unter Fehlerbehebung.
Bereinigen
Löschen Sie das Projekt mit der Google Cloud Console, wenn Sie es nicht benötigen. Damit vermeiden Sie unnötige Kosten für Google Cloud.