Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Lernprogramm erfahren Sie, wie Sie einen Eureka-Dienst erstellen, der darauf ausgelegt ist, angesichts von Fehlern und hoher Nachfrage betriebsbereit zu bleiben. Das Erstellen eines hoch verfügbaren Eureka-Diensts trägt dazu bei, sicherzustellen, dass die Dienstregistrierung, die Sie für Azure-Container-Apps verwenden, immer für Clients verfügbar ist, unabhängig von der Nachfrage.
Das Erreichen des Status für hohe Verfügbarkeit für Eureka umfasst das Verknüpfen mehrerer Eureka-Serverinstanzen, sodass sie einen Cluster bilden. Der Cluster stellt Ressourcen bereit, sodass die anderen Dienste für Anforderungen verfügbar bleiben, wenn ein Eureka-Server fehlerhaft ist.
In diesem Tutorial:
- Erstellen Sie Eureka-Server für Spring-Komponenten.
- Binden zweier Eureka-Server für Spring-Komponenten in einem Cluster
- Binden Sie eine Container-App mit beiden Eureka-Servern, um eine hochverfügbare Dienstermittlung zu ermöglichen.
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Wenn Sie noch keines haben, können Sie kostenlos eines erstellen.
- Die Azure CLI
Überlegungen
Wenn Sie verwaltete Java-Komponenten in Container-Apps ausführen, beachten Sie die folgenden Details:
| Artikel | Erklärung |
|---|---|
| `Scope` | Komponenten werden in derselben Umgebung wie die verbundene Container-App ausgeführt. |
| Skalierung | Komponenten können nicht skaliert werden. Die Skalierungseigenschaften minReplicas und maxReplicas sind beide auf 1. |
| Ressourcen | Die Containerressourcenzuordnung für Komponenten ist behoben. Die Anzahl der CPU-Kerne beträgt 0,5, und die Arbeitsspeichergröße beträgt 1 GB. |
| Preise | Die Komponentenabrechnung fällt unter die verbrauchsbasierten Preise. Ressourcen, die von verwalteten Komponenten verbraucht werden, werden abhängig von der Nutzung der Ressourcen zu den Aktivitätsraten oder Leerlaufraten in Rechnung gestellt. Sie können Komponenten löschen, die nicht mehr zum Beenden der Abrechnung verwendet werden. |
| Binding | Container-Apps stellen über eine Bindung eine Verbindung mit einer Komponente her. Die Bindungen enthalten Konfigurationen in Container-App-Umgebungsvariablen. Nachdem eine Bindung eingerichtet wurde, kann die Container-App die Konfigurationswerte aus Umgebungsvariablen lesen und eine Verbindung mit der Komponente herstellen. |
Einrichten von Anfangsressourcen
Führen Sie die folgenden Schritte aus, um einige Ressourcen zu erstellen, die Sie für Ihren Eureka-Dienstcluster benötigen.
Erstellen Sie Variablen, die Anwendungskonfigurationswerte enthalten.
export LOCATION=eastus export RESOURCE_GROUP=my-services-resource-group export ENVIRONMENT=my-environment export EUREKA_COMPONENT_FIRST=eureka01 export EUREKA_COMPONENT_SECOND=eureka02 export APP_NAME=sample-service-eureka-client export IMAGE="mcr.microsoft.com/javacomponents/samples/sample-service-eureka-client:latest"Verwenden Sie die Azure CLI, um sich bei Azure anzumelden.
az loginErstellen Sie eine Ressourcengruppe.
az group create --name $RESOURCE_GROUP --location $LOCATIONErstellen Sie die Container Apps-Umgebung.
az containerapp env create \ --name $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --location $LOCATION
Erstellen von Servern für einen Cluster
Erstellen von zwei Komponenten vom Typ „Eureka Server für Spring“
az containerapp env java-component eureka-server-for-spring create \
--environment $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--name $EUREKA_COMPONENT_FIRST
az containerapp env java-component eureka-server-for-spring create \
--environment $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--name $EUREKA_COMPONENT_SECOND
Koppeln von Komponenten zu einem Cluster
Damit die Eureka-Server in einer Hochverfügbarkeitskonfiguration arbeiten können, müssen sie als Cluster miteinander verknüpft werden.
Binden Sie den ersten Eureka-Server an den zweiten.
az containerapp env java-component eureka-server-for-spring update \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $EUREKA_COMPONENT_FIRST \ --bind $EUREKA_COMPONENT_SECONDBinden Sie den zweiten Eureka-Server an den ersten.
az containerapp env java-component eureka-server-for-spring update \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $EUREKA_COMPONENT_SECOND \ --bind $EUREKA_COMPONENT_FIRST
Bereitstellen und Binden der Anwendung
Mit den miteinander verknüpften Serverkomponenten können Sie die Container-App erstellen und an die beiden Eureka-Komponenten binden.
Erstellen Sie die Container-App.
az containerapp create \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ --environment $ENVIRONMENT \ --image $IMAGE \ --min-replicas 1 \ --max-replicas 1 \ --ingress external \ --target-port 8080Binden Sie die Container-App an die erste Eureka-Serverkomponente.
az containerapp update \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ --bind $EUREKA_COMPONENT_FIRSTBinden Sie die Container-App an die zweite Eureka-Serverkomponente.
az containerapp update \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ --bind $EUREKA_COMPONENT_SECOND
Anzeigen des Dashboards
Wichtig
Um den Eureka-Server für das Spring-Dashboard anzuzeigen, müssen Sie über die Microsoft.App/managedEnvironments/write, Owner oder Contributor Rolle verfügen, die Ihrem Konto für die Container-Apps-Umgebungsressource zugewiesen ist.
- Wenn Sie bereits über eine dieser Rollen verfügen, fahren Sie mit dem Abschnitt " Dashboard-URL abrufen" fort, um die URL abzurufen und das Dashboard anzuzeigen.
- Wenn Sie eine benutzerdefinierte Rollendefinition erstellen und ihrem Konto zuweisen möchten, führen Sie die Schritte im folgenden Abschnitt aus, Erstellen und Zuweisen einer benutzerdefinierten Rolle.
- Wenn Sie Ihrem Konto die
Owner- oderContributor-Rolle für die Ressource zuweisen möchten, weisen Sie sie zu und springen Sie dann zum Abschnitt "Dashboard-URL abrufen".
Erstellen und Zuweisen einer benutzerdefinierten Rolle
Erstellen Sie die benutzerdefinierte Rollendefinition. Bevor Sie diesen Befehl ausführen, ersetzen Sie den Platzhalter im
AssignableScopesWert durch Ihre Abonnement-ID.az role definition create --role-definition '{ "Name": "Java Component Dashboard Access", "IsCustom": true, "Description": "Can access managed Java Component dashboards in managed environments", "Actions": [ "Microsoft.App/managedEnvironments/write" ], "AssignableScopes": ["/subscriptions/<SUBSCRIPTION_ID>"] }'Rufen Sie die Ressourcen-ID der Container-Apps-Umgebung ab.
export ENVIRONMENT_ID=$(az containerapp env show \ --name $ENVIRONMENT --resource-group $RESOURCE_GROUP \ --query id \ --output tsv)Weisen Sie Ihrem Konto die benutzerdefinierte Rolle für die Container-Apps-Umgebungsressource zu. Ersetzen Sie vor dem Ausführen dieses Befehls den Platzhalter im
assigneeWert durch Ihre Benutzerobjekt-ID oder Dienstprinzipal-ID.az role assignment create \ --assignee <USER_OR_SERVICE_PRINCIPAL_ID> \ --role "Java Component Dashboard Access" \ --scope $ENVIRONMENT_ID
Abrufen der Dashboard-URL
Rufen Sie die URL des Dashboards „Eureka-Server für Spring“ ab.
az containerapp env java-component eureka-server-for-spring show \
--environment $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--name $EUREKA_COMPONENT_FIRST \
--query properties.ingress.fqdn \
--output tsv
Dieser Befehl gibt die URL zurück, die Sie für den Zugriff auf das Dashboard „Eureka Server für Spring“ verwenden können. Über das Dashboard können Sie überprüfen, ob das Eureka-Serversetup aus zwei Replikaten besteht.
Bereinigen von Ressourcen
Die in diesem Lernprogramm erstellten Ressourcen wirken sich auf Ihre Azure-Rechnung aus. Wenn Sie diese Dienste nicht langfristig verwenden werden, führen Sie den folgenden Befehl aus, um alle in diesem Lernprogramm erstellten Elemente zu entfernen.
az group delete --resource-group $RESOURCE_GROUP