Samouczek: tworzenie klastra składników serwera Eureka o wysokiej dostępności w usłudze Azure Container Apps
Z tego samouczka dowiesz się, jak utworzyć usługę Eureka, która ma pozostać operacyjna w obliczu awarii i wysokiego zapotrzebowania. Utworzenie usługi Eureka o wysokiej dostępności zapewnia, że rejestr usług jest zawsze dostępny dla klientów niezależnie od zapotrzebowania.
Osiągnięcie stanu wysokiej dostępności dla eureka obejmuje łączenie wielu wystąpień serwera Eureka razem tworzących klaster. Klaster udostępnia zasoby, dzięki czemu w przypadku awarii jednego serwera Eureka pozostałe usługi pozostaną dostępne dla żądań.
W tym samouczku zostały wykonane następujące czynności:
- Utwórz serwer Eureka dla składników Platformy Spring.
- Powiąż ze sobą dwa serwery Eureka dla składników spring w klastrze.
- Powiąż aplikacje z obydwoma serwerami Eureka na potrzeby odnajdywania usług o wysokiej dostępności.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Jeśli jeszcze go nie masz, możesz go utworzyć bezpłatnie.
- Interfejs wiersza polecenia platformy Azure.
Kwestie wymagające rozważenia
Podczas uruchamiania zarządzanych składników Java w usłudze Azure Container Apps należy pamiętać o następujących szczegółach:
Towar | Wyjaśnienie |
---|---|
Scope | Składniki działają w tym samym środowisku co połączona aplikacja kontenera. |
Skalowanie | Składnik nie może skalować. Właściwości minReplicas skalowania i maxReplicas są ustawione na 1 wartość . |
Zasoby | Alokacja zasobów kontenera dla składników jest stała. Liczba rdzeni procesora CPU wynosi 0,5, a rozmiar pamięci to 1 Gi. |
Cennik | Rozliczenia składników są objęte cenami opartymi na użyciu. Zasoby używane przez składniki zarządzane są rozliczane według stawek aktywnych/bezczynnych. Możesz usunąć składniki, które nie są już używane do zatrzymywania rozliczeń. |
Wiązanie | Aplikacje kontenera łączą się ze składnikiem za pośrednictwem powiązania. Powiązania wprowadzają konfiguracje do zmiennych środowiskowych aplikacji kontenera. Po ustanowieniu powiązania aplikacja kontenera może odczytywać wartości konfiguracji ze zmiennych środowiskowych i łączyć się ze składnikiem. |
Ustawienia
Wykonaj poniższe kroki, aby utworzyć klaster usługi Eureka.
Utwórz zmienne, które przechowują wartości konfiguracji aplikacji.
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"
Zaloguj się na platformie Azure przy użyciu interfejsu wiersza polecenia platformy Azure.
az login
Utwórz grupę zasobów.
az group create --name $RESOURCE_GROUP --location $LOCATION
Utwórz środowisko usługi Container Apps.
az containerapp env create \ --name $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --location $LOCATION
Tworzenie klastra
Następnie utwórz dwa wystąpienia serwera Eureka i połącz je razem jako klaster.
Utwórz dwa składniki Eureka Server dla platformy 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
Wiązanie składników razem
Aby serwery Eureka działały w konfiguracji wysokiej dostępności, muszą być połączone razem.
Powiąż pierwszy serwer Eureka z drugim.
az containerapp env java-component eureka-server-for-spring update \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $EUREKA_COMPONENT_FIRST \ --bind $EUREKA_COMPONENT_SECOND
Powiąż drugi serwer Eureka z pierwszym.
az containerapp env java-component eureka-server-for-spring update \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $EUREKA_COMPONENT_SECOND \ --bind $EUREKA_COMPONENT_FIRST
Wdrażanie i wiązanie aplikacji
Po połączeniu składników serwera można utworzyć aplikację kontenera i powiązać ją z dwoma składnikami Eureka.
Utwórz aplikację kontenera.
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
Powiąż aplikację kontenera z pierwszym składnikiem serwera Eureka.
az containerapp update \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ --bind $EUREKA_COMPONENT_FIRST
Powiąż aplikację kontenera z drugim składnikiem serwera Eureka.
az containerapp update \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ --bind $EUREKA_COMPONENT_SECOND
Wyświetlanie pulpitów nawigacyjnych
Ważne
Aby wyświetlić pulpit nawigacyjny, musisz mieć co najmniej Microsoft.App/managedEnvironments/write
rolę przypisaną do konta w zasobie środowiska zarządzanego. Możesz jawnie przypisać Owner
lub Contributor
rolę w zasobie lub wykonać kroki tworzenia niestandardowej definicji roli i przypisywać je do swojego konta.
Utwórz definicję roli niestandardowej.
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>"] }'
Pamiętaj, aby zastąpić symbol zastępczy między
<>
nawiasami wAssignableScopes
wartości identyfikatorem subskrypcji.Przypisz rolę niestandardową do konta w zasobie środowiska zarządzanego.
Pobierz identyfikator zasobu środowiska zarządzanego.
export ENVIRONMENT_ID=$(az containerapp env show \ --name $ENVIRONMENT --resource-group $RESOURCE_GROUP \ --query id \ --output tsv)
Przypisz rolę do swojego konta.
Przed uruchomieniem tego polecenia zastąp symbol zastępczy między
<>
nawiasami identyfikatorem użytkownika lub jednostki usługi.az role assignment create \ --assignee <USER_OR_SERVICE_PRINCIPAL_ID> \ --role "Java Component Dashboard Access" \ --scope $ENVIRONMENT_ID
Pobierz adres URL serwera Eureka dla pulpitu nawigacyjnego Platformy 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
To polecenie zwraca adres URL, którego można użyć do uzyskania dostępu do pulpitu nawigacyjnego Eureka Server for Spring. Za pomocą pulpitu nawigacyjnego można sprawdzić, czy konfiguracja serwera Eureka składa się z dwóch replik.
Czyszczenie zasobów
Zasoby utworzone w tym samouczku mają wpływ na rachunek za platformę Azure. Jeśli nie zamierzasz korzystać z tych usług długoterminowych, uruchom następujące polecenie, aby usunąć wszystkie elementy utworzone w tym samouczku.
az group delete --resource-group $RESOURCE_GROUP