Azure Kubernetes Service (AKS) kümesi üzerinde açık özgürlük veya WebSphere özgürlük ile Java uygulaması dağıtma
Bu makalede nasıl yapılacağı gösterilmektedir:
- açık özgürlük veya websphere serbest çalışma zamanında java, java EE, jakarta EE veya mikro profil uygulamanızı çalıştırın.
- Açık serbest yer kapsayıcısı görüntülerini kullanarak uygulama Docker görüntüsünü oluşturun.
- Açık Liberty Işlecini kullanarak Kapsayıcılı uygulamayı bir AKS kümesine dağıtın.
Açık özgürlük Işleci, Kubernetes kümelerinde çalışan uygulamaların dağıtımını ve yönetimini basitleştirir. Açık serbest bir Işleçle, izleme ve dökümleri toplama gibi daha gelişmiş işlemler de yapabilirsiniz.
Açık özgürlük hakkında daha fazla bilgi için, bkz. serbest bir proje açın sayfası. IBM WebSphere özgürlük hakkında daha fazla bilgi için bkz. WebSphere Liberty ürün sayfası.
Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Önkoşullar
Azure Cloud Shell'Da Bash ortamını kullanın.
Dilerseniz CLI başvuru komutlarını çalıştırmak için Azure CLI’yi yükleyebilirsiniz.
Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Ek oturum açma seçenekleri için bkz. Azure CLI ile oturum açma.
İstendiğinde, ilk kullanımda Azure CLI uzantılarını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.
Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.
- Bu makale, Azure CLı 'nin en son sürümünü gerektirir. Azure Cloud Shell kullanılıyorsa, en son sürüm zaten yüklüdür.
- Bu kılavuzdaki komutları yerel olarak çalıştırıyorsanız (Azure Cloud Shell yerine):
- unıx benzeri işletim sistemi yüklü bir yerel makine hazırlayın (örneğin, ubuntu, macos, Linux için Windows Alt Sistemi).
- Java SE uygulamasını (örneğin, benimsetopenjdk openjdk 8 lts/OpenJ9) yükler.
- Maven 3.5.0 veya üstünü yükler.
- IŞLETIM sisteminize Docker 'yi yüklemeyin.
Kaynak grubu oluşturma
Azure kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği mantıksal bir gruptur.
Eastus konumundaki az Group Create komutunu kullanarak Java-Liberty-Project adlı bir kaynak grubu oluşturun. Bu kaynak grubu daha sonra Azure Container Registry (ACR) örneği ve AKS kümesi oluşturmak için kullanılır.
RESOURCE_GROUP_NAME=java-liberty-project
az group create --name $RESOURCE_GROUP_NAME --location eastus
ACR örneği oluşturma
ACR örneğini oluşturmak için az ACR Create komutunu kullanın. Aşağıdaki örnek, youruniqueacrname adlı bir ACR örneği oluşturur. Youruniqueacrname 'in Azure içinde benzersiz olduğundan emin olun.
export REGISTRY_NAME=youruniqueacrname
az acr create --resource-group $RESOURCE_GROUP_NAME --name $REGISTRY_NAME --sku Basic --admin-enabled
Kısa bir süre sonra, şunu içeren bir JSON çıktısı görmeniz gerekir:
"provisioningState": "Succeeded",
"publicNetworkAccess": "Enabled",
"resourceGroup": "java-liberty-project",
acr örneğine Bağlan
Bir görüntüyü gönderebilmeniz için ACR örneğinde oturum açmanız gerekir. Bağlantıyı doğrulamak için aşağıdaki komutları çalıştırın:
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
Login SucceededACR örneğinde başarıyla oturum açtıysanız komut çıkışının sonunda görmeniz gerekir.
AKS kümesi oluşturma
AKS kümesi oluşturmak için az aks create komutunu kullanın. Aşağıdaki örnekte, bir düğüm ile myAKSCluster adlı bir küme oluşturulmuştur. Bu işlem birkaç dakika sürer.
CLUSTER_NAME=myAKSCluster
az aks create --resource-group $RESOURCE_GROUP_NAME --name $CLUSTER_NAME --node-count 1 --generate-ssh-keys --enable-managed-identity
Birkaç dakika sonra komut tamamlanır ve aşağıdakiler dahil olmak üzere küme hakkında JSON biçimli bilgileri döndürür:
"nodeResourceGroup": "MC_java-liberty-project_myAKSCluster_eastus",
"privateFqdn": null,
"provisioningState": "Succeeded",
"resourceGroup": "java-liberty-project",
aks kümesine Bağlan
Kubernetes kümesini yönetmek için Kubernetes komut satırı istemcisi olan kubectl'yi kullanırsınız. Azure Cloud Shell kullanıyorsanız, kubectl zaten yüklüdür. kubectlYerel olarak yüklemek için az aks install-cli komutunu kullanın:
az aks install-cli
kubectl istemcisini Kubernetes kümenize bağlanacak şekilde yapılandırmak için az aks get-credentials komutunu kullanın. Bu komut, kimlik bilgilerini indirir ve Kubernetes CLı 'yi bunları kullanacak şekilde yapılandırır.
az aks get-credentials --resource-group $RESOURCE_GROUP_NAME --name $CLUSTER_NAME --overwrite-existing
Not
Yukarıdaki komut, Kubernetes yapılandırma dosyasıiçin varsayılan konumu kullanır ~/.kube/config . --File kullanarak Kubernetes yapılandırma dosyanız için farklı bir konum belirtebilirsiniz.
Kümenize bağlantıyı doğrulamak için kubectl get komutunu kullanarak küme düğümleri listesini alın.
kubectl get nodes
Aşağıdaki örnekte önceki adımlarda oluşturulan tek düğüm gösterilmiştir. Düğüm durumunun olduğundan emin olun:
NAME STATUS ROLES AGE VERSION
aks-nodepool1-xxxxxxxx-yyyyyyyyyy Ready agent 76s v1.18.10
Açık serbest bir Işleci yükle
Kümeye oluşturup bağlandıktan sonra, aşağıdaki komutları çalıştırarak Açık özgürlük işlecini yüklersiniz.
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 -
Uygulama görüntüsü oluştur
Özgürlük uygulamanızı AKS kümesinde dağıtmak ve çalıştırmak için, Açık serbest yer kapsayıcısı görüntülerini veya WebSphere serbest bir kapsayıcı görüntülerinikullanarak uygulamanızı bir Docker görüntüsü olarak kapsayıcıya geçirin.
Bu kılavuz için örnek kodu kopyalayın. Örnek GitHub.
Dizini
javaee-app-simple-clusterYerel kopyanızda değiştirin.mvn clean packageUygulamayı paketlemek için çalıştırın.mvn liberty:devUygulamayı test etmek için ' i çalıştırın.The defaultServer server is ready to run a smarter planet.Başarılı olursa komut çıktısında görmeniz gerekir.CTRL-CUygulamayı durdurmak için kullanın.Özellikleri için değerleri alın
artifactIdveversioniçinde tanımlanırpom.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)cd targetDizini örneğin derlemesi ile değiştirmek için öğesini çalıştırın.Uygulama görüntüsünü derlemek ve ACR örneğine göndermek için aşağıdaki komutlardan birini çalıştırın.
Açık özgürlük, hafif bir açık kaynak Java™ çalışma zamanı olarak kullanmayı tercih ediyorsanız açık serbest bir temel görüntüyle derleyin:
# 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 .Açık özgürlük ticari bir sürümünü kullanmayı tercih ediyorsanız, WebSphere serbest, ana görüntüsü ile derleyin:
# 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 .
AKS kümesinde uygulama dağıtma
AKS kümesinde Liberty uygulamasını dağıtmak için aşağıdaki adımları izleyin.
AKS kümesinin, ACR örneğinden görüntü çekmek için kimlik doğrulamasından geçmek üzere bir çekme gizli anahtarı oluşturun.
kubectl create secret docker-registry acr-secret \ --docker-server=${LOGIN_SERVER} \ --docker-username=${USER_NAME} \ --docker-password=${PASSWORD}Geçerli çalışma dizininin
javaee-app-simple-cluster/targetYerel kopyanızda olduğunu doğrulayın.Serbest bir uygulamanızı, AKS kümesine 3 çoğaltma ile dağıtmak için aşağıdaki komutları çalıştırın. Komut çıktısı Ayrıca satır içi olarak gösterilir.
# 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 20s3/3Sütunun altında ve sütununun altında görene kadar bekleyinREADY3AVAILABLE,CTRL-Cizleme işlemini durdurmak için kullanınkubectl.
Uygulamayı test edin
Uygulama çalıştığında, bir Kubernetes Yük Dengeleyici Hizmeti, uygulamanın ön ucuna internet 'e koyar. Bu işlemin tamamlanması biraz zaman alabilir.
İlerlemeyi izlemek için, kubectl Get Service komutunu bağımsız değişkeniyle birlikte kullanın --watch .
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
Dış IP adresi bekliyor durumundan gerçek ortak IP adresine değiştiğinde, CTRL-C izleme işlemini durdurmak için kullanın kubectl .
52.152.189.57Uygulama giriş sayfasını görmek için hizmetinizin dış IP adresine (Yukarıdaki örnek için) bir Web tarayıcısı açın. Sayfanın sol tarafında görünen uygulama çoğaltmalarınızın Pod adını görmeniz gerekir. Birkaç dakika bekleyin ve AKS kümesi tarafından sağlanmış yük dengelemesi nedeniyle farklı bir pod adı görmek için sayfayı yenileyin.
Not
- Şu anda uygulama HTTPS kullanmıyor. Kendi sertifikalarınız Ile TLS etkinleştirilmesiönerilir.
Kaynakları temizleme
Azure ücretlerinden kaçınmak için gereksiz kaynakları temizlemeniz gerekir. Küme artık gerekli olmadığında, az Group Delete komutunu kullanarak kaynak grubunu, kapsayıcı hizmetini, kapsayıcı kayıt defterini ve tüm ilgili kaynakları kaldırın.
az group delete --name $RESOURCE_GROUP_NAME --yes --no-wait
Sonraki adımlar
Bu kılavuzda kullanılan başvurulardan daha fazla bilgi edinebilirsiniz:
