Bereitstellen einer zustandslosen PHP-Guestbook-Anwendung mit Redis in einem Kubernetes-Cluster mit Azure Arc-Unterstützung auf einer Azure Stack Edge Pro-GPU

GILT FÜR:Yes for Pro GPU SKUAzure Stack Edge Pro – GPUYes for Pro 2 SKUAzure Stack Edge Pro 2Yes for Pro R SKUAzure Stack Edge Pro RYes for Mini R SKUAzure Stack Edge Mini R

In diesem Artikel erfahren Sie, wie Sie eine einfache, mehrstufige Webanwendung mit Kubernetes und Azure Arc erstellen und bereitstellen. Dieses Beispiel besteht aus den folgenden Komponenten:

  • Einen Redis-Master (Einzelinstanz) zum Speichern von guestbook-Einträgen
  • Mehrere replizierte Redis-Instanzen für Lesevorgänge
  • Mehrere Front-End-Webinstanzen

Die Bereitstellung erfolgt unter Verwendung von GitOps in dem Kubernetes-Cluster mit Azure Arc-Unterstützung auf Ihrem Azure Stack Edge Pro-Gerät.

Dieses Verfahren ist für Personen gedacht, die den Artikel Kubernetes-Workloads auf einem Azure Stack Edge Pro-Gerät gelesen haben und mit den in Was ist Kubernetes mit Azure Arc-Unterstützung (Vorschauversion)? beschriebenen Konzepten vertraut sind.

Hinweis

Dieser Artikel enthält Verweise auf den Begriff Slave, einen Begriff, den Microsoft nicht mehr verwendet. Sobald der Begriff aus der Software entfernt wird, wird er auch aus diesem Artikel entfernt.

Voraussetzungen

Stellen Sie vor der Bereitstellung der zustandslosen Anwendung sicher, dass die folgenden Voraussetzungen auf Ihrem Gerät und auf dem Client erfüllt sind, den Sie für den Zugriff auf das Gerät verwenden:

Für das Gerät

  1. Sie verfügen über Anmeldeinformationen für ein Azure Stack Edge Pro-Gerät mit einem Knoten.

    1. Das Gerät ist aktiviert. Weitere Informationen finden Sie unter Aktivieren des Geräts.
    2. Das Gerät verfügt über die über das Azure-Portal konfigurierte Computerolle und umfasst einen Kubernetes-Cluster. Siehe Konfigurieren der Computeumgebung.
  2. Sie haben Azure Arc im vorhandenen Kubernetes-Cluster auf Ihrem Gerät aktiviert und verfügen im Azure-Portal über eine entsprechende Azure Arc-Ressource. Die ausführlichen Schritte sind unter Aktivieren von Azure Arc auf einem Azure Stack Edge Pro-Gerät beschrieben.

Für den Client, der auf das Gerät zugreift

  1. Sie verfügen über ein Windows-Clientsystem, das für den Zugriff auf das Azure Stack Edge Pro-Gerät verwendet wird.

    • Auf dem Client wird Windows PowerShell 5.0 oder höher ausgeführt. Informationen zum Herunterladen der neuesten Version von Windows PowerShell finden Sie unter Installieren von Windows PowerShell.

    • Sie können auch einen anderen Client mit einem unterstützten Betriebssystem verwenden. In diesem Artikel wird die Vorgehensweise bei Verwendung eines Windows-Clients beschrieben.

  2. Sie haben die unter Zugreifen auf den Kubernetes-Cluster auf dem Azure Stack Edge Pro-Gerät beschriebenen Schritte ausgeführt. Sie haben:

    • kubectl auf dem Client installiert.

    • Stellen Sie sicher, dass die kubectl-Clientversion um nicht mehr als eine Version von der Kubernetes-Masterversion abweicht, die auf dem Azure Stack Edge Pro-Gerät ausgeführt wird.

      • Verwenden Sie kubectl version, um die kubectl-Version zu überprüfen, die auf dem Client ausgeführt wird. Notieren Sie sich den gesamten Versionsnamen.
      • Navigieren Sie auf der lokalen Benutzeroberfläche des Azure Stack Edge Pro-Geräts zu Übersicht, und notieren Sie sich die Kubernetes-Softwarenummer.
      • Überprüfen Sie anhand der Zuordnungen in der Liste der unterstützten Kubernetes-Versionen, ob diese beiden Versionen kompatibel sind.
  3. Sie verfügen über eine GitOps-Konfiguration, die Sie zum Ausführen einer Azure Arc-Bereitstellung verwenden können. In diesem Beispiel werden die folgenden yaml-Dateien für die Bereitstellung auf Ihrem Azure Stack Edge Pro-Gerät verwendet.

    • frontend-deployment.yaml
    • frontend-service.yaml
    • redis-master-deployment.yaml
    • redis-master-service.yaml
    • redis-slave-deployment.yaml
    • redis-slave-service.yaml

