Share via


Alkalmazás üzembe helyezése egyéni tárolórendszerképpel

Figyelemfelhívás

Ez a cikk a CentOS-ra, egy olyan Linux-disztribúcióra hivatkozik, amely közel áll az élettartam (EOL) állapotához. Fontolja meg a használatát, és ennek megfelelően tervezze meg. További információ: CentOS End Of Life útmutató.

Feljegyzés

Az Azure Spring Apps az Azure Spring Cloud szolgáltatás új neve. Bár a szolgáltatásnak új neve van, bizonyos helyeken a régi nevet fogja látni egy darabig, miközben az eszközök, például képernyőképek, videók és diagramok frissítésével dolgozunk.

Ez a cikk a következőre vonatkozik: ✔️ Standard ✔️ Enterprise

Ez a cikk bemutatja, hogyan helyezhet üzembe Spring Boot-alkalmazásokat az Azure Spring Appsben egyéni tárolórendszerkép használatával. Egy alkalmazás egyéni tárolóval való üzembe helyezése a legtöbb funkciót támogatja, mint egy JAR-alkalmazás üzembe helyezésekor. Más Java- és nem Java-alkalmazások is üzembe helyezhetők a tárolólemezkép használatával.

Előfeltételek

  • Az alkalmazást tartalmazó tárolórendszerkép.
  • A rendszer a rendszerkép-beállításjegyzékbe küldi a rendszerképet. További információ: Azure Container Registry.

Feljegyzés

A webalkalmazásnak figyelnie kell a Standard csomag portján 1025 és a Nagyvállalati csomag portján 8080 . A port módosításának módja az alkalmazás keretrendszerétől függ. Adja meg SERVER_PORT=1025 például a Spring Boot-alkalmazásokhoz vagy ASPNETCORE_URLS=http://+:1025/ ASP.NET Core-alkalmazásokhoz. Letilthatja a mintavételt olyan alkalmazások esetében, amelyek egyik porton sem figyelnek. További információ: Állapottesztek és türelmes befejezési időszakok konfigurálása az Azure Spring Appsben üzemeltetett alkalmazásokhoz.

Az alkalmazás üzembe helyezése

Egy alkalmazás egyéni tárolólemezképen való üzembe helyezéséhez kövesse az alábbi lépéseket:

Tárolólemezkép üzembe helyezéséhez használja az alábbi parancsok egyikét:

  • Tárolólemezkép nyilvános Docker Hubon való üzembe helyezéséhez használja az alábbi parancsot:

    az spring app deploy \
       --resource-group <your-resource-group> \
       --name <your-app-name> \
       --container-image <your-container-image> \
       --service <your-service-name>
    
  • Tárolólemezkép az ACR-ből egy alkalmazásba vagy egy másik privát beállításjegyzékből egy alkalmazásba való üzembe helyezéséhez használja a következő parancsot:

    az spring app deploy \
       --resource-group <your-resource-group> \
       --name <your-app-name> \
       --container-image <your-container-image> \
       --service <your-service-name>
       --container-registry <your-container-registry> \
       --registry-password <your-password> |
       --registry-username <your-username>
    

A kép belépési pontjának felülírásához adja hozzá a következő két argumentumot a fenti parancsok bármelyikéhez:

    --container-command "java" \
    --container-args "-jar /app.jar -Dkey=value"

Ha le szeretné tiltani a nem webalkalmazások által használt képek porton való figyelését, adja hozzá a következő argumentumot a fenti parancsokhoz:

    --disable-probe true

Szolgáltatástámogatási mátrix

Az alábbi mátrix az egyes alkalmazástípusokban támogatott funkciókat mutatja be.

