Szybki start: wdrażanie protokołu JBoss EAP w usłudze Azure Red Hat OpenShift
W tym artykule pokazano, jak szybko skonfigurować platformę JBoss Enterprise Application Platform (EAP) w usłudze Azure Red Hat OpenShift przy użyciu witryny Azure Portal.
W tym artykule użyto oferty witryny Azure Marketplace dla aplikacji JBoss EAP, aby przyspieszyć podróż do usługi Azure Red Hat OpenShift. Oferta automatycznie aprowizuje zasoby, w tym klaster usługi Azure Red Hat OpenShift z wbudowanym rejestrem Kontenerów OpenShift (OCR), operatorem JBoss EAP i opcjonalnie obrazem kontenera, w tym aplikacją JBoss EAP i aplikacją przy użyciu protokołu Source-to-Image (S2I). Aby wyświetlić ofertę, odwiedź witrynę Azure Portal. Jeśli wolisz ręczne wskazówki krok po kroku dotyczące uruchamiania protokołu JBoss EAP w usłudze Azure Red Hat OpenShift, które nie korzystają z automatyzacji włączonej przez ofertę, zobacz Wdrażanie aplikacji Java z rozwiązaniem Red Hat JBoss Enterprise Application Platform (JBoss EAP) w klastrze usługi Azure Red Hat OpenShift 4.
Jeśli chcesz przekazać opinię lub ściśle pracować nad scenariuszami migracji z zespołem inżynierów opracowującym rozwiązanie JBoss EAP na platformie Azure, wypełnij tę krótką ankietę dotyczącą migracji JBoss EAP i dołącz swoje informacje kontaktowe. Zespół menedżerów programów, architektów i inżynierów natychmiast skontaktuje się z Tobą w celu zainicjowania ścisłej współpracy.
Wymagania wstępne
Subskrypcja platformy Azure. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.
Konto usługi Red Hat z pełnym profilem. Jeśli go nie masz, możesz zarejestrować się w celu uzyskania bezpłatnej subskrypcji dla deweloperów za pośrednictwem subskrypcji red hat developer dla użytkowników indywidualnych.
Lokalny wiersz polecenia dla deweloperów ze środowiskiem poleceń przypominającym system UNIX — na przykład Ubuntu, macOS lub Podsystem Windows dla systemu Linux — i zainstalowany interfejs wiersza polecenia platformy Azure. Aby dowiedzieć się, jak zainstalować interfejs wiersza polecenia platformy Azure, zobacz Jak zainstalować interfejs wiersza polecenia platformy Azure.
Interfejs
mysql
wiersza polecenia. Na przykład interfejs wiersza polecenia można zainstalować przy użyciu następujących poleceń w systemach Ubuntu lub Debian:sudo apt update sudo apt install mysql-server
Tożsamość platformy Azure używana do logowania się z rolą Współautor i administratorem dostępu użytkowników lub rolą Właściciel w bieżącej subskrypcji. Aby zapoznać się z omówieniem ról platformy Azure, zobacz Co to jest kontrola dostępu oparta na rolach platformy Azure (Azure RBAC)?
Uwaga
Usługa Azure Red Hat OpenShift wymaga co najmniej 40 rdzeni do utworzenia i uruchomienia klastra OpenShift. Domyślny limit przydziału zasobów platformy Azure dla nowej subskrypcji platformy Azure nie spełnia tego wymagania. Aby zażądać zwiększenia limitu zasobów, zobacz Zwiększanie limitów przydziału procesorów wirtualnych rodziny maszyn wirtualnych. Pamiętaj, że subskrypcja bezpłatnej wersji próbnej nie kwalifikuje się do zwiększenia limitu przydziału. Przed zażądaniem zwiększenia limitu przydziału przeprowadź uaktualnienie do subskrypcji z płatnością zgodnie z rzeczywistym użyciem. Aby uzyskać więcej informacji, zobacz Uaktualnianie bezpłatnego konta platformy Azure lub konta startowego usługi Azure for Students.
Uzyskiwanie wpisu tajnego ściągania oprogramowania Red Hat
Oferta witryny Azure Marketplace używana w tym artykule wymaga wpisu tajnego ściągania oprogramowania Red Hat. W tej sekcji pokazano, jak uzyskać wpis tajny ściągania oprogramowania Red Hat dla usługi Azure Red Hat OpenShift. Aby dowiedzieć się, czym jest wpis tajny ściągnięcia oprogramowania Red Hat i dlaczego jest potrzebny, zobacz sekcję Pobieranie wpisu tajnego ściągnięcia red hat w artykule Samouczek: tworzenie klastra usługi Azure Red Hat OpenShift 4.
Aby uzyskać wpis tajny ściągania, wykonaj następujące czynności:
Otwórz konsolę Chmury hybrydowej Red Hat OpenShift, a następnie zaloguj się do portalu menedżera klastra OpenShift przy użyciu konta Red Hat. Może być konieczne zaakceptowanie większej liczby warunków i zaktualizowanie konta, jak pokazano na poniższym zrzucie ekranu. Użyj tego samego hasła co podczas tworzenia konta.
Po zalogowaniu wybierz pozycję OpenShift, a następnie pozycję Pobrane.
Wybierz listę rozwijaną Wszystkie kategorie, a następnie wybierz pozycję Tokeny.
W obszarze Ściąganie wpisu tajnego wybierz pozycję Kopiuj lub Pobierz , aby uzyskać wartość, jak pokazano na poniższym zrzucie ekranu.
Poniższa zawartość to przykład skopiowany z portalu konsoli Red Hat z kodami uwierzytelniania zastąpionymi ciągiem
xxxx...xxx
.{"auths":{"cloud.openshift.com":{"auth":"xxxx...xxx","email":"contoso-user@contoso.com"},"quay.io":{"auth":"xxx...xxx","email":"contoso-user@test.com"},"registry.connect.redhat.com":{"auth":"xxxx...xxx","email":"contoso-user@contoso.com"},"registry.redhat.io":{"auth":"xxxx...xxx","email":"contoso-user@contoso.com"}}}
Zapisz wpis tajny w pliku, aby można było go użyć później.
Tworzenie konta usługi Red Hat Container Registry
W dalszej części tego artykułu pokazano, jak ręcznie wdrożyć aplikację w usłudze OpenShift przy użyciu funkcji Source-to-Image (S2I). Konto usługi Red Hat Container Registry jest niezbędne do ściągnięcia obrazu kontenera dla protokołu JBoss EAP, na którym można uruchomić aplikację. Jeśli masz gotowe do użycia konto usługi Red Hat Container Registry, pomiń tę sekcję i przejdź do następnej sekcji, w której wdrażasz ofertę.
Wykonaj poniższe kroki, aby utworzyć konto usługi Red Hat Container Registry i uzyskać jego nazwę użytkownika i hasło. Aby uzyskać więcej informacji, zobacz Tworzenie kont usługi rejestru w dokumentacji oprogramowania Red Hat.
- Użyj konta usługi Red Hat, aby zalogować się do aplikacji do zarządzania kontami usługi rejestru.
- Na stronie Konta usługi rejestru wybierz pozycję Nowe konto usługi.
- Podaj nazwę konta usługi. Nazwa jest poprzedzana stałym, losowym ciągiem.
- Wprowadź opis.
- Wybierz pozycję Utwórz.
- Wróć do kont usług.
- Wybierz utworzone konto usługi.
- Zanotuj nazwę użytkownika, w tym ciąg wstępny (czyli
XXXXXXX|username
). Użyj tej nazwy użytkownika podczas logowania się doregistry.redhat.io
usługi . - Zanotuj hasło. Użyj tego hasła podczas logowania się do usługi
registry.redhat.io
.
- Zanotuj nazwę użytkownika, w tym ciąg wstępny (czyli
Utworzono konto usługi Red Hat Container Registry.
Tworzenie jednostki usługi Microsoft Entra w witrynie Azure Portal
Oferta witryny Azure Marketplace używana w tym artykule wymaga jednostki usługi Microsoft Entra w celu wdrożenia klastra Usługi Azure Red Hat OpenShift. Oferta przypisuje jednostkę usługi z odpowiednimi uprawnieniami w czasie wdrażania, bez konieczności przypisywania roli. Jeśli masz jednostkę usługi gotową do użycia, pomiń tę sekcję i przejdź do następnej sekcji, w której utworzysz konto usługi Red Hat Container Registry.
Wykonaj poniższe kroki, aby wdrożyć jednostkę usługi i uzyskać identyfikator aplikacji (klienta) i wpis tajny z witryny Azure Portal. Aby uzyskać więcej informacji, zobacz Create and use a service principal to deploy an Azure Red Hat OpenShift cluster (Tworzenie i używanie jednostki usługi do wdrażania klastra Usługi Azure Red Hat OpenShift).
Uwaga
Aby zarejestrować aplikację w dzierżawie firmy Microsoft Entra, musisz mieć wystarczające uprawnienia. Jeśli wystąpi problem, sprawdź wymagane uprawnienia, aby upewnić się, że twoje konto może utworzyć tożsamość. Aby uzyskać więcej informacji, zobacz Rejestrowanie aplikacji Microsoft Entra i tworzenie jednostki usługi.
Zaloguj się do konta platformy Azure za pośrednictwem witryny Azure Portal.
Wybierz Microsoft Entra ID.
Wybierz pozycję Rejestracje aplikacji.
Wybierz opcjęNowa rejestracja.
Nazwij aplikację — na przykład
jboss-eap-on-aro-app
. Wybierz obsługiwany typ konta, który określa, kto może korzystać z aplikacji. Po ustawieniu wartości wybierz pozycję Zarejestruj, jak pokazano na poniższym zrzucie ekranu. Aprowizowania aplikacji zajmuje kilka sekund. Przed kontynuowaniem poczekaj na ukończenie wdrożenia.Zapisz identyfikator aplikacji (klienta) ze strony przeglądu, jak pokazano na poniższym zrzucie ekranu. Umieść wskaźnik na wartości, która zostanie zredagowana na zrzucie ekranu, i wybierz wyświetloną ikonę kopiowania. Etykietka narzędzia mówi Kopiuj do schowka. Zachowaj ostrożność, aby skopiować poprawną wartość, ponieważ inne wartości w tej sekcji mają również ikony kopiowania. Zapisz identyfikator aplikacji w pliku, aby można było go użyć później.
Utwórz nowy klucz tajny klienta, wykonując następujące kroki:
- Wybierz pozycję Certyfikaty i wpisy tajne.
- Wybierz pozycję Wpisy tajne klienta, a następnie Pozycję Nowy klucz tajny klienta.
- Podaj opis wpisu tajnego i czas trwania. Gdy wszystko będzie gotowe, wybierz pozycję Dodaj.
- Po dodaniu wpisu tajnego klienta zostanie wyświetlona wartość klucza tajnego klienta. Skopiuj tę wartość, ponieważ nie można jej pobrać później. Pamiętaj, aby skopiować wartość, a nie identyfikator wpisu tajnego.
Utworzono aplikację Firmy Microsoft Entra, jednostkę usługi i klucz tajny klienta.
Weryfikowanie jednostki usługi
Użyj następującego polecenia, aby zweryfikować jednostkę usługi:
az login \
--service-principal \
--username <service-principal-client-id> \
--password <service-principal-client-secret> \
--tenant <tenant-id>
az account show
Zastąp <service-principal-client-id>
wartości , <service-principal-client-secret>
i <tenant-id>
wartościami uzyskanymi w poprzednich krokach. Jeśli widzisz informacje o koncie, jednostka usługi jest prawidłowa.
Wdrażanie protokołu JBoss EAP w usłudze Azure Red Hat OpenShift
Kroki opisane w tej sekcji umożliwiają wdrożenie protokołu JBoss EAP w usłudze Azure Red Hat OpenShift.
W poniższych krokach pokazano, jak znaleźć ofertę i wypełnić okienko Podstawy .
Na pasku wyszukiwania w górnej części witryny Azure Portal wprowadź ciąg JBoss EAP. W wynikach wyszukiwania w sekcji Marketplace wybierz pozycję JBoss EAP w usłudze Azure Red Hat OpenShift, jak pokazano na poniższym zrzucie ekranu.
Możesz również przejść bezpośrednio do oferty JBoss EAP w witrynie Azure Red Hat OpenShift w witrynie Azure Portal.
Na stronie oferty wybierz pozycję Utwórz.
W okienku Podstawowe upewnij się, że wartość wyświetlana w polu Subskrypcja jest taka sama, która ma role wymienione w sekcji wymagań wstępnych.
Należy wdrożyć ofertę w pustej grupie zasobów. W polu Grupa zasobów wybierz pozycję Utwórz nową i wypełnij wartość dla grupy zasobów. Ponieważ grupy zasobów muszą być unikatowe w ramach subskrypcji, wybierz unikatową nazwę. Łatwym sposobem na używanie unikatowych nazw jest użycie kombinacji inicjałów, dzisiejszej daty i identyfikatora. Na przykład eaparo033123rg.
W obszarze Szczegóły wystąpienia wybierz region wdrożenia. Aby uzyskać listę regionów świadczenia usługi Azure, w których działa usługa OpenShift, zobacz Regiony dla platformy Red Hat OpenShift 4.x na platformie Azure.
Wybierz pozycję Dalej: ARO.
Poniższe kroki pokazują, jak wypełnić okienko ARO pokazane na poniższym zrzucie ekranu:
W obszarze Utwórz nowy klaster wybierz pozycję Tak.
W obszarze Podaj informacje, aby utworzyć nowy klaster, w polu Klucz tajny ściągnięcia oprogramowania Red Hat wypełnij wpis tajny ściągania red hat uzyskany w sekcji Pobieranie wpisu tajnego ściągnięcia oprogramowania Red Hat. Użyj tej samej wartości dla opcji Potwierdź wpis tajny.
Wypełnij pole Identyfikator klienta jednostki usługi za pomocą identyfikatora jednostki usługi (klienta) uzyskanego w sekcji Tworzenie jednostki usługi Microsoft Entra w witrynie Azure Portal.
W polu Klucz tajny klienta jednostki usługi wprowadź wpis tajny aplikacji jednostki usługi uzyskany w sekcji Tworzenie jednostki usługi Microsoft Entra w witrynie Azure Portal . Użyj tej samej wartości dla opcji Potwierdź wpis tajny.
Wybierz pozycję Dalej aplikacja EAP.
Poniższe kroki pokazują, jak wypełnić okienko Aplikacja protokołu EAP pokazane na poniższym zrzucie ekranu, a następnie rozpocząć wdrażanie.
Pozostaw domyślną opcję Nie dla opcji Wdróż aplikację w usłudze OpenShift przy użyciu opcji Source-to-Image (S2I)?.
Uwaga
W dalszej części tego przewodnika Szybki start pokazano, jak ręcznie wdrożyć aplikację przy użyciu połączenia z bazą danych.
Wybierz pozycję Dalej: Przeglądanie i tworzenie.
Wybierz pozycję Przejrzyj i utwórz. Upewnij się, że w górnej części ekranu pojawi się zielony komunikat Weryfikacja przekazana pomyślnie. Jeśli komunikat nie zostanie wyświetlony, rozwiąż problemy z walidacją, a następnie ponownie wybierz pozycję Przejrzyj i utwórz .
Wybierz pozycję Utwórz.
Śledzenie postępu wdrażania na stronie Wdrażanie jest w toku .
W zależności od warunków sieciowych i innych działań w wybranym regionie wdrożenie może potrwać do 35 minut.
Czekasz, możesz skonfigurować bazę danych.
Konfigurowanie usługi Azure Database for MySQL — serwer elastyczny
W poniższych sekcjach pokazano, jak skonfigurować usługę Azure Database for MySQL — serwer elastyczny.
Ustawianie zmiennych środowiskowych w powłoce wiersza polecenia
Przykład jest aplikacją Java wspieraną przez bazę danych MySQL i jest wdrażana w klastrze OpenShift przy użyciu interfejsu Source-to-Image (S2I). Aby uzyskać więcej informacji na temat interfejsu S2I, zobacz dokumentację S2I.
Uwaga
Ponieważ tożsamość obciążenia platformy Azure nie jest jeszcze obsługiwana przez usługę Azure OpenShift, w tym artykule nadal jest używana nazwa użytkownika i hasło do uwierzytelniania bazy danych zamiast używania połączeń z bazą danych bez hasła.
Otwórz powłokę i ustaw następujące zmienne środowiskowe. Zastąp podstawień odpowiednio.
RG_NAME=<resource-group-name>
SERVER_NAME=<database-server-name>
DB_DATABASE_NAME=testdb
ADMIN_USERNAME=myadmin
ADMIN_PASSWORD=Secret123456
DB_USERNAME=testuser
DB_PASSWORD=Secret123456
PROJECT_NAME=eaparo-sample
CON_REG_SECRET_NAME=eaparo-sample-pull-secret
CON_REG_ACC_USER_NAME="<red-hat-container-registry-service-account-username>"
CON_REG_ACC_PWD="<red-hat-container-registry-service-account-password>"
APPLICATION_NAME=javaee-cafe
APP_REPLICAS=3
Zastąp symbole zastępcze następującymi wartościami, które są używane w pozostałej części artykułu:
<resource-group-name>
: nazwa utworzonej wcześniej grupy zasobów — na przykładeaparo033123rg
.<database-server-name>
: nazwa serwera MySQL, który powinien być unikatowy na platformie Azure — na przykładeaparo033123mysql
.ADMIN_PASSWORD
: hasło administratora serwera bazy danych MySQL. Ten artykuł został przetestowany przy użyciu pokazanego hasła. Zapoznaj się z dokumentacją bazy danych, aby zapoznać się z regułami haseł.<red-hat-container-registry-service-account-username>
i<red-hat-container-registry-service-account-password>
: nazwa użytkownika i hasło utworzonego wcześniej konta usługi Red Hat Container Registry.
Dobrym pomysłem jest zapisanie w pełni wypełnionych par nazwa/wartość w pliku tekstowym, jeśli powłoka kończy działanie przed wykonaniem poleceń. Dzięki temu możesz wkleić je do nowego wystąpienia powłoki i łatwo kontynuować.
Te pary nazw/wartości są zasadniczo "wpisami tajnymi". Aby uzyskać gotowy do produkcji sposób zabezpieczania usługi Azure Red Hat OpenShift, w tym zarządzania wpisami tajnymi, zobacz Security for the Azure Red Hat OpenShift landing zone accelerator (Zabezpieczenia dla akceleratora strefy docelowej usługi Azure Red Hat OpenShift).
Tworzenie i inicjowanie bazy danych
Następnie wykonaj następujące kroki, aby utworzyć usługę Azure Database for MySQL — serwer elastyczny i utworzyć użytkownika z uprawnieniami do odczytu/zapisu z/do określonej bazy danych.
Użyj następującego polecenia, aby utworzyć usługę Azure Database for MySQL — serwer elastyczny:
az mysql flexible-server create \ --resource-group ${RG_NAME} \ --name ${SERVER_NAME} \ --database-name ${DB_DATABASE_NAME} \ --public-access 0.0.0.0 \ --admin-user ${ADMIN_USERNAME} \ --admin-password ${ADMIN_PASSWORD} \ --yes
Wykonanie tego polecenia może potrwać co najmniej dziesięć minut. Po pomyślnym zakończeniu polecenia zobaczysz dane wyjściowe podobne do następującego przykładu:
{ "connectionString": "mysql testdb --host ejb010406adb.mysql.database.azure.com --user myadmin --password=Secret#123345", "databaseName": "testdb", "firewallName": "AllowAllAzureServicesAndResourcesWithinAzureIps_2023-4-6_21-21-3", "host": "ejb010406adb.mysql.database.azure.com", "id": "/subscriptions/redacted/resourceGroups/ejb010406a/providers/Microsoft.DBforMySQL/flexibleServers/ejb010406adb", "location": "East US", "password": "Secret#123345", "resourceGroup": "ejb010406a", "skuname": "Standard_B1ms", "username": "myadmin", "version": "5.7" }
Użyj następujących poleceń, aby uzyskać hosta utworzonego serwera MySQL:
DB_HOST=$(az mysql flexible-server show \ --resource-group ${RG_NAME} \ --name ${SERVER_NAME} \ --query "fullyQualifiedDomainName" \ --output tsv) echo $DB_HOST
Zapisz parę nazwa/wartość w pliku tekstowym.
Użyj następującego polecenia, aby utworzyć tymczasową regułę zapory, aby zezwolić na połączenie z serwerem MySQL z publicznego Internetu:
az mysql flexible-server firewall-rule create \ --resource-group ${RG_NAME} \ --name ${SERVER_NAME} \ --rule-name "AllowAllIPs" \ --start-ip-address 0.0.0.0 \ --end-ip-address 255.255.255.255
Użyj następującego polecenia, aby utworzyć nowego użytkownika bazy danych z uprawnieniami do odczytu i zapisu określonej bazy danych. To polecenie jest przydatne do wysyłania bazy danych SQL bezpośrednio do bazy danych.
mysql --host ${DB_HOST} --user ${ADMIN_USERNAME} --password=${ADMIN_PASSWORD} << EOF CREATE USER '${DB_USERNAME}'@'%' IDENTIFIED BY '${DB_PASSWORD}'; GRANT ALL PRIVILEGES ON ${DB_DATABASE_NAME} . * TO '${DB_USERNAME}'@'%'; FLUSH PRIVILEGES; EOF
Użyj następującego polecenia, aby usunąć tymczasową regułę zapory:
az mysql flexible-server firewall-rule delete \ --resource-group ${RG_NAME} \ --name ${SERVER_NAME} \ --rule-name "AllowAllIPs" \ --yes
Masz teraz uruchomiony serwer bazy danych MySQL i wszystko będzie gotowe do nawiązania połączenia z aplikacją.
Weryfikowanie funkcjonalności wdrożenia
W krokach w tej sekcji pokazano, jak sprawdzić, czy wdrożenie zakończy się pomyślnie.
Jeśli nastąpi przejście z dala od strony Wdrożenie jest w toku , poniższe kroki pokazują, jak wrócić do tej strony. Jeśli nadal znajdujesz się na stronie z wyświetlonym komunikatem Wdrożenie zostało ukończone, możesz przejść do kroku 5.
W rogu dowolnej strony witryny Azure Portal wybierz menu hamburgera, a następnie wybierz pozycję Grupy zasobów.
W polu z tekstem Filtr dla dowolnego pola wprowadź kilka pierwszych znaków utworzonej wcześniej grupy zasobów. Jeśli wykonano zalecaną konwencję, wprowadź swoje inicjały, a następnie wybierz odpowiednią grupę zasobów.
W okienku nawigacji w sekcji Ustawienia wybierz pozycję Wdrożenia. Zostanie wyświetlona uporządkowana lista wdrożeń w tej grupie zasobów z najnowszą.
Przewiń do najstarszego wpisu na tej liście. Ten wpis odpowiada wdrożeniu rozpoczętym w poprzedniej sekcji. Wybierz najstarsze wdrożenie, jak pokazano na poniższym zrzucie ekranu.
W okienku nawigacji wybierz pozycję Dane wyjściowe. Ta lista zawiera wartości wyjściowe z wdrożenia, które zawierają kilka przydatnych informacji.
Otwórz powłokę, wklej wartość z pola cmdToGetKubeadminCredentials i wykonaj ją. Zobaczysz konto administratora i poświadczenia logowania do portalu konsoli klastra OpenShift. W poniższym przykładzie pokazano konto administratora:
az aro list-credentials --resource-group eaparo033123rg --name clusterf9e8b9
To polecenie generuje dane wyjściowe podobne do następującego przykładu:
{ "kubeadminPassword": "xxxxx-xxxxx-xxxxx-xxxxx", "kubeadminUsername": "kubeadmin" }
Wklej wartość z pola consoleUrl do przeglądarki internetowej połączonej z Internetem, a następnie naciśnij Enter. Wypełnij nazwę użytkownika i hasło administratora, a następnie wybierz pozycję Zaloguj. W konsoli administracyjnej usługi Azure Red Hat OpenShift wybierz pozycję Operatory zainstalowane operatory>, gdzie można znaleźć, że operator JBoss EAP został pomyślnie zainstalowany, jak pokazano na poniższym zrzucie ekranu.
Następnie wykonaj następujące kroki, aby nawiązać połączenie z klastrem OpenShift przy użyciu interfejsu wiersza polecenia platformy OpenShift:
W powłoce użyj następujących poleceń, aby pobrać najnowszą wersję interfejsu wiersza polecenia platformy OpenShift 4 dla systemu GNU/Linux. Jeśli działa w systemie operacyjnym innym niż GNU/Linux, pobierz odpowiedni plik binarny dla tego systemu operacyjnego.
cd ~ wget https://mirror.openshift.com/pub/openshift-v4/clients/ocp/latest/openshift-client-linux.tar.gz mkdir openshift tar -zxvf openshift-client-linux.tar.gz -C openshift echo 'export PATH=$PATH:~/openshift' >> ~/.bashrc && source ~/.bashrc
Wklej wartość z pola cmdToLoginWithKubeadmin do powłoki i wykonaj ją. Powinien zostać wyświetlony
login successful
komunikat i używany projekt. Poniższa zawartość to przykład polecenia służącego do nawiązywania połączenia z klastrem OpenShift przy użyciu interfejsu wiersza polecenia platformy OpenShift.oc login \ $(az aro show \ --resource-group ${RG_NAME} \ --name aro-cluster \ --query apiserverProfile.url \ --output tsv) \ -u $(az aro list-credentials \ --resource-group ${RG_NAME} \ --name aro-cluster \ --query kubeadminUsername \ --output tsv) \ -p $(az aro list-credentials \ --resource-group ${RG_NAME} \ --name aro-cluster \ --query kubeadminPassword \ --output tsv)
To polecenie generuje dane wyjściowe podobne do następującego przykładu:
Login successful. You have access to 68 projects, the list has been suppressed. You can list all projects with 'oc projects' Using project "default".
Wdrażanie aplikacji JBoss EAP w klastrze OpenShift
W krokach w tej sekcji pokazano, jak wdrożyć aplikację w klastrze.
Wdrażanie aplikacji w klastrze
Aby wdrożyć aplikację w klastrze, wykonaj następujące kroki. Aplikacja jest hostowana w repozytorium GitHub rhel-jboss-templates/eap-coffee-app.
W powłoce uruchom następujące polecenia. Polecenia tworzą projekt, stosują uprawnienia umożliwiające działanie S2I, obraz wpisu tajnego ściągania i łączenie wpisu tajnego z względnymi kontami usług w projekcie w celu włączenia ściągania obrazu. Zignoruj ostrzeżenie usługi Git dotyczące stanu "odłączony head".
git clone https://github.com/Azure/rhel-jboss-templates.git cd rhel-jboss-templates git checkout 20240904 cd .. oc new-project ${PROJECT_NAME} oc adm policy add-scc-to-user privileged -z default --namespace ${PROJECT_NAME} w0=-w0 if [[ $OSTYPE == 'darwin'* ]]; then w0= fi CON_REG_ACC_USER_NAME_BASE64=$(echo ${CON_REG_ACC_USER_NAME} | base64 $w0) CON_REG_ACC_PWD_BASE64=$(echo ${CON_REG_ACC_PWD} | base64 $w0)
Ponieważ w następnej sekcji jest używany format HEREDOC, najlepiej dołączyć go i wykonać we własnym fragcie kodu.
cat <<EOF | oc apply -f - apiVersion: v1 kind: Secret metadata: name: ${CON_REG_SECRET_NAME} type: Opaque data: username: ${CON_REG_ACC_USER_NAME_BASE64} password: ${CON_REG_ACC_PWD_BASE64} stringData: hostname: registry.redhat.io EOF
Należy zobaczyć
secret/eaparo-sample-pull-secret created
, aby wskazać pomyślne utworzenie wpisu tajnego. Jeśli te dane wyjściowe nie są widoczne, przed kontynuowaniem rozwiąż problem i rozwiąż go. Na koniec połącz wpis tajny z domyślnym kontem usługi w celu pobrania obrazów kontenerów, aby klaster mógł je uruchomić.oc secrets link default ${CON_REG_SECRET_NAME} --for=pull oc secrets link builder ${CON_REG_SECRET_NAME} --for=pull
Użyj następujących poleceń, aby ściągnąć strumień
jboss-eap74-openjdk11-openshift
obrazu . Następnie uruchom proces źródła do obrazu i zaczekaj na jego zakończenie.oc apply -f https://raw.githubusercontent.com/jboss-container-images/jboss-eap-openshift-templates/eap74/eap74-openjdk11-image-stream.json oc new-build --name=${APPLICATION_NAME} --binary --image-stream=jboss-eap74-openjdk11-openshift:7.4.0 -e CUSTOM_INSTALL_DIRECTORIES=extensions oc start-build ${APPLICATION_NAME} --from-dir=rhel-jboss-templates/eap-coffee-app --follow
Pomyślne dane wyjściowe powinny kończyć się czymś podobnym do następującego przykładu:
Writing manifest to image destination
Storing signatures
Successfully pushed image-registry.openshift-image-registry.svc:5000/eaparo-sample/javaee-cafe@sha256:754587c33c03bf42ba4f3ce5a11526bbfc82aea94961ce1179a415c2bfa73449
Push successful
Jeśli nie widzisz podobnych danych wyjściowych, rozwiąż problem przed kontynuowaniem.
Tworzenie wpisu tajnego dla hasła bazy danych
Następnie wykonaj następujące kroki, aby utworzyć wpis tajny:
Użyj następującego polecenia, aby utworzyć wpis tajny do przechowywania hasła bazy danych:
oc create secret generic db-secret --from-literal=password=${DB_PASSWORD}
Użyj następujących poleceń, aby wdrożyć i uruchomić trzy repliki konteneryzowanej aplikacji w klastrze:
cat <<EOF | oc apply -f - apiVersion: wildfly.org/v1alpha1 kind: WildFlyServer metadata: name: ${APPLICATION_NAME} spec: applicationImage: ${APPLICATION_NAME}:latest replicas: ${APP_REPLICAS} env: - name: DB_SERVICE_PREFIX_MAPPING value: TEST-MYSQL=DS1 - name: TEST_MYSQL_SERVICE_HOST value: ${DB_HOST} - name: TEST_MYSQL_SERVICE_PORT value: '3306' - name: DS1_JNDI value: java:jboss/datasources/JavaEECafeDB - name: DS1_URL value: jdbc:mysql://${DB_HOST}:3306/${DB_DATABASE_NAME} - name: DS1_DRIVER value: mysql - name: DS1_DATABASE value: ${DB_DATABASE_NAME} - name: DS1_USERNAME value: ${DB_USERNAME} - name: DS1_PASSWORD valueFrom: secretKeyRef: name: db-secret key: password secrets: - db-secret EOF
Jeśli polecenie zostało ukończone pomyślnie, powinien zostać wyświetlony komunikat
wildflyserver.wildfly.org/javaee-cafe created
. Jeśli te dane wyjściowe nie są widoczne, przed kontynuowaniem rozwiąż problem i rozwiąż go.Uruchom polecenie
oc get pod -w | grep 1/1
, aby monitorować, czy wszystkie zasobniki aplikacji są uruchomione. Gdy zobaczysz dane wyjściowe podobne do poniższego przykładu, naciśnij Ctrl + C, aby zatrzymać monitorowanie:javaee-cafe-2 1/1 Running 0 31s javaee-cafe-1 1/1 Running 0 30s javaee-cafe-0 1/1 Running 0 30s
Osiągnięcie odpowiedniego stanu może potrwać kilka minut. Możesz nawet zobaczyć
STATUS
wartości kolumn, w tymErrImagePull
iImagePullBackOff
przedRunning
nim.Uruchom następujące polecenie, aby zwrócić adres URL aplikacji. Możesz użyć tego adresu URL, aby uzyskać dostęp do wdrożonej przykładowej aplikacji. Skopiuj dane wyjściowe do schowka.
echo http://$(oc get route ${APPLICATION_NAME}-route -o=jsonpath='{.spec.host}')/javaee-cafe
Wklej dane wyjściowe do przeglądarki internetowej połączonej z Internetem, a następnie naciśnij Enter. Powinien zostać wyświetlony interfejs użytkownika aplikacji Java EE Cafe podobny do poniższego zrzutu ekranu:
Dodaj i usuń niektóre wiersze, aby sprawdzić, czy łączność z bazą danych działa prawidłowo.
Czyszczenie zasobów
Jeśli nie zamierzasz nadal używać klastra OpenShift, wróć do roboczej grupy zasobów. W górnej części strony w obszarze tekstowej Grupa zasobów wybierz grupę zasobów. Następnie wybierz pozycję Usuń grupę zasobów.
Następny krok
Aby uzyskać więcej informacji na temat wdrażania protokołu JBoss EAP na platformie Azure, zobacz Red Hat JBoss EAP na platformie Azure.