A tárolórendszerkép üzembe helyezése az Azure Kubernetes Service-ben
Ebben az egységben egy tárolórendszerképet telepít az Azure Kubernetes Service-re (AKS). Az AKS használatával konfigurálhatja a Kubernetes-fürtöt úgy, hogy az egy telepítés segítségével a kívánt állapotban fusson, ami a podok és a replikakészletek deklaratív frissítéseinek biztosítását jelenti. Ezt az állapotdeklarációt a jegyzék YAML-fájlban kezeli a rendszer, és a Kubernetes-vezérlő utasítás esetén az aktuális állapotot a deklarált állapotra módosítja. Létrehozza ezt a deployment.yml jegyzékfájlt, és utasítja az AKS-példányt, hogy a kívánt állapotban fusson podokkal, amelyek úgy vannak konfigurálva, hogy lekérjék és futtassák a flightbookingsystemsample konténerképet, amelyet az előző egységben feltöltött az Azure konténerregisztrációs adatbázisba. A manifesztfájl nélkül manuálisan kell létrehoznia, frissítenie és törölnie a podokat, ahelyett hogy a Kubernetes vezérelhetné a folyamatot.
Jegyzet
Ha a munkamenet üresjáratban van, vagy ezt a lépést egy másik időpontban vagy egy másik parancssori felületről hajtja végre, előfordulhat, hogy újra kell inicializálnia a környezeti változókat, és újra kell hitelesítenie a következő parancsokat:
export AZ_RESOURCE_GROUP=java-containerization-demo-rg
export AZ_CONTAINER_REGISTRY=<your-container-registry>
export AZ_KUBERNETES_CLUSTER=java-containerization-demo-aks
export AZ_LOCATION=<your-Azure-region>
export AZ_KUBERNETES_CLUSTER_DNS_PREFIX=<your-unique-DNS-prefix-to-access-your-AKS-cluster>
az login
az acr login --name $AZ_CONTAINER_REGISTRY
Konténerkép üzembe helyezése
Most helyezze üzembe a flightbookingsystemsample tárolólemezképet az AKS-fürtben. A flight-Booking-System-JavaServlets_App/Project/Airlines nevű projekt gyökérmappájában hozzon létre egy deployment.yml nevű fájlt az alábbi paranccsal:
vi deployment.yml
Adja hozzá a következő tartalmat a deployment.yml, majd mentse és lépjen ki. Mindenképpen cserélje le a <AZ_CONTAINER_REGISTRY> helyőrzőt a AZ_CONTAINER_REGISTRY korábban beállított környezeti változó értékére. A mentéshez és a kilépéshez nyomja le az ESC billentyűt, írja be a következőt: wq!, majd nyomja le az Enter billentyűt.
apiVersion: apps/v1
kind: Deployment
metadata:
name: flightbookingsystemsample
spec:
replicas: 1
selector:
matchLabels:
app: flightbookingsystemsample
template:
metadata:
labels:
app: flightbookingsystemsample
spec:
containers:
- name: flightbookingsystemsample
image: <AZ_CONTAINER_REGISTRY>.azurecr.io/flightbookingsystemsample:latest
resources:
requests:
cpu: "1"
memory: "1Gi"
limits:
cpu: "2"
memory: "2Gi"
ports:
- containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
name: flightbookingsystemsample
spec:
type: LoadBalancer
ports:
- port: 8080
targetPort: 8080
selector:
app: flightbookingsystemsample
Jegyzet
Igény szerint használhatja a deployment_solution.yml fájlt a projekt gyökérmappájában, amely tartalmazza a szükséges tartalmat. Egyszerűbb lehet átnevezni vagy frissíteni a fájl tartalmát.
Az előző deployment.yml a fájl egy üzembe helyezést és egy szolgáltatást tartalmaz. Az üzembe helyezés podok egy csoportjának felügyeletére szolgál, a szolgáltatás pedig a podokhoz való hálózati hozzáférés engedélyezésére szolgál. A podok úgy vannak konfigurálva, hogy egyetlen rendszerképet kérjenek le az <AZ_CONTAINER_REGISTRY>.azurecr.io/flightbookingsystemsample:latestAzure Container Registryből. A szolgáltatás úgy van konfigurálva, hogy engedélyezze a bejövő HTTP forgalmat a 8080-as portot használó podok számára, hasonlóan ahhoz, ahogyan a konténerképet helyileg futtatta a -p portargumentummal.
Ha az üzembe helyezés sikeres volt, most már van egy AKS-klasztered. Konfigurálja az Azure CLI-t, hogy a kubectl parancs segítségével elérje az AKS-fürtöt. Telepítse kubectl helyileg a következő paranccsal:
az aks install-cli
Konfigurálja a kubectl-et az AKS-fürthöz való csatlakozáshoz a következő parancs használatával:
az aks get-credentials \
--resource-group $AZ_RESOURCE_GROUP \
--name $AZ_KUBERNETES_CLUSTER
A következő kimenet jellemző:
Merged AZ_KUBERNETES_CLUSTER as current context in ~/.kube/config
Az AKS használatával deployment.yml módosításokat alkalmazhat a fürtre az alábbi paranccsal:
kubectl apply -f deployment.yml
A következő kimenet jellemző:
deployment.apps/flightbookingsystemsample created
service/flightbookingsystemsample created
Az üzembe helyezés állapotának figyelése az alábbi paranccsal:
kubectl get all
A következő kimenet jellemző:
kubectl get all
NAME READY STATUS RESTARTS AGE
pod/flightbookingsystemsample-b7fd6684f-4j8vf 1/1 Running 0 37s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/flightbookingsystemsample LoadBalancer 10.0.62.153 <external-IP> 8080:30534/TCP 37s
service/kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 11h
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/flightbookingsystemsample 1/1 1 1 37s
NAME DESIRED CURRENT READY AGE
replicaset.apps/flightbookingsystemsample-b7fd6684f 1 1 1 37s
Ha a POD státusza Running, akkor az alkalmazásnak elérhetőnek kell lennie. Tekintse meg az alkalmazásnaplókat az egyes podokon a következő paranccsal:
kubectl logs pod/flightbookingsystemsample-<pod-identifier-from-your-running-pod>
A következő kimenet jellemző:
kubectl logs pod/flightbookingsystemsample-b7fd6684f-4j8vf
15-Nov-2024 12:31:51.208 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/10.1.33
15-Nov-2024 12:31:51.211 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Nov 7 2024 22:28:55 UTC
15-Nov-2024 12:31:51.212 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 10.1.33.0
15-Nov-2024 12:31:51.212 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux
15-Nov-2024 12:31:51.212 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 5.15.0-1074-azure
15-Nov-2024 12:31:51.212 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
15-Nov-2024 12:31:51.216 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /usr/lib/jvm/msopenjdk-17
15-Nov-2024 12:31:51.216 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 17.0.13+11-LTS
15-Nov-2024 12:31:51.216 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Microsoft
15-Nov-2024 12:31:51.216 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /usr/local/tomcat
15-Nov-2024 12:31:51.216 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /usr/local/tomcat
15-Nov-2024 12:31:51.226 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
15-Nov-2024 12:31:51.226 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
15-Nov-2024 12:31:51.227 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
15-Nov-2024 12:31:51.227 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
15-Nov-2024 12:31:51.227 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
15-Nov-2024 12:31:51.227 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
15-Nov-2024 12:31:51.228 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
15-Nov-2024 12:31:51.228 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util=ALL-UNNAMED
15-Nov-2024 12:31:51.228 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
15-Nov-2024 12:31:51.229 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
15-Nov-2024 12:31:51.229 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat
15-Nov-2024 12:31:51.229 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat
15-Nov-2024 12:31:51.229 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
15-Nov-2024 12:31:51.231 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The Apache Tomcat Native library which allows using OpenSSL was not found on the java.library.path: [/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib]
15-Nov-2024 12:31:51.565 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
15-Nov-2024 12:31:51.602 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [616] milliseconds
15-Nov-2024 12:31:51.658 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
15-Nov-2024 12:31:51.659 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/10.1.33]
15-Nov-2024 12:31:51.689 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/usr/local/tomcat/webapps/AirlinesReservationSample.war]
15-Nov-2024 12:31:53.264 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
15-Nov-2024 12:31:55.155 INFO [main] com.sun.xml.ws.server.MonitorBase.createRoot Metro monitoring rootname successfully set to: com.sun.metro:pp=/,type=WSEndpoint,name=/AirlinesReservationSample-PriceAndSeats-PriceAndSeatsPort
15-Nov-2024 12:31:55.347 INFO [main] com.sun.xml.ws.transport.http.servlet.WSServletDelegate.<init> WSSERVLET14: XML-WS servlet initializing
WARNING:Error in the metadata of the table SEATS: table's row count in the metadata is 5 but 6 records have been found and loaded by UCanAccess. All will work fine, but it's better to repair your database.
15-Nov-2024 12:31:56.248 INFO [main] com.sun.xml.ws.transport.http.servlet.WSServletContextListener.contextInitialized WSSERVLET12: XML-WS context listener initializing
15-Nov-2024 12:31:56.249 INFO [main] com.sun.xml.ws.transport.http.servlet.WSServletContextListener.contextInitialized WSSERVLET12: XML-WS context listener initializing
15-Nov-2024 12:31:56.284 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/usr/local/tomcat/webapps/AirlinesReservationSample.war] has finished in [4,595] ms
15-Nov-2024 12:31:56.285 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/docs]
15-Nov-2024 12:31:56.315 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/docs] has finished in [30] ms
15-Nov-2024 12:31:56.316 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/examples]
15-Nov-2024 12:31:56.439 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/examples] has finished in [123] ms
15-Nov-2024 12:31:56.440 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/manager]
15-Nov-2024 12:31:56.456 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/manager] has finished in [16] ms
15-Nov-2024 12:31:56.457 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/ROOT]
15-Nov-2024 12:31:56.468 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/ROOT] has finished in [11] ms
15-Nov-2024 12:31:56.468 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/host-manager]
15-Nov-2024 12:31:56.481 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/host-manager] has finished in [13] ms
15-Nov-2024 12:31:56.484 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
15-Nov-2024 12:31:56.501 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [4897] milliseconds
Használja a EXTERNAL-IP kimenetét a kubectl get services flightbookingsystemsample segítségével az AKS-ben a futó alkalmazás eléréséhez. A következő kimenet jellemző:
kubectl get services flightbookingsystemsample
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
flightbookingsystemsample LoadBalancer 10.0.62.153 <external-IP> 8080:30534/TCP 3m28s
Jegyzet
Cserélje le az IP-címet <external-IP> a következő URL-címre a EXTERNAL-IP korábban végrehajtott parancs értékével:
Nyisson meg egy böngészőt, és keresse fel a Flight Booking System Minta kezdőlapot a következő címen http://<external-IP>:8080/AirlinesReservationSample/: . A böngészőnek az alábbi képernyőképhez hasonlóan kell kinéznie:
Igény szerint bármelyik felhasználóval bejelentkezhet a(z)tomcat-users.xml használatával - például someuser@azure.com: password.
Erőforrások tisztítása
A modulban létrehozott erőforrások folyamatos költségekkel járhatnak. Az erőforrások törléséhez törölje az azokat tartalmazó erőforráscsoportot az alábbi paranccsal:
az group delete --name $AZ_RESOURCE_GROUP