Udostępnij za pośrednictwem


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

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 1wartość .
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.

  1. 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"
    
  2. Zaloguj się na platformie Azure przy użyciu interfejsu wiersza polecenia platformy Azure.

    az login
    
  3. Utwórz grupę zasobów.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  4. 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.

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

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

  1. 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
    
  2. Powiąż aplikację kontenera z pierwszym składnikiem serwera Eureka.

    az containerapp update \
        --name $APP_NAME \
        --resource-group $RESOURCE_GROUP \
        --bind $EUREKA_COMPONENT_FIRST 
    
  3. 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.

  1. 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 w AssignableScopes wartości identyfikatorem subskrypcji.

  2. 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)
    
  3. 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
    
  4. 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.

    Zrzut ekranu przedstawiający pulpit nawigacyjny platformy Eureka o wysokiej dostępności dla platformy Spring.

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