Nasazení aplikace v jazyce Java s otevřeným nástrojem svobody nebo WebSphere Svoboda v clusteru Azure Kubernetes Service (AKS)
Tento článek ukazuje, jak:
- spusťte aplikaci java, java EE, Jakarta EE nebo mikroprofile v otevřeném prostředí WebSphere svobody nebo svobody.
- Sestavte image Docker aplikace pomocí otevřených imagí kontejnerů.
- Nasaďte kontejnerové aplikace do clusteru AKS pomocí otevřeného operátoru svoboda.
Otevřený operátor svoboda zjednodušuje nasazení a správu aplikací spuštěných v clusterech Kubernetes. V případě otevřeného operátoru svoboda můžete také provádět pokročilejší operace, například shromažďování trasování a výpisů paměti.
Další informace o otevřeném počítači můžete zobrazit na stránce otevřít a projekt. Další podrobnosti o IBM WebSphere svobody najdete na stránce produktu WebSphere svobody.
Pokud ještě nemáte předplatné Azure,vytvořte si bezplatný účet před tím, než začnete.
Požadavky
V nástroji použijte prostředí Bash Azure Cloud Shell.
Pokud tomu dáváte přednost, můžete nainstalovat Azure CLI a spouštět referenční příkazy CLI.
Pokud používáte místní instalaci, přihlaste se k Azure CLI pomocí příkazu az login. Pokud chcete dokončit proces ověřování, postupujte podle kroků zobrazených na terminálu. Další možnosti přihlášení jsou popsané v tématu Přihlášení pomocí Azure CLI.
Po zobrazení výzvy nainstalujte rozšíření Azure CLI při prvním použití. Další informace o rozšířeních najdete v tématu Využití rozšíření v Azure CLI.
Spuštěním příkazu az version zjistěte verzi a závislé knihovny, které jsou nainstalované. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.
- Tento článek vyžaduje nejnovější verzi rozhraní příkazového řádku Azure CLI. Pokud používáte Azure Cloud Shell, nejnovější verze je už nainstalovaná.
- Pokud se v této příručce spouští příkazy místně (místo Azure Cloud Shell):
- připravte místní počítač s nainstalovaným operačním systémem, který má systém Unix (například Ubuntu, macOS, Subsystém Windows pro Linux).
- nainstalujte implementaci Java SE (například AdoptOpenJDK OpenJDK 8 LTS/OpenJ9).
- Nainstalujte Maven 3.5.0 nebo vyšší.
- Nainstalujte Docker pro váš operační systém.
Vytvoření skupiny prostředků
Skupina prostředků Azure je logická skupina, ve které se nasazují a spravují prostředky Azure.
Vytvořte skupinu prostředků s názvem Java-svoboda-Project pomocí příkazu AZ Group Create v umístění eastus . Tato skupina prostředků se použije později pro vytvoření instance Azure Container Registry (ACR) a clusteru AKS.
RESOURCE_GROUP_NAME=java-liberty-project
az group create --name $RESOURCE_GROUP_NAME --location eastus
Vytvoření instance ACR
Instanci ACR vytvoříte pomocí příkazu AZ ACR Create . Následující příklad vytvoří instanci ACR s názvem youruniqueacrname. Ujistěte se, že youruniqueacrname je v rámci Azure jedinečný.
export REGISTRY_NAME=youruniqueacrname
az acr create --resource-group $RESOURCE_GROUP_NAME --name $REGISTRY_NAME --sku Basic --admin-enabled
Po krátké době by se měl zobrazit výstup JSON obsahující:
"provisioningState": "Succeeded",
"publicNetworkAccess": "Enabled",
"resourceGroup": "java-liberty-project",
Připojení instance ACR
Před nahráním image do této instance se budete muset přihlásit k instanci ACR. Spusťte následující příkazy a ověřte připojení:
export LOGIN_SERVER=$(az acr show -n $REGISTRY_NAME --query 'loginServer' -o tsv)
export USER_NAME=$(az acr credential show -n $REGISTRY_NAME --query 'username' -o tsv)
export PASSWORD=$(az acr credential show -n $REGISTRY_NAME --query 'passwords[0].value' -o tsv)
docker login $LOGIN_SERVER -u $USER_NAME -p $PASSWORD
Pokud jste se Login Succeeded úspěšně přihlásili k instanci ACR, měli byste vidět na konci příkazu OUTPUT.
Vytvoření clusteru AKS
Pomocí příkazu az aks create vytvořte cluster AKS. Následující příklad vytvoří cluster myAKSCluster s jedním uzlem. Dokončení této akce bude trvat několik minut.
CLUSTER_NAME=myAKSCluster
az aks create --resource-group $RESOURCE_GROUP_NAME --name $CLUSTER_NAME --node-count 1 --generate-ssh-keys --enable-managed-identity
Po několika minutách se příkaz dokončí a vrátí informace o clusteru ve formátu JSON, včetně následujících:
"nodeResourceGroup": "MC_java-liberty-project_myAKSCluster_eastus",
"privateFqdn": null,
"provisioningState": "Succeeded",
"resourceGroup": "java-liberty-project",
Připojení ke clusteru AKS
Ke správě clusteru Kubernetes použijete klienta příkazového řádku Kubernetes kubectl. Pokud používáte Azure Cloud Shell, kubectl je již nainstalováno. Pokud chcete nainstalovat kubectl místně, použijte příkaz AZ AKS Install-CLI :
az aks install-cli
Pomocí příkazu az aks get-credentials nakonfigurujte klienta kubectl pro připojení k vašemu clusteru Kubernetes. Tento příkaz stáhne pověření a nakonfiguruje rozhraní příkazového řádku Kubernetes pro jejich použití.
az aks get-credentials --resource-group $RESOURCE_GROUP_NAME --name $CLUSTER_NAME --overwrite-existing
Poznámka
Výše uvedený příkaz používá výchozí umístění konfiguračního souboru Kubernetes, který je ~/.kube/config . Můžete zadat jiné umístění konfiguračního souboru Kubernetes pomocí --File.
Pokud chcete ověřit připojení ke clusteru, použijte příkaz kubectl get, který vrátí seznam uzlů clusteru.
kubectl get nodes
Následující příklad výstupu ukazuje jeden uzel vytvořený v předchozích krocích. Ujistěte se, že stav uzlu je připravený:
NAME STATUS ROLES AGE VERSION
aks-nodepool1-xxxxxxxx-yyyyyyyyyy Ready agent 76s v1.18.10
Nainstalovat otevřený operátor svoboda
Po vytvoření a připojení ke clusteru nainstalujte pomocí následujících příkazů otevřený operátor Open .
OPERATOR_NAMESPACE=default
WATCH_NAMESPACE='""'
# Install Custom Resource Definitions (CRDs) for OpenLibertyApplication
kubectl apply -f https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/master/deploy/releases/0.7.1/openliberty-app-crd.yaml
# Install cluster-level role-based access
curl -L https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/master/deploy/releases/0.7.1/openliberty-app-cluster-rbac.yaml \
| sed -e "s/OPEN_LIBERTY_OPERATOR_NAMESPACE/${OPERATOR_NAMESPACE}/" \
| kubectl apply -f -
# Install the operator
curl -L https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/master/deploy/releases/0.7.1/openliberty-app-operator.yaml \
| sed -e "s/OPEN_LIBERTY_WATCH_NAMESPACE/${WATCH_NAMESPACE}/" \
| kubectl apply -n ${OPERATOR_NAMESPACE} -f -
Sestavit obrázek aplikace
Pokud chcete nasadit a spustit vaši aplikaci svobody v clusteru AKS, kontejnerizace aplikaci jako image Docker pomocí otevřených imagí kontejnerů nebo WebSphere. Image kontejnerů.
Naklonujte vzorový kód pro tento průvodce. Ukázka je na GitHub.
Změňte adresář na
javaee-app-simple-clustersvůj místní klon.Spusťte příkaz
mvn clean packagepro zabalení aplikace.Spusťte
mvn liberty:devpro otestování aplikace. V případě úspěchu by se měla zobrazitThe defaultServer server is ready to run a smarter planet.ve výstupu příkazu. PoužijteCTRL-Ck zastavení aplikace.Načtěte hodnoty pro vlastnosti
artifactIdaversiondefinované vpom.xml.artifactId=$(mvn -q -Dexec.executable=echo -Dexec.args='${project.artifactId}' --non-recursive exec:exec) version=$(mvn -q -Dexec.executable=echo -Dexec.args='${project.version}' --non-recursive exec:exec)Spusťte
cd targetpro změnu adresáře na sestavení ukázky.Spusťte jeden z následujících příkazů a sestavte image aplikace a nahrajte ji do instance ACR.
Sestavte se s otevřenými základními obrázky s odlehčeným použitím Open Source Java™ Runtime:
# Build and tag application image. This will cause the ACR instance to pull the necessary Open Liberty base images. az acr build -t ${artifactId}:${version} -r $REGISTRY_NAME .Sestavte se základní imagí WebSphere svoboda, pokud chcete použít komerční verzi programu Open.
# Build and tag application image. This will cause the ACR instance to pull the necessary WebSphere Liberty base images. az acr build -t ${artifactId}:${version} -r $REGISTRY_NAME --file=Dockerfile-wlp .
Nasazení aplikace v clusteru AKS
Pomocí následujících kroků Nasaďte aplikaci svobody v clusteru AKS.
Vytvořte tajný klíč pro vyžádání, aby byl cluster AKS ověřený pro vyžádání image z instance ACR.
kubectl create secret docker-registry acr-secret \ --docker-server=${LOGIN_SERVER} \ --docker-username=${USER_NAME} \ --docker-password=${PASSWORD}Ověřte, že aktuální pracovní adresář má
javaee-app-simple-cluster/targetsvůj místní klon.Spusťte následující příkazy, abyste nasadili vaši aplikaci svobody se 3 replikami do clusteru AKS. Výstup příkazu je také zobrazen jako vložený.
# Create OpenLibertyApplication "javaee-cafe-cluster" kubectl apply -f openlibertyapplication.yaml openlibertyapplication.openliberty.io/javaee-cafe-cluster created # Check if OpenLibertyApplication instance is created kubectl get openlibertyapplication ${artifactId}-cluster NAME IMAGE EXPOSED RECONCILED AGE javaee-cafe-cluster youruniqueacrname.azurecr.io/javaee-cafe:1.0.25 True 59s # Check if deployment created by Operator is ready kubectl get deployment ${artifactId}-cluster --watch NAME READY UP-TO-DATE AVAILABLE AGE javaee-cafe-cluster 0/3 3 0 20sPočkejte, dokud se nezobrazí
3/3podREADYsloupcem a3pod ním, aAVAILABLEpoužijteCTRL-Ck zastaveníkubectlprocesu sledování.
Testování aplikace
Když je aplikace spuštěná, služba Vyrovnávání zatížení Kubernetes zpřístupňuje front-end aplikace na internetu. Dokončení tohoto procesu může nějakou dobu trvat.
Pomocí příkazu kubectl get service s argumentem --watch můžete sledovat průběh.
kubectl get service ${artifactId}-cluster --watch
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
javaee-cafe-cluster LoadBalancer 10.0.251.169 52.152.189.57 80:31732/TCP 68s
Jakmile se adresa External-IP změní ze stavu čeká na skutečnou veřejnou IP adresu, použijte CTRL-C k zastavení kubectl procesu sledování.
Otevřete webový prohlížeč na externí IP adresu vaší služby ( 52.152.189.57 pro výše uvedený příklad) a zobrazte tak domovskou stránku aplikace. V levém horním rohu stránky by se měl zobrazit název pod názvem repliky vaší aplikace. Počkejte několik minut a aktualizujte stránku, aby se zobrazil jiný název pod, který je zobrazený kvůli vyrovnávání zatížení, které poskytuje cluster AKS.
Poznámka
- V současné době aplikace nepoužívá protokol HTTPS. Doporučuje se povolit protokol TLS s vlastními certifikáty.
Vyčištění prostředků
Abyste se vyhnuli poplatkům za Azure, měli byste vyčistit nepotřebné prostředky. Pokud už cluster nepotřebujete, odeberte skupinu prostředků, službu kontejneru, registr kontejnerů a všechny související prostředky pomocí příkazu AZ Group Delete .
az group delete --name $RESOURCE_GROUP_NAME --yes --no-wait
Další kroky
Další informace můžete získat z odkazů používaných v tomto průvodci:
