Delen via


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 aanzien van storingen en hoge vraag. Door een maximaal beschikbare Eureka-service te bouwen, zorgt u ervoor dat het serviceregister dat u gebruikt voor Azure Container Apps altijd beschikbaar is voor clients, ongeacht de vraag.

Het bereiken van de status van hoge beschikbaarheid voor Eureka omvat het koppelen van meerdere Eureka-serverexemplaren, zodat ze een cluster vormen. Het cluster biedt resources, zodat als één Eureka-server mislukt, de andere services beschikbaar blijven voor aanvragen.

In deze zelfstudie hebt u:

  • Maak Eureka-servers voor Spring-onderdelen.
  • Koppel twee Eureka-servers voor Spring-onderdelen aan elkaar in een cluster.
  • Bind een container-app 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.
  • De Azure CLI.

Overwegingen

Wanneer u beheerde Java-onderdelen uitvoert in Container Apps, moet u rekening houden met de volgende details:

Artikel Uitleg
Bereik Onderdelen worden uitgevoerd in dezelfde omgeving als de verbonden container-app.
Schalen Onderdelen kunnen 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 GB.
Prijzen Facturering van onderdelen valt onder de prijzen op basis van verbruik. Resources die door beheerde onderdelen worden verbruikt, worden gefactureerd tegen de actieve of niet-actieve tarieven, afhankelijk van het resourcegebruik. 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.

Instellen van initiële middelen

Gebruik de volgende stappen om enkele resources te maken die u nodig hebt voor uw Eureka-servicecluster.

  1. 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"
    
  2. Gebruik de Azure CLI om u aan te melden bij Azure.

    az login
    
  3. Maak een resourcegroep.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  4. Maak uw Container Apps-omgeving.

    az containerapp env create \
        --name $ENVIRONMENT \
        --resource-group $RESOURCE_GROUP \
        --location $LOCATION
    

Servers maken voor 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 verbinden om een cluster te vormen

Voordat de Eureka-servers in een configuratie met hoge beschikbaarheid werken, moeten ze als cluster worden gekoppeld.

  1. 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
    
  2. 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 verbinden met de twee Eureka-onderdelen.

  1. 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
    
  2. Bind de container-app aan het eerste Eureka-serveronderdeel.

    az containerapp update \
        --name $APP_NAME \
        --resource-group $RESOURCE_GROUP \
        --bind $EUREKA_COMPONENT_FIRST 
    
  3. Bind de container-app aan het tweede Eureka-serveronderdeel.

    az containerapp update \
        --name $APP_NAME \
        --resource-group $RESOURCE_GROUP \
        --bind $EUREKA_COMPONENT_SECOND
    

Het dashboard weergeven

Belangrijk

Als u het Spring-dashboard voor de Eureka-server wilt weergeven, moet u de rol Microsoft.App/managedEnvironments/write, Owner, of Contributor toegewezen hebben aan uw account voor de Container Apps-omgevingsresource.

  • Als u al een van deze rollen hebt, gaat u naar de sectie Url van het dashboard ophalen om de URL op te halen en het dashboard weer te geven.
  • Als u een aangepaste roldefinitie wilt maken en aan uw account wilt toewijzen, voert u de stappen in de volgende sectie uit, maakt en wijst u een aangepaste rol toe.
  • Als u uw account de Owner- ofContributor- rollen voor de resource wilt toewijzen, maakt u deze toewijzing. Daarna ga verder naar de sectie Dashboard-URL ophalen.

Een aangepaste rol maken en toewijzen

  1. Maak de aangepaste roldefinitie. Voordat u deze opdracht uitvoert, vervangt u de aanduiding AssignableScopes in de waarde door uw abonnements-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>"]
    }'
    
  2. Haal de resource-id van de Container Apps-omgeving op.

    export ENVIRONMENT_ID=$(az containerapp env show \
        --name $ENVIRONMENT --resource-group $RESOURCE_GROUP \
        --query id \
        --output tsv)
    
  3. Wijs de aangepaste rol toe aan uw account voor de Container Apps-omgevingsresource. Voordat u deze opdracht uitvoert, vervangt u de tijdelijke aanduiding in de assignee-waarde door uw gebruikersobject-id of service-principal-id.

    az role assignment create \
        --assignee <USER_OR_SERVICE_PRINCIPAL_ID> \
        --role "Java Component Dashboard Access" \
        --scope $ENVIRONMENT_ID
    

De URL van het dashboard ophalen

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.

Schermopname van een Eureka voor Spring-dashboard. De sectie geregistreerde exemplaren bevat een container-app en twee Eureka-servers, allemaal met de status Up.

Resources opschonen

De resources die in deze handleiding zijn gemaakt, beïnvloeden uw Azure-factuur. Als u deze services op de lange termijn niet 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