Szolgáltatás Spring Boot Apps – tároló üzembe helyezése Polyglot Apps – tároló üzembe helyezése Jegyzetek
Alkalmazás életciklusának kezelése ✔️ ✔️
Tárolóregisztrációs adatbázisok támogatása ✔️ ✔️
Végpont hozzárendelése ✔️ ✔️
Azure Monitor ✔️ ✔️
APM-integráció ✔️ ✔️ A manuális telepítés támogatja.
Kék/zöld üzembe helyezés ✔️ ✔️
Egyéni tartomány ✔️ ✔️
Skálázás – automatikus skálázás ✔️ ✔️
Skálázás – manuális skálázás (be/ki, fel/le) ✔️ ✔️
Felügyelt identitás ✔️ ✔️
Spring Cloud Eureka > Konfigurációs kiszolgáló ✔️
API-portál a VMware Tanzu-hoz ✔️ ✔️ Csak vállalati csomag.
Spring Cloud Gateway a VMware Tanzu-hoz ✔️ ✔️ Csak vállalati csomag.
Alkalmazáskonfigurációs szolgáltatás a VMware Tanzu-hoz ✔️ Csak vállalati csomag.
Alkalmazás live view for VMware Tanzu ✔️ Csak vállalati csomag.
VMware Tanzu szolgáltatásregisztrációs adatbázis ✔️ Csak vállalati csomag.
Virtuális hálózat ✔️ ✔️ Adja hozzá a beállításjegyzéket az engedélyezési listához az NSG-ben vagy az Azure Firewallban.
Kimenő IP-cím ✔️ ✔️
E2E TLS ✔️ ✔️ Megbízhat egy önaláírt hitelesítésszolgáltatóban.
Az élet és a készültség beállításai ✔️ ✔️
Speciális hibaelhárítás – szál/halom/JFR-memóriakép ✔️ A rendszerképnek tartalmaznia kell a Basht és a megadott JDK-t PATH .
Saját tároló használata ✔️ ✔️
Szolgáltatáskötés integrálása a Resource Csatlakozás orral ✔️
Availability Zone (Rendelkezésreállási zóna) ✔️ ✔️
Alkalmazás életciklus-eseményei ✔️ ✔️
Csökkentett alkalmazásméret – 0,5 vCPU és 512 MB ✔️ ✔️
Alkalmazástelepítések automatizálása a Terraform használatával ✔️ ✔️
Helyreállítható törlés ✔️ ✔️
Interaktív diagnosztikai élmény (AppLens-alapú) ✔️ ✔️
SLA ✔️ ✔️

Feljegyzés

A többplatformos alkalmazások közé tartoznak a nem Spring Boot Java-, NodeJS-, AngularJS-, Python- és .NET-alkalmazások.

Az egyéni tárolóval való üzembe helyezéskor figyelembe kell venni a gyakori szempontokat

Az alábbi pontok segítséget nyújtanak az egyéni rendszerképek üzembe helyezésekor előforduló gyakori helyzetek megoldásában.

Hitelesítésszolgáltató megbízhatósága

A hitelesítésszolgáltatónak két lehetősége van megbízhatónak:

1. lehetőség: Feltöltés az Azure Spring Appsen keresztül

A hitelesítésszolgáltatói tanúsítványokat az alkalmazásokba való betöltéséhez lásd : TLS/SSL-tanúsítványok használata az alkalmazásban az Azure Spring Appsben. Ezután a tanúsítványokat a rendszer a /etc/azure-spring-cloud/certs/public/ helyre csatlakoztatja.

2. lehetőség: Manuális telepítés a képen

Ha megbízhatónak szeretne minősíteni egy hitelesítésszolgáltatót a képen, állítsa be a következő változókat a környezetétől függően:

  • A Következő sorokat a Dockerfile-ba adva importálnia kell a Java-alkalmazásokat a megbízhatósági tárolóba:

    ADD EnterpriseRootCA.crt /opt/
    RUN keytool -keystore /etc/ssl/certs/java/cacerts -storepass changeit -noprompt -trustcacerts -importcert -alias EnterpriseRootCA -file /opt/EnterpriseRootCA.crt
    
  • Node.js alkalmazások esetében állítsa be a környezeti változót NODE_EXTRA_CA_CERTS :

    ADD EnterpriseRootCA.crt /opt/
    ENV NODE_EXTRA_CA_CERTS="/opt/EnterpriseRootCA.crt"
    
  • A Python vagy a rendszer CA-tárolójára támaszkodó egyéb nyelvek esetében Debian- vagy Ubuntu-rendszerképeken adja hozzá a következő környezeti változókat:

    ADD EnterpriseRootCA.crt /usr/local/share/ca-certificates/
    RUN /usr/sbin/update-ca-certificates
    
  • A Python vagy a rendszer CA-tárolójára támaszkodó egyéb nyelvek esetén CentOS- vagy Fedora-alapú rendszerképeken adja hozzá a következő környezeti változókat:

    ADD EnterpriseRootCA.crt /etc/pki/ca-trust/source/anchors/
    RUN /usr/bin/update-ca-trust
    

A váratlan viselkedés elkerülése a képek módosításakor

Amikor az alkalmazás újraindul vagy felskálázódik, a rendszer mindig lekérte a legújabb lemezképet. Ha a rendszerkép módosult, az újonnan elindított alkalmazáspéldányok az új lemezképet fogják használni, míg a régi példányok továbbra is a régi lemezképet használják.

Feljegyzés

A váratlan alkalmazásviselkedés elkerülése érdekében kerülje a latest címke használatát, vagy írja felül a képet címkemódosítás nélkül.

Ne tudjon csatlakozni a tárolóregisztrációs adatbázishoz egy virtuális hálózaton

Ha a példányt egy virtuális hálózaton telepítette, győződjön meg arról, hogy engedélyezi a hálózati forgalmat a tárolóregisztrációs adatbázisba az NSG-ben vagy az Azure Firewallban (ha van ilyen). További információ: A virtuális hálózaton való futtatás ügyfélfeladatai a szükséges biztonsági szabályok hozzáadásához.

APM telepítése manuálisan a lemezképbe

A telepítési lépések különböző alkalmazásteljesítmény-monitorokon (APM-eken) és nyelveken változnak. Az alábbi lépések a Java-alkalmazásokkal rendelkező New Relicre vonatkozik. A Dockerfile-t a következő lépésekkel kell módosítania:

  1. Töltse le és telepítse az ügynökfájlt a lemezképbe az alábbiak hozzáadásával a Dockerfile-hoz:

    ADD newrelic-agent.jar /opt/agents/newrelic/java/newrelic-agent.jar
    
  2. Adja hozzá az APM által igényelt környezeti változókat:

    ENV NEW_RELIC_APP_NAME=appName
    ENV NEW_RELIC_LICENSE_KEY=newRelicLicenseKey
    
  3. A kép belépési pontjának módosításához vegye fel a következőt: java -javaagent:/opt/agents/newrelic/java/newrelic-agent.jar

Az ügynökök más nyelvekre való telepítéséhez tekintse meg a többi ügynök hivatalos dokumentációját:

Új ereklye:

Dynatrace:

AppDynamics:

Megtekintheti a tároló naplóit

A tárolóalkalmazás konzolnaplóinak megtekintéséhez a következő CLI-parancs használható:

az spring app logs \
    --resource-group <your-resource-group> \
    --name <your-app-name> \
    --service <your-service-name> \
    --instance <your-instance-name>

A tárolóesemények naplóinak az Azure Monitorból való megtekintéséhez adja meg a lekérdezést:

AppPlatformContainerEventLogs
| where App == "hw-20220317-1b"

Képernyőkép a tárolóesemények naplóját megjelenítő Azure Monitorról.

Biztonsági rések keresése a rendszerképen

Javasoljuk, hogy a Felhőhöz készült Microsoft Defender használja az ACR-sel, hogy megakadályozza a képek sebezhetőségét. További információ: Felhőhöz készült Microsoft Defender

Váltás a JAR üzembe helyezése és a tároló üzembe helyezése között

Az üzembehelyezési típust a JAR-telepítésről közvetlenül a tároló üzembe helyezésére válthatja az alábbi paranccsal történő ismételt üzembe helyezéssel:

az spring app deploy \
    --resource-group <your-resource-group> \
    --name <your-app-name> \
    --container-image <your-container-image> \
    --service <your-service-name>

Vagy fordítva:

az spring app deploy \
    --resource-group <your-resource-group> \
    --name <your-app-name> \
    --artifact-path <your-jar-file> \
    --service <your-service-name>

Új üzembe helyezés létrehozása meglévő JAR-telepítéssel

A következő paranccsal létrehozhat egy másik üzembe helyezést egy meglévő JAR-telepítéssel:

az spring app deployment create \
    --resource-group <your-resource-group> \
    --name <your-deployment-name> \
    --app <your-app-name> \
    --container-image <your-container-image> \
    --service <your-service-name>

CI/CD

Most már támogatott az üzembe helyezés automatizálása az Azure Pipelines Tasks vagy a GitHub Actions használatával. További információ: Alkalmazástelepítések automatizálása az Azure Spring Appsben és az Azure Spring Apps CI/CD használata a GitHub Actions használatával

Következő lépések