Bereitstellen der Konfiguration

Führen Sie diese Schritte aus, um die Azure Arc-Ressource für die Bereitstellung einer GitOps-Konfiguration über das Azure-Portal zu konfigurieren:

  1. Navigieren Sie im Azure-Portal zur Azure Arc-Ressource, die Sie beim Aktivieren von Azure Arc im Kubernetes-Cluster auf Ihrem Gerät erstellt haben.

    Go to Azure Arc resource

  2. Navigieren Sie zu Konfigurationen, und wählen Sie + Konfiguration hinzufügen aus.

    Screenshot shows the Azure Arc-enabled Kubernetes cluster with Add configuration selected.

  3. Geben Sie die Flux Version 1 Erweiterung an.

  4. Geben Sie in "GitOps-Konfiguration hinzufügen" die entsprechenden Werte für die Felder ein, und wählen Sie dann "Hinzufügen" aus.

    Parameter Beschreibung
    Konfigurationsname Name der Konfigurationsressource.
    Name der Operatorinstanz Instanzname des Operators zur Identifizierung einer bestimmten Konfiguration. Dieser Name ist eine Zeichenfolge aus maximal 253 Zeichen, bei denen es sich ausschließlich um Kleinbuchstaben, alphanumerische Zeichen, Bindestriche und Punkte handeln darf.
    Operatornamespace Legen Sie diesen Namespace auf demotestguestbook fest, sodass er dem in der Bereitstellung yaml angegebenen Namespace entspricht.
    Das Feld definiert den Namespace, in dem der Operator installiert ist. Dieser Name ist eine Zeichenfolge aus maximal 253 Zeichen, bei denen es sich ausschließlich um Kleinbuchstaben, alphanumerische Zeichen, Bindestriche und Punkte handeln darf.
    Repository-URL
    Pfad zum Git-Repository im http://github.com/username/repo- oder git://github.com/username/repo-Format, in dem sich Ihre GitOps-Konfiguration befindet.
    Operatorbereich Wählen Sie Namespace aus.
    Dieser Parameter definiert den Bereich, in dem der Operator installiert ist. Wählen Sie „Namespace“ aus, um Ihren Operator in dem Namespace zu installieren, der in den YAML-Bereitstellungsdateien angegeben ist.
    Operatortyp Übernehmen Sie die Standardeinstellung.
    Dieser Parameter gibt den Typ des Operators an. Standardmäßig ist „flux“ festgelegt.
    Operatorparameter Lassen Sie dieses Feld leer.
    Dieser Parameter enthält die Parameter zum Übergeben des Flux-Operators.
    Helm Lassen Sie dieses Kontrollkästchen deaktiviert.
    Aktivieren Sie diese Option, wenn Sie Chart-basierte Bereitstellungen vornehmen.

    Add configuration

  5. Die Bereitstellung der Konfiguration wird gestartet, und für Operatorstatus wird Ausstehend angezeigt.

    Screenshot shows the Azure Arc-enabled Kubernetes cluster in a pending state as it refreshes.

  6. Die Bereitstellung nimmt einige Minuten in Anspruch. Wenn die Bereitstellung abgeschlossen ist, wird für OperatorstatusInstalliert angezeigt.

    Screenshot shows the Azure Arc-enabled Kubernetes cluster in an installed state.

