Schnellstart

In dieser Kurzanleitung erstellen Sie eine einfache virtuelle Maschine (VM) in Compute Engine und migrieren diese dann mithilfe von Migrate for Anthos zu einem GKE-Verarbeitungscluster in der Cloud.

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

  1. 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.
  2. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für Ihr Projekt aktiviert ist.

  4. Aktivieren Sie die Compute Engine API.

    API aktivieren

GKE aktivieren und konfigurieren

Führen Sie die folgenden Aufgaben aus, bevor Sie beginnen:

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.

  1. 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
  2. Folgen Sie der Anleitung, um gcloud zur Verwendung Ihres Google Cloud-Kontos zu autorisieren.
  3. Erstellen Sie eine neue Konfiguration oder wählen Sie eine vorhandene aus.
  4. Wählen Sie ein Google Cloud-Projekt aus.
  5. 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.

  1. 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
    
  2. 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
    
  3. Öffnen Sie in der Google Cloud Console die Seite "VM-Instanzen".

    Zur Seite "VM-Instanzen"

  4. 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.

  5. 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.

  6. Ü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
    
  7. Suchen Sie auf der Seite VM-Instanzen nach der Zeile für die von Ihnen erstellte Instanz und kopieren Sie die externe IP-Adresse.

  8. 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.

  9. Klicken Sie auf der Seite VM-Instanzen auf das Kästchen am linken Ende der Zeile für die von Ihnen erstellte Instanz.

  10. 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.

  1. 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"
    
  2. 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:

    1. Erstellen Sie in der Cloud Shell das Dienstkonto m4a-install:

      gcloud iam service-accounts create m4a-install \
        --project=PROJECT_ID
    2. 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"
    3. 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 
    4. Als Nächstes erstellen Sie die Verbindung zum Cluster:

      gcloud container clusters get-credentials migration-processing \
        --zone zone --project project-id
      
    5. 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
      
    6. 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.

    1. Öffnen Sie in der Cloud Console die Seite "Migrate for Anthos".

      Zur Seite "Migrate for Anthos"

    2. Klicken Sie auf Verarbeitungscluster hinzufügen.

    3. Wählen Sie in der Drop-down-Liste den oben erstellten Cluster migration-processing aus.

    4. 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.
    5. 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
      
    6. 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.

  1. 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:

    1. Erstellen Sie in der Cloud Shell das Dienstkonto m4a-ce-src:

      gcloud iam service-accounts create m4a-ce-src \
        --project=PROJECT_ID
    2. 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"
    3. 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"
    4. 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 
    5. 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

    1. Öffnen Sie in der Cloud Console die Seite "Migrate for Anthos".

      Zur Seite "Migrate for Anthos"

    2. Klicken Sie auf Quelle hinzufügen.

    3. Wählen Sie in der Drop-down-Liste einen Cluster aus, in dem Sie die Migrate for Anthos-Komponenten bereits installiert haben.

    4. Klicken Sie auf Weiter.

    5. Geben Sie den Namen der Migration als quickstart-source an.

    6. Legen Sie den Quelltyp auf Compute Engine fest.

    7. Klicken Sie auf Weiter.

    8. Wählen Sie das Projekt aus, das die zu migrierende VM enthält.

    9. 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.

    10. Klicken Sie auf Weiter.

    11. Wählen Sie Quelle hinzufügen aus.

  2. 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

    1. Öffnen Sie in der Cloud Console die Seite "Migrate for Anthos".

      Zur Seite "Migrate for Anthos"

    2. Klicken Sie auf Migration erstellen.

    3. Legen Sie Name der Migration auf migration fest.

    4. Wählen Sie die Migrationsquelle aus, die Sie im vorherigen Schritt erstellt haben: quickstart-source.

    5. Legen Sie VM-Name oder ID für die Quelle auf quickstart-instance fest.

    6. Legen Sie Migrationszweck auf Image fest.

    7. Klicken Sie auf Migration erstellen.

      Wenn die Migration abgeschlossen ist, wird in der Spalte Status der Eintrag Migrationsplan generiert angezeigt.

  3. 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:

    1. Laden Sie den Migrationsplan herunter:

      migctl migration get my-migration
      
    2. Öffnen Sie den heruntergeladenen Migrationsplan my-migration.yaml in einem Texteditor, um ihn zu prüfen.

    3. 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.

    1. Wählen Sie in der Zeile für die gewünschte Migration den Namen der Migration aus, um den Tab Details zu öffnen.

    2. Wählen Sie den Tab YAML aus.

    3. Prüfen Sie den Migrationsplan.

    4. Klicken Sie auf das "X" rechts oben, um den Plan zu schließen, ohne ihn zu bearbeiten.

  4. 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

    1. Öffnen Sie in der Cloud Console die Seite "Migrate for Anthos".

      Zur Seite "Migrate for Anthos"

    2. Wählen Sie in der Zeile der gewünschten Migration im Drop-down-Menü Weitere Informationen die Option Artefakte generieren aus.

  5. 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

    1. Öffnen Sie in der Cloud Console die Seite "Migrate for Anthos".

      Zur Seite "Migrate for Anthos"

    2. 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.

    3. 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.

  1. Laden Sie nach Abschluss der Migration die generierten YAML-Artefakte herunter.

    migctl

    migctl migration get-artifacts my-migration
    

    Console

    1. Öffnen Sie in der Cloud Console die Seite "Migrate for Anthos".

      Zur Seite "Migrate for Anthos"

    2. 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.

    3. Wählen Sie den Tab Artefakte aus.

    4. 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.
  2. Öffnen Sie die Datei deployment_spec.yaml und suchen Sie das Service-Objekt, dessen Name quickstart-instance ist.

  3. Fügen Sie unter der Service-Definition einen weiteren Service 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
    
    

  4. 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.

  5. 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
    
  6. 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.

Nächste Schritte