Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: AKS na Windows Serveru
Tento článek ukazuje, jak:
- Spusťte svoji aplikaci Java, Java EE, Jakarta EE nebo MicroProfile v modulu runtime Open Liberty nebo WebSphere Liberty.
- Sestavte obraz Dockeru aplikace pomocí obrazů kontejneru Open Liberty.
- Nasaďte kontejnerizovanou aplikaci do místního clusteru AKS v AKS na Windows Serveru pomocí operátoru Open Liberty.
Operátor Open Liberty zjednodušuje nasazení a správu aplikací spuštěných v clusterech Kubernetes. S operátorem Open Liberty můžete také provádět pokročilejší operace, jako je shromažďování stop a výpisů.
Další informace o aplikaci Open Liberty naleznete na stránce projektu Open Liberty. Další informace o PRODUKTU IBM WebSphere Liberty naleznete na stránce produktu WebSphere Liberty.
Tento článek je rozdělený do dvou částí:
Část 1 se zaměřuje na nasazení nezbytných artefaktů v Azure. Toto nasazení zahrnuje skupinu prostředků a službu Azure Container Registry. K provedení těchto úloh můžete použít Azure Cloud Shell (nejjednodušší), který zahrnuje nejnovější verzi Azure CLI, nebo místní systém s nainstalovanými následujícími nástroji:
- Nainstalovaný operační systém podobný unixu (například Ubuntu, macOS, Subsystém Windows pro Linux).
- Nainstalujte Azure CLI podle předchozích pokynů.
- Nainstalujte implementaci Java SE (například AdoptOpenJDK OpenJDK 8 LTS/OpenJ9).
- Nainstalujte Maven 3.5.0 nebo novější.
- Nainstalujte Docker pro váš operační systém.
Část 2 se zaměřuje na nasazení aplikace z azure Container Registry do prostředí AKS Arc. V této části nemůžete použít Azure Cloud Shell. Pro prostředí AKS Arc jsou vyžadovány následující položky:
- Cluster AKS s alespoň jedním pracovním uzlem Linuxu, který je spuštěný.
- Nakonfigurované místní
kubectl
prostředí, které odkazuje na cluster AKS. K přístupu ke clusteru můžete použít příkaz Get-AksHciCredential PowerShell pomocíkubectl
. - Nástroje příkazového řádku Git nainstalované ve vašem systému V systému Windows můžete jako hlavní konzolu použít Git Bash a v konzole Git Bash v případě potřeby volat PowerShell a Azure.
Vytvoření skupiny prostředků v Azure
Skupina prostředků Azure je logická skupina, do které se nasazují a spravují prostředky Azure.
Skupinu prostředků s názvem java-liberty-project můžete vytvořit pomocí příkazu az group create v lokalitě eastus. Tato skupina prostředků se použije později k vytvoření instance služby Azure Container Registry:
RESOURCE_GROUP_NAME=java-liberty-project
az group create --name $RESOURCE_GROUP_NAME --location eastus
Vytvoření instance služby Container Registry v Azure
Pomocí příkazu az acr create vytvořte instanci služby Azure Container Registry. Následující příklad vytvoří instanci Container Registry s názvem youruniquecontainerregistryname. Ujistěte se, že vašeuniquecontainerregistryname je jedinečný v rámci Azure:
REGISTRY_NAME=youruniquecontainerregistryname
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, který vypadá podobně jako v následujícím příkladu:
"provisioningState": "Succeeded",
"publicNetworkAccess": "Enabled",
"resourceGroup": "java-liberty-project",
Připojení k instanci služby Container Registry v Azure
Před odesláním image do instance služby Container Registry se musíte přihlásit k instanci služby Container Registry. Spuštěním následujících příkazů ověřte připojení. Poznamenejte si přihlašovací údaje. Později je použijete při připojování k AKS:
LOGIN_SERVER=$(az acr show -n $REGISTRY_NAME --query 'loginServer' -o tsv)
USER_NAME=$(az acr credential show -n $REGISTRY_NAME --query 'username' -o tsv)
PASSWORD=$(az acr credential show -n $REGISTRY_NAME --query 'passwords[0].value' -o tsv)
echo $LOGIN_SERVER
echo $USER_NAME
echo $PASSWORD
docker login $LOGIN_SERVER -u $USER_NAME -p $PASSWORD
Pokud jste se úspěšně přihlásili k instanci Container Registry, měli byste na konci výstupu příkazu vidět úspěšné přihlášení .
Vytvoření obrazu aplikace v Azure
Pokud chcete nasadit a spustit aplikaci Liberty v clusteru AKS, musíte nejprve kontejnerizovat aplikaci jako image Dockeru pomocí imagí kontejnerů Open Liberty nebo imagí kontejnerů WebSphere Liberty:
- Naklonujte vzorový kód pro tuto příručku. Ukázka je na GitHubu.
- Změňte adresář do
javaee-app-simple-cluster
vašeho místního klonu. - Spusťte
mvn clean package
k zabalení aplikace. - Spusťte
mvn liberty:dev
test aplikace. Pokud byl příkaz úspěšný, měli byste vidět , že výchozí serverServer je připravený na spuštění chytřejší planety ve výstupu příkazu. K zastavení aplikace použijte kombinaci kláves CTRL-C . - Spuštěním jednoho z následujících příkazů sestavte image aplikace a odešlete ji do instance Container Registry:
Pokud chcete použít Open Liberty pro odlehčený open-source běhový modul Java, sestavte pomocí základního obrazu Open Liberty.
# Build and tag application image. This causes the Container Registry instance to pull the necessary Open Liberty base images. az acr build -t javaee-cafe-simple:1.0.0 -r $REGISTRY_NAME .
Pokud chcete raději použít komerční verzi Open Liberty, vytvořte ji pomocí základní image WebSphere Liberty:
# Build and tag application image. This causes the Container Registry instance to pull the necessary WebSphere Liberty base images. az acr build -t javaee-cafe-simple:1.0.0 -r $REGISTRY_NAME --file=Dockerfile-wlp .
Připojení ke clusteru AKS
Ke správě clusteru Kubernetes použijete kubectl, klienta příkazového řádku Kubernetes. Jakmile je nainstalován ve Windows, můžete spustit kubectl
z příkazového řádku, konzoly PowerShell nebo Git Bash.
Jako předpoklad byste měli nakonfigurovat místní kubectl
prostředí tak, aby ukazovalo na cluster AKS. K přístupu ke clusteru můžete použít příkaz PowerShell Get-AksHciCredential pomocí kubectl
.
Get-AksHciCredential -name AksHciClusterName
Poznámka:
Předchozí příkaz používá výchozí umístění pro konfigurační soubor Kubernetes, který je %USERPROFILE%.kube. Pomocí parametru můžete zadat jiné umístění konfiguračního -outputLocation
souboru Kubernetes.
Zpátky v konzole ověřte připojení ke clusteru pomocí příkazu kubectl get a vraťte 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 je stav uzlu připravený:
NAME STATUS ROLES AGE VERSION
aks-nodepool1-xxxxxxxx-yyyyyyyyyy Ready agent 76s v1.18.10
Instalace operátoru Open Liberty
Po vytvoření clusteru a připojení k němu nainstalujte operátor Open Liberty spuštěním následujících příkazů:
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 -
Nasazení aplikace v clusteru AKS
Pomocí těchto kroků nasaďte aplikaci Liberty do clusteru AKS. Musíte načíst přihlašovací údaje z předchozí relace:
Pokud jste dříve použili Azure Cloud Shell a teď pro připojení k AKS používáte samostatnou konzolu, musíte znovu zadat svoje přihlašovací údaje:
LOGIN_SERVER=YourLoginServerFromEarlier USER_NAME=YourUsernameFromEarlier PASSWORD=YourPwdFromEarlier
Vytvořte pull secret, aby se cluster AKS ověřil pro stažení image z instance Container Registry.
kubectl create secret docker-registry acr-secret \ --docker-server=${LOGIN_SERVER} \ --docker-username=${USER_NAME} \ --docker-password=${PASSWORD}
Znovu platí, že pokud jste dříve použili Azure Cloud Shell a teď používáte samostatný nástroj nebo relaci pro připojení k AKS, musíte naklonovat ukázkový kód pro tuto příručku. Ukázka je na GitHubu.
Ověřte, že aktuální pracovní adresář v místním klonu je javaee-app-simple-cluster.
Spuštěním následujících příkazů nasaďte aplikaci Liberty se třemi replikami do clusteru AKS. Výstup příkazu se také zobrazuje přímo.
# Create OpenLibertyApplication "javaee-app-simple-cluster" cat openlibertyapplication.yaml | sed -e "s/\${Container_Registry_URL}/${LOGIN_SERVER}/g" | sed -e "s/\${REPLICAS}/3/g" | kubectl apply -f - openlibertyapplication.openliberty.io/javaee-app-simple-cluster created # Check if OpenLibertyApplication instance is created kubectl get openlibertyapplication javaee-app-simple-cluster NAME IMAGE EXPOSED RECONCILED AGE javaee-app-simple-cluster youruniquecontainerregistryname.azurecr.io/javaee-cafe-simple:1.0.0 True 59s # Check if deployment created by Operator is ready kubectl get deployment javaee-app-simple-cluster --watch NAME READY UP-TO-DATE AVAILABLE AGE javaee-app-simple-cluster 0/3 3 0 20s
Počkejte, až uvidíte ve sloupci READY3/3 a ve sloupci AVAILABLE3. Potom můžete proces sledování zastavit pomocí CTRL-C.
Otestování aplikace
Když se aplikace spustí, služba nástroje pro vyrovnávání zatížení Kubernetes zveřejní front-end aplikace na internetu. Dokončení tohoto procesu může chvíli trvat.
Pomocí příkazu kubectl get service s argumentem --watch
můžete sledovat průběh.
kubectl get service javaee-app-simple-cluster --watch
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
javaee-app-simple-cluster LoadBalancer 10.109.118.3 192.168.0.152 80:30580/TCP 68s
Jakmile se externí IP adresa změní z čekání na skutečnou veřejnou IP adresu, pomocí kubectl
zastavte proces sledování.
Otevřete webový prohlížeč na externí IP adresu vaší služby (v tomto příkladu 192.168.0.152 ) a zobrazte domovskou stránku aplikace. V levém horním rohu stránky by se měl zobrazit název podu replik aplikace. Počkejte několik minut a pak aktualizujte stránku, aby se v důsledku vyrovnávání zatížení poskytovaného clusterem AKS zobrazil jiný název podu.
Poznámka:
V současné době aplikace nepoužívá protokol HTTPS. Protokol TLS byste měli povolit s vlastními certifikáty.
Ukliďte zdroje
Abyste se vyhnuli poplatkům za Azure, měli byste vyčistit nepotřebné prostředky. Pokud už cluster nepotřebujete, pomocí příkazu az group delete odeberte skupinu prostředků, registr kontejneru a související prostředky Azure:
RESOURCE_GROUP_NAME=java-liberty-project
az group delete --name $RESOURCE_GROUP_NAME --yes --no-wait
Pokud chcete vyčistit prostředky nasazené v AKS, spusťte z místní konzoly následující příkazy:
kubectl delete -f https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/master/deploy/releases/0.7.1/openliberty-app-crd.yaml
kubectl delete -f https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/master/deploy/releases/0.7.1/openliberty-app-operator.yaml
kubectl delete -f openlibertyapplication.yaml
Další kroky
Další informace najdete v odkazech použitých v tomto průvodci: