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:
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
Adja hozzá az APM által igényelt környezeti változókat:
ENV NEW_RELIC_APP_NAME=appName ENV NEW_RELIC_LICENSE_KEY=newRelicLicenseKey
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:
- Python: A Python-ügynök telepítése
- Node.js: Az Node.js-ügynök telepítése
Dynatrace:
- Python: Instrument Python-alkalmazások OpenTelemetria használatával
- Node.js: Eszköz Node.js alkalmazások OpenTelemetria használatával
AppDynamics:
- Python: A Python-ügynök telepítése
- Node.js: A Node.js-ügynök telepítése
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"
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