Zelfstudie: Een maximaal beschikbaar Eureka-serveronderdeelcluster maken in Azure Container Apps
In deze zelfstudie leert u hoe u een Eureka-service maakt die is ontworpen om operationeel te blijven ten opzichte van storingen en hoge vraag. Het bouwen van een maximaal beschikbare Eureka-service zorgt ervoor dat het serviceregister altijd beschikbaar is voor clients, ongeacht de vraag.
Het bereiken van een hoge beschikbaarheidsstatus voor Eureka omvat het koppelen van meerdere Eureka-serverexemplaren aan een cluster. Het cluster biedt resources, zodat als één Eureka-server mislukt, de andere services beschikbaar blijven voor aanvragen.
In deze zelfstudie hebt u:
- Maak een Eureka-server voor Spring-onderdelen.
- Koppel twee Eureka-servers voor Spring-onderdelen aan elkaar in een cluster.
- Bind toepassingen aan beide Eureka-servers voor maximaal beschikbare servicedetectie.
Vereisten
- Een Azure-account met een actief abonnement. Als u er nog geen hebt, kunt u er gratis een maken.
- Azure CLI.
Overwegingen
Houd rekening met de volgende details bij het uitvoeren van beheerde Java-onderdelen in Azure Container Apps:
Artikel | Uitleg |
---|---|
Bereik | Onderdelen worden uitgevoerd in dezelfde omgeving als de verbonden container-app. |
Schalen | Het onderdeel kan niet worden geschaald. De schaaleigenschappen minReplicas en maxReplicas beide zijn ingesteld op 1 . |
Resources | De toewijzing van containerresources voor onderdelen is opgelost. Het aantal CPU-kernen is 0,5 en de geheugengrootte is 1 Gi. |
Prijzen | Facturering van onderdelen valt onder de prijzen op basis van verbruik. Resources die door beheerde onderdelen worden verbruikt, worden gefactureerd tegen de actieve/niet-actieve tarieven. U kunt onderdelen verwijderen die niet meer worden gebruikt om de facturering te stoppen. |
Binding | Container-apps maken verbinding met een onderdeel via een binding. De bindingen injecteren configuraties in omgevingsvariabelen voor container-apps. Nadat een binding tot stand is gebracht, kan de container-app de configuratiewaarden van omgevingsvariabelen lezen en verbinding maken met het onderdeel. |
Instellingen
Gebruik de volgende stappen om uw Eureka-servicecluster te maken.
Maak variabelen die toepassingsconfiguratiewaarden bevatten.
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"
Meld u aan bij Azure met de Azure CLI.
az login
Maak een resourcegroep.
az group create --name $RESOURCE_GROUP --location $LOCATION
Maak uw Container Apps-omgeving.
az containerapp env create \ --name $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --location $LOCATION
Een cluster maken
Maak vervolgens twee Eureka-serverexemplaren en koppel ze als een cluster.
Maak twee Eureka Server voor Spring-onderdelen.
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
Onderdelen aan elkaar binden
Voordat de Eureka-servers in een configuratie met hoge beschikbaarheid werken, moeten ze aan elkaar worden gekoppeld.
Bind de eerste Eureka-server aan de tweede.
az containerapp env java-component eureka-server-for-spring update \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $EUREKA_COMPONENT_FIRST \ --bind $EUREKA_COMPONENT_SECOND
Bind de tweede Eureka-server aan de eerste.
az containerapp env java-component eureka-server-for-spring update \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $EUREKA_COMPONENT_SECOND \ --bind $EUREKA_COMPONENT_FIRST
De toepassing implementeren en binden
Als de serveronderdelen aan elkaar zijn gekoppeld, kunt u de container-app maken en deze koppelen aan de twee Eureka-onderdelen.
Maak de 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 8080
Bind de container-app aan het eerste Eureka-serveronderdeel.
az containerapp update \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ --bind $EUREKA_COMPONENT_FIRST
Bind de container-app aan het tweede Eureka-serveronderdeel.
az containerapp update \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ --bind $EUREKA_COMPONENT_SECOND
De dashboards weergeven
Belangrijk
Als u het dashboard wilt weergeven, moet u ten minste de Microsoft.App/managedEnvironments/write
rol hebben toegewezen aan uw account in de beheerde omgevingsresource. U kunt de resource expliciet toewijzen Owner
of Contributor
rollen toewijzen of de stappen volgen om een aangepaste roldefinitie te maken en deze toe te wijzen aan uw account.
Maak de aangepaste roldefinitie.
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>"] }'
Zorg ervoor dat u de tijdelijke aanduiding tussen de
<>
vierkante haken in de waarde vervangt door uwAssignableScopes
abonnements-id.Wijs de aangepaste rol toe aan uw account voor een beheerde omgevingsresource.
Haal de resource-id van de beheerde omgeving op.
export ENVIRONMENT_ID=$(az containerapp env show \ --name $ENVIRONMENT --resource-group $RESOURCE_GROUP \ --query id \ --output tsv)
Wijs de rol toe aan uw account.
Voordat u deze opdracht uitvoert, vervangt u de tijdelijke aanduiding tussen de
<>
vierkante haken door de id van uw gebruiker of service-principal.az role assignment create \ --assignee <USER_OR_SERVICE_PRINCIPAL_ID> \ --role "Java Component Dashboard Access" \ --scope $ENVIRONMENT_ID
Haal de URL van de Eureka-server voor springdashboard op.
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
Met deze opdracht wordt de URL geretourneerd die u kunt gebruiken voor toegang tot de Eureka-server voor springdashboard. Via het dashboard kunt u controleren of de Installatie van de Eureka-server bestaat uit twee replica's.
Resources opschonen
De resources die in deze zelfstudie zijn gemaakt, hebben een effect op uw Azure-factuur. Als u deze services niet op de lange termijn gaat gebruiken, voert u de volgende opdracht uit om alles te verwijderen dat in deze zelfstudie is gemaakt.
az group delete --resource-group $RESOURCE_GROUP