Udostępnij przez


Samouczek: tworzenie klastra składników serwera Eureka o wysokiej dostępności w usłudze Azure Container Apps

W tym samouczku 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 pomaga zapewnić, że rejestr usług używany w usłudze Azure Container Apps jest zawsze dostępny dla klientów niezależnie od zapotrzebowania.

Osiągnięcie stanu wysokiej dostępności dla Eureka obejmuje łączenie wielu instancji serwera Eureka w taki sposób, aby tworzyły 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:

  • Tworzenie serwerów Eureka dla składników platformy Spring.
  • Powiąż ze sobą dwa serwery Eureka dla składników spring w klastrze.
  • Powiąż aplikację kontenera 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.
  • Azure CLI.

Kwestie wymagające rozważenia

Po uruchomieniu zarządzanych składników Java w usłudze 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ładniki nie mogą być skalowane. 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 wynosi 1 GB.
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 aktywnych lub bezczynnych stawek, w zależności od użycia zasobów. 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.

Konfigurowanie zasobów początkowych

Wykonaj poniższe kroki, aby utworzyć zasoby potrzebne dla klastra 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ę do Azure przy użyciu Azure CLI.

    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 serwerów dla klastra

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 ze sobą w celu utworzenia klastra

Aby serwery Eureka działały w konfiguracji wysokiej dostępności, muszą być połączone razem jako klaster.

  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świetl pulpit nawigacyjny

Ważne

Aby wyświetlić pulpit nawigacyjny serwera Eureka dla platformy Spring, musisz mieć przypisaną rolę Microsoft.App/managedEnvironments/write, Owner lub Contributor do swojego konta w zasobach środowiska Container Apps.

Tworzenie i przypisywanie roli niestandardowej

  1. Utwórz definicję roli niestandardowej. Przed uruchomieniem tego polecenia zastąp symbol zastępczy w AssignableScopes wartości identyfikatorem subskrypcji.

    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>"]
    }'
    
  2. Pobierz identyfikator zasobu środowiska Container Apps.

    export ENVIRONMENT_ID=$(az containerapp env show \
        --name $ENVIRONMENT --resource-group $RESOURCE_GROUP \
        --query id \
        --output tsv)
    
  3. Przypisz rolę niestandardową do swojego konta dla zasobu środowiskowego Container Apps. Przed uruchomieniem tego polecenia zastąp symbol zastępczy wartości assignee identyfikatorem obiektu użytkownika lub identyfikatorem głównej jednostki usługi.

    az role assignment create \
        --assignee <USER_OR_SERVICE_PRINCIPAL_ID> \
        --role "Java Component Dashboard Access" \
        --scope $ENVIRONMENT_ID
    

Uzyskiwanie adresu URL pulpitu nawigacyjnego

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 Eureka dla Spring. W sekcji Zarejestrowane wystąpienia wymieniono aplikację kontenerową i dwa serwery Eureka, wszystkie o stanie 'up'.

Czyszczenie zasobów

Zasoby utworzone w tym samouczku wpływają na rachunek za korzystanie z platformy Azure. Jeśli nie zamierzasz korzystać z tych usług w dłuższej perspektywie, uruchom następujące polecenie, aby usunąć wszystkie elementy utworzone w tym samouczku.

az group delete --resource-group $RESOURCE_GROUP