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

  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. Meld u aan bij Azure met de Azure CLI.

    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
    

Een cluster maken

Maak vervolgens twee Eureka-serverexemplaren en koppel ze als een cluster.

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

  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 koppelen aan 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
    

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.

  1. 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 uw AssignableScopes abonnements-id.

  2. 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)
    
  3. 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
    
  4. 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 maximaal beschikbare Eureka-server voor Spring-dashboard.

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