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
- Účet Azure s aktivním předplatným. Pokud ho ještě nemáte, můžete si ho zdarma vytvořit.
- Rozhraní příkazového řádku Azure.
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.
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"
Přihlaste se k Azure pomocí Azure CLI.
az login
Vytvořte skupinu prostředků.
az group create --name $RESOURCE_GROUP --location $LOCATION
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.
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ě.
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
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.
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
Vytvořte vazbu aplikace kontejneru na první komponentu serveru Eureka.
az containerapp update \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ --bind $EUREKA_COMPONENT_FIRST
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.
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.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)
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
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.
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