Sdílet prostřednictvím


Kurz: Vytvoření clusteru komponent serveru Eureka s vysokou dostupností v Azure Container Apps

V tomto kurzu se naučíte vytvořit službu Eureka navrženou tak, aby zůstala funkční v případě selhání a vysoké poptávky. Vytvoření vysoce dostupné služby Eureka zajišťuje, že registr služeb je vždy k dispozici klientům bez ohledu na poptávku.

Dosažení stavu vysoké dostupnosti pro Eureka zahrnuje propojení několika instancí serveru Eureka, které tvoří cluster. Cluster poskytuje prostředky, aby v případě selhání jednoho serveru Eureka zůstaly ostatní služby dostupné pro požadavky.

V tomto kurzu se naučíte:

  • Vytvořte server Eureka pro komponenty Spring.
  • Spojte dva servery Eureka pro komponenty Spring do clusteru.
  • Vytvořte vazbu aplikací na oba servery Eureka pro zjišťování služeb s vysokou dostupností.

Požadavky

Důležité informace

Při spouštění spravovaných komponent Javy v Azure Container Apps mějte na paměti následující podrobnosti:

Položka Vysvětlení
Obor Komponenty se spouštějí ve stejném prostředí jako připojená aplikace kontejneru.
Škálování Komponenta nemůže škálovat. Vlastnosti minReplicas škálování a maxReplicas obě jsou nastaveny na 1.
Zdroje informací Opravili jsme přidělení prostředků kontejneru pro komponenty. Počet jader procesoru je 0,5 a velikost paměti je 1 Gi.
Ceny Fakturace součástí spadá do cen založených na spotřebě. Prostředky spotřebované spravovanými komponentami se účtují podle tarifů aktivní/nečinné. K zastavení fakturace můžete odstranit komponenty, které se už nepoužívají.
Vazba Kontejnerové aplikace se připojují ke komponentě prostřednictvím vazby. Vazby vloží konfigurace do proměnných prostředí kontejneru aplikace. Po vytvoření vazby může aplikace kontejneru číst konfigurační hodnoty z proměnných prostředí a připojit se ke komponentě.

Nastavení

Pomocí následujícího postupu vytvořte cluster služby Eureka.

  1. Vytvořte proměnné, které obsahují hodnoty konfigurace aplikace.

    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. Přihlaste se k Azure pomocí Azure CLI.

    az login
    
  3. Vytvořte skupinu prostředků.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  4. Vytvořte prostředí Container Apps.

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

Vytvoření clusteru

Dále vytvořte dvě instance serveru Eureka a propojte je jako cluster.

  1. Vytvořte dva komponenty Serveru Eureka pro 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
    

Vytvoření vazby součástí

Aby servery Eureka fungovaly v konfiguraci s vysokou dostupností, musí být propojené společně.

  1. Vytvořte vazbu prvního serveru Eureka na druhý server.

    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. Vytvořte vazbu druhého serveru Eureka na první server.

    az containerapp env java-component eureka-server-for-spring update \
        --environment $ENVIRONMENT \
        --resource-group $RESOURCE_GROUP \
        --name $EUREKA_COMPONENT_SECOND \
        --bind $EUREKA_COMPONENT_FIRST
    

Nasazení a vytvoření vazby aplikace

S propojenými komponentami serveru můžete vytvořit aplikaci kontejneru a propojit ji se dvěma komponentami Eureka.

  1. Vytvořte aplikaci typu kontejner.

    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. Vytvořte vazbu aplikace kontejneru na první komponentu serveru Eureka.

    az containerapp update \
        --name $APP_NAME \
        --resource-group $RESOURCE_GROUP \
        --bind $EUREKA_COMPONENT_FIRST 
    
  3. Vytvořte vazbu aplikace kontejneru na druhou komponentu serveru Eureka.

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

Zobrazení řídicích panelů

Důležité

Pokud chcete zobrazit řídicí panel, musíte mít přiřazenou alespoň Microsoft.App/managedEnvironments/write roli k vašemu účtu ve spravovaném prostředku prostředí. Můžete buď explicitně přiřadit Owner prostředek, nebo Contributor postupovat podle pokynů k vytvoření vlastní definice role a jeho přiřazení k vašemu účtu.

  1. Vytvořte vlastní definici role.

    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>"]
    }'
    

    Nezapomeňte nahradit zástupný symbol mezi <> hranatými závorkami v hodnotě AssignableScopes id vašeho předplatného.

  2. Přiřaďte vlastní roli k účtu u prostředku spravovaného prostředí.

    Získejte ID prostředku spravovaného prostředí.

    export ENVIRONMENT_ID=$(az containerapp env show \
        --name $ENVIRONMENT --resource-group $RESOURCE_GROUP \
        --query id \
        --output tsv)
    
  3. Přiřaďte roli k účtu.

    Před spuštěním tohoto příkazu nahraďte zástupný symbol mezi <> hranatými závorkami id uživatele nebo instančního objektu.

    az role assignment create \
        --assignee <USER_OR_SERVICE_PRINCIPAL_ID> \
        --role "Java Component Dashboard Access" \
        --scope $ENVIRONMENT_ID
    
  4. Získejte adresu URL řídicího panelu Eureka Server for Spring.

    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
    

    Tento příkaz vrátí adresu URL, kterou můžete použít pro přístup k řídicímu panelu Serveru Eureka for Spring. Na řídicím panelu můžete ověřit, že se nastavení serveru Eureka skládá ze dvou replik.

    Snímek obrazovky s vysoce dostupným řídicím panelem Eureka Server for Spring

Vyčištění prostředků

Prostředky vytvořené v tomto kurzu mají vliv na fakturu za Azure. Pokud tyto služby nebudete používat dlouhodobě, spuštěním následujícího příkazu odeberte vše vytvořené v tomto kurzu.

az group delete --resource-group $RESOURCE_GROUP