Überprüfen der Bereitstellung

Bei der Bereitstellung über die GitOps-Konfiguration wird ein demotestguestbook-Namespace gemäß Angabe in den yaml-Bereitstellungsdateien im Git-Repository erstellt.

  1. Nachdem Sie die GitOps-Konfiguration angewendet haben, führen Sie die Schritte unter Herstellen einer Verbindung mit der PowerShell-Schnittstelle des Geräts aus.

  2. Führen Sie den folgenden Befehl aus, um die ausgeführten Pods im Namespace demotestguestbook der Bereitstellung aufzulisten.

    kubectl get pods -n <your-namespace>

    Hier ist eine Beispielausgabe.

    [10.128.44.240]: PS>kubectl get pods -n demotestguestbook
    NAME                            READY   STATUS    RESTARTS   AGE
    aseoperator1-5569658644-cqtb5   1/1     Running   0          91m
    frontend-6cb7f8bd65-4xb4f       1/1     Running   0          91m
    frontend-6cb7f8bd65-q9cxj       1/1     Running   0          91m
    frontend-6cb7f8bd65-xpzs6       1/1     Running   0          91m
    memcached-86bdf9f56b-5l2fq      1/1     Running   0          91m
    redis-master-7db7f6579f-2z29w   1/1     Running   0          91m
    redis-slave-7664787fbc-lgr2n    1/1     Running   0          91m
    redis-slave-7664787fbc-vlvzn    1/1     Running   0          91m
    [10.128.44.240]: PS>
    
  3. In diesem Beispiel wurde der Front-End-Dienst als „type:LoadBalancer“ bereitgestellt. Zum Anzeigen von guestbook müssen Sie die IP-Adresse dieses Diensts ermitteln. Führen Sie den folgenden Befehl aus.

    kubectl get service -n <your-namespace>

    [10.128.44.240]: PS>kubectl get service -n demotestguestbook
    NAME           TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)        AGE
    frontend       LoadBalancer   10.96.79.38      10.128.44.245   80:31238/TCP   85m
    memcached      ClusterIP      10.102.47.75     <none>          11211/TCP      85m
    redis-master   ClusterIP      10.104.32.99     <none>          6379/TCP       85m
    redis-slave    ClusterIP      10.104.215.146   <none>          6379/TCP       85m
    [10.128.44.240]: PS>
    
  4. Der Front-End-Dienst von type:LoadBalancer verfügt über eine externe IP-Adresse. Diese IP-Adresse stammt aus dem IP-Adressbereich, den Sie beim Konfigurieren der Computenetzwerkeinstellungen auf dem Gerät für externe Dienste angegeben haben. Verwenden Sie diese IP-Adresse, um guestbook unter der folgenden URL anzuzeigen: https://<external-IP-address>.

    View guestbook

Löschen der Bereitstellung

Um die Bereitstellung zu löschen, können Sie die Konfiguration im Azure-Portal löschen. Durch Löschen der Konfiguration werden die erstellten Objekte, einschließlich Bereitstellungen und Dienste, gelöscht.

  1. Gehen Sie im Azure-Portal auf die Azure Arc-Ressource > Konfigurationen.
  2. Suchen Sie nach der Konfiguration, die Sie löschen möchten. Wählen Sie die Auslassungspunkte (...) aus, um das Kontextmenü zu öffnen, und wählen Sie dann Löschen aus. Delete configuration

Es kann einige Minuten dauern, bis die Konfiguration gelöscht wurde.

Nächste Schritte

Erfahren Sie, wie Sie das Kubernetes-Dashboard zum Überwachen von Bereitstellungen auf Ihrem Azure Stack Edge Pro-Gerät verwenden.