Paketera Java-baserade webbprogram i containrar och migrera till Azure Kubernetes Service

Varning

Den här artikeln refererar till CentOS, en Linux-distribution som närmar sig EOL-status (End Of Life). Överväg att använda och planera i enlighet med detta. Mer information finns i CentOS End Of Life-vägledningen.

I den här artikeln får du lära dig hur du containeriserar Java-webbprogram (körs på Apache Tomcat) och migrerar dem till Azure Kubernetes Service (AKS) med hjälp av verktyget Azure Migrate: App Containerization. Containerinkapsningsprocessen kräver inte åtkomst till din kodbas och ger ett enkelt sätt att containerisera befintliga program. Verktyget fungerar genom att använda körningstillståndet för programmen på en server för att fastställa programkomponenterna och hjälper dig att paketera dem i en containeravbildning. Det containerbaserade programmet kan sedan distribueras i Azure Kubernetes Service (AKS).

Verktyget Azure Migrate: AppContainerisering stöder för närvarande –

  • Containerisera Java Web Apps på Apache Tomcat (på Linux-servrar) och distribuera dem i Linux-containrar på AKS.
  • Containerisera Java Web Apps på Apache Tomcat (på Linux-servrar) och distribuera dem i Linux-containrar i App Service. Läs mer
  • Containerisera ASP.NET appar och distribuera dem i Windows-containrar på AKS. Läs mer
  • Containerisera ASP.NET appar och distribuera dem i Windows-containrar i App Service. Läs mer

Verktyget Azure Migrate: App Containerization hjälper dig att –

  • Identifiera ditt program: Verktyget ansluter via fjärranslutning till de programservrar som kör java-webbappen (körs på Apache Tomcat) och identifierar programkomponenterna. Verktyget skapar en Dockerfile som kan användas för att skapa en containeravbildning för programmet.
  • Skapa containeravbildningen: Du kan inspektera och ytterligare anpassa Dockerfile enligt dina programkrav och använda den för att skapa din programcontaineravbildning. Programcontaineravbildningen skickas till ett Azure Container Registry som du anger.
  • Distribuera till Azure Kubernetes Service: Verktyget genererar sedan de Kubernetes-resursdefinitions-YAML-filer som behövs för att distribuera det containerbaserade programmet till ditt Azure Kubernetes Service-kluster. Du kan anpassa YAML-filerna och använda dem för att distribuera programmet på AKS.

Kommentar

Verktyget Azure Migrate: App Containerization hjälper dig att identifiera specifika programtyper (ASP.NET och Java-webbappar på Apache Tomcat) och deras komponenter på en programserver. Om du vill identifiera servrar och inventeringen av appar, roller och funktioner som körs på lokala datorer använder du Azure Migrate: Identifierings- och utvärderingsfunktioner. Läs mer

Även om alla program inte drar nytta av en rak övergång till containrar utan betydande omarbetning, inkluderar några av fördelarna med att flytta befintliga appar till containrar utan att skriva om:

  • Förbättrad infrastrukturanvändning: Med containrar kan flera program dela resurser och finnas i samma infrastruktur. Detta kan hjälpa dig att konsolidera infrastrukturen och förbättra användningen.
  • Förenklad hantering: Genom att vara värd för dina program på en modern hanterad plattform som AKS och App Service kan du förenkla dina hanteringsmetoder. Du kan uppnå detta genom att dra tillbaka eller minska de infrastrukturunderhålls- och hanteringsprocesser som du traditionellt utför med ägd infrastruktur.
  • Programportabilitet: Med ökad implementering och standardisering av containerspecifikationsformat och plattformar är programportabilitet inte längre ett problem.
  • Anta modern hantering med DevOps: Hjälper dig att införa och standardisera moderna metoder för hantering och säkerhet och övergång till DevOps.

I den här självstudien får du lära dig att:

  • Konfigurera ett Azure-konto.
  • Installera verktyget Azure Migrate: App Containerization.
  • Upptäck din Java-webbapp.
  • Skapa containeravbildningen.
  • Distribuera det containerbaserade programmet på AKS.

Kommentar

Självstudier visar den enklaste distributionsvägen för ett scenario så att du snabbt kan konfigurera ett konceptbevis. Självstudierna använder standardalternativ där så är möjligt och visar inte alla möjliga inställningar och sökvägar.

Förutsättningar

Innan du börjar de här självstudierna bör du:

Krav Detaljer
Identifiera en dator som ska installera verktyget En Windows-dator för att kunna installera och köra verktyget Azure Migrate: Containerinkapsling för program. Windows-datorn kan vara en server (Windows Server 2016 eller senare) eller en klientdator (operativsystemet Windows 10), vilket innebär att du även kan köra verktyget på din stationära dator.

När verktyget körs på en Windows-dator måste den ha en nätverksanslutning till servern/den virtuella datorn som ska vara värd för Java webbapparna som ska inkapslas i en container.

Se till att det finns 6 GB ledigt utrymme på Windows-datorn som kör verktyget Azure Migrate: Containerinkapsling för program för att lagra programartefakter.

Windows-datorn måste ha åtkomst till Internet, antingen direkt eller via en proxy.
Programservrar – Aktivera säker SSH-anslutning (Secure Shell) på port 22 på de servrar som kör Java applikationerna som ska inkaplas i en container.
Java-webapp Verktyget stöder för närvarande

– Program som körs på Tomcat 8 eller Tomcat 9.
– Programservrar på Ubuntu Linux 16.04/18.04/20.04, Debian 7/8, CentOS 6/7, Red Hat Enterprise Linux 5/6/7.
– Program som använder Java 7 eller Java 8.
Om du har en version utanför detta letar du upp en avbildning som stöder dina nödvändiga versioner och ändrar dockerfile för att ersätta avbildningen

Verktyget stöder för närvarande inte

– Programservrar som kör flera Tomcat-instanser

Förbereda ett Azure-användarkonto

Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.

När prenumerationen har konfigurerats behöver du ett Azure-användarkonto med:

  • Ägarbehörigheter för Azure-prenumerationen
  • Behörigheter för att registrera Microsoft Entra-appar

Om du nyligen skapade ett kostnadsfritt Azure-konto är du ägare av prenumerationen. Om du inte är prenumerationsägare arbetar du med ägaren för att tilldela behörigheterna på följande sätt:

  1. I Azure-portalen söker du efter "prenumerationer" och under Tjänster väljer du Prenumerationer.

    Sökrutan för att söka efter Azure-prenumerationen.

  2. På sidan Prenumerationer väljer du den prenumeration där du vill skapa ett Azure Migrate-projekt.

  3. Välj Åtkomstkontroll (IAM) .

  4. Välj Lägg till>rolltilldelning för att öppna sidan Lägg till rolltilldelning.

  5. Tilldela följande roll. Läs mer om att tilldela roller i Tilldela Azure-roller via Azure Portal.

    Inställning Värde
    Roll Ägare
    Tilldela åtkomst till User
    Medlemmar azmigrateuser (i det här exemplet)

    Lägg till rolltilldelningssida i Azure-portalen.

  6. Ditt Azure-konto behöver också behörigheter för att registrera Microsoft Entra-appar.

  7. I Azure-portalen går du till Användare av Microsoft Entra-ID>>användare Inställningar.

  8. I Användarinställningar kontrollerar du att Microsoft Entra-användare kan registrera program (inställt på Ja som standard).

    Kontrollera i Användar Inställningar att användare kan registrera Active Directory-appar.

  9. Om inställningarna "Appregistreringar" är inställda på "Nej" ber du klientorganisationen/den globala administratören att tilldela den behörighet som krävs. Alternativt kan klientorganisationen/den globala administratören tilldela rollen Programutvecklare till ett konto för att tillåta registrering av Microsoft Entra-appen. Läs mer.

Ladda ned och installera Azure Migrate: Verktyg för appcontainerisering

  1. Ladda ned installationsprogrammet för Azure Migrate: Containerinkapsling för program på en Windows-dator.

  2. Starta PowerShell i administratörsläge och ändra PowerShell-katalogen till mappen som innehåller installationsprogrammet.

  3. Kör installationsskriptet med kommandot

    .\AppContainerizationInstaller.ps1
    

Kommentar

För Windows Server 2022 redigerar du rad 135 och tar bort PowerShell-ISE från funktionslistan eftersom den inte längre stöds.

Starta verktyget AppContainerisering

  1. Öppna en webbläsare på alla datorer som kan ansluta till Windows-datorn som kör verktyget AppContainerisering och öppna verktygets URL: https:// maskinnamn eller IP-adress: 44369.

    Alternativt kan du öppna appen från skrivbordet genom att välja appens genväg.

  2. Om du ser en varning om att anslutningen inte är privat klickar du på Avancerat och väljer att gå vidare till webbplatsen. Den här varningen visas eftersom webbgränssnittet använder ett självsignerat TLS/SSL-certifikat.

  3. På inloggningsskärmen använder du det lokala administratörskontot på datorn för att logga in.

  4. Välj Java-webbappar på Tomcat som den typ av program som du vill behålla.

  5. Om du vill ange azure-måltjänsten väljer du Containrar i Azure Kubernetes Service. Standardinläsning för appcontaineriseringsverktyget.

Kompletta verktygskrav

  1. Godkänn licensvillkoren och läs informationen från tredje part.
  2. Gör följande i verktygswebbappen >Konfigurera förutsättningar:
    • Anslut ivity: Verktyget kontrollerar att Windows-datorn har internetåtkomst. Om datorn använder en proxy:
      • Klicka på Konfigurera proxy för att ange proxyadressen (i formuläret IP-adress eller FQDN) och lyssnande port.
      • Ange autentiseringsuppgifter om proxyn kräver autentisering.
      • Endast HTTP-proxy stöds.
      • Om du har lagt till proxyinformation eller inaktiverat proxyn och/eller autentiseringen klickar du på Spara för att utlösa anslutningskontrollen igen.
    • Installera uppdateringar: Verktyget söker automatiskt efter de senaste uppdateringarna och installerar dem. Du kan också installera den senaste versionen av verktyget manuellt härifrån.
    • Aktivera Secure Shell (SSH): Verktyget informerar dig om att Secure Shell (SSH) är aktiverat på de programservrar som kör Java-webbprogrammen som ska containeriseras.

Logga in på Azure

Klicka på Logga in för att logga in på ditt Azure-konto.

  1. Du behöver en enhetskod för att autentisera med Azure. Om du klickar på logga in öppnas en modal med enhetskoden.

  2. Klicka på Kopiera kod och logga in för att kopiera enhetskoden och öppna en Azure-inloggningsprompt på en ny webbläsarflik. Om den inte visas kontrollerar du att du har inaktiverat popup-blockeraren i webbläsaren.

    Modal som visar enhetskod.

  3. På den nya fliken klistrar du in enhetskoden och slutför inloggningen med dina autentiseringsuppgifter för Azure-kontot. Du kan stänga webbläsarfliken när inloggningen är klar och återgå till webbgränssnittet för verktyget AppContainerisering.

  4. Välj den Azure-klientorganisation som du vill använda.

  5. Ange den Azure-prenumeration som du vill använda.

Identifiera Java-webbprogram

Hjälpverktyget för appcontainerisering ansluter via fjärranslutning till programservrarna med de angivna autentiseringsuppgifterna och försöker identifiera Java-webbprogram (körs på Apache Tomcat) som finns på programservrarna.

  1. Ange IP-adressen/FQDN och autentiseringsuppgifterna för servern som kör Java-webbprogrammet som ska användas för fjärranslutning till servern för programidentifiering.

    • De angivna autentiseringsuppgifterna måste vara för ett rotkonto (Linux) på programservern.
    • För domänkonton (användaren måste vara administratör på programservern) prefixet användarnamnet med domännamnet i formatet <domän\användarnamn>.
    • Du kan köra programidentifiering för upp till fem servrar i taget.
  2. Klicka på Verifiera för att kontrollera att programservern kan nås från den dator som kör verktyget och att autentiseringsuppgifterna är giltiga. När valideringen har slutförts visar statuskolumnen statusen Mappad.

    Skärmbild för serverns IP-adress och autentiseringsuppgifter.

  3. Klicka på Fortsätt för att starta programidentifieringen på de valda programservrarna.

  4. När programidentifieringen har slutförts kan du välja listan över program som ska containeriseras.

    Skärmbild för identifierad Java-webbapp.

  5. Använd kryssrutan för att välja de program som ska containeriseras.

  6. Ange containernamn: Ange ett namn för målcontainern för varje valt program. Containernamnet ska anges som <name:tag> där taggen används för containeravbildningen. Du kan till exempel ange målcontainerns namn som appname:v1.

Parametrisera programkonfigurationer

Om konfigurationen parameteriseras blir den tillgänglig som en tidsparameter för distributionen. På så sätt kan du konfigurera den här inställningen när du distribuerar programmet i stället för att hårdkoda det till ett specifikt värde i containeravbildningen. Det här alternativet är till exempel användbart för parametrar som databas anslutningssträng.

  1. Klicka på appkonfigurationer för att granska identifierade konfigurationer.

  2. Markera kryssrutan för att parameterisera de identifierade programkonfigurationerna.

  3. Klicka på Använd när du har valt de konfigurationer som ska parameteriseras.

    Skärmbild för parameterisering av appkonfiguration ASP.NET program.

Externalisera filsystemberoenden

Du kan lägga till andra mappar som programmet använder. Ange om de ska ingå i containeravbildningen eller ska externaliseras via beständiga volymer på Azure-filresursen. Att använda beständiga volymer fungerar bra för tillståndskänsliga program som lagrar tillstånd utanför containern eller har annat statiskt innehåll lagrat i filsystemet. Läs mer

  1. Klicka på Redigera under Appmappar för att granska de identifierade programmapparna. De identifierade programmapparna har identifierats som obligatoriska artefakter som krävs av programmet och kopieras till containeravbildningen.

  2. Klicka på Lägg till mappar och ange de mappsökvägar som ska läggas till.

  3. Om du vill lägga till flera mappar till samma volym anger du kommaavgränsade värden (,).

  4. Välj Beständiga volymer som lagringsalternativ om du vill att mapparna ska lagras utanför containern på en beständig volym.

  5. Klicka på Spara när du har granskat programmapparna. Skärmbild för val av lagring av appvolymer.

  6. Klicka på Fortsätt för att fortsätta till containeravbildningsfasen.

Skapa containeravbildning

  1. Välj Azure Container Registry: Använd listrutan för att välja ett Azure Container Registry som ska användas för att skapa och lagra containeravbildningarna för apparna. Du kan använda ett befintligt Azure Container Registry eller välja att skapa ett nytt med alternativet Skapa nytt register.

    Skärmbild för app-ACR-val.

  2. Granska Dockerfile: Dockerfile som behövs för att skapa containeravbildningarna för varje valt program genereras i början av byggsteget. Klicka på Granska för att granska Dockerfile. Du kan också lägga till nödvändiga anpassningar i Dockerfile i granskningssteget och spara ändringarna innan du påbörjar byggprocessen.

  3. Konfigurera Application Insights: Du kan aktivera övervakning för java-appar som körs i App Service utan att instrumentera koden. Verktyget installerar den fristående Java-agenten som en del av containeravbildningen. När Java-agenten har konfigurerats under distributionen samlar den automatiskt in en mängd begäranden, beroenden, loggar och mått för ditt program som kan användas för övervakning med Application Insights. Det här alternativet är aktiverat som standard för alla Java-program.

  4. Utlösargenereringsprocess: Välj de program som du vill skapa avbildningar för och klicka på Skapa. Om du klickar på build startas containeravbildningsversionen för varje program. Verktyget fortsätter att övervaka byggstatusen kontinuerligt och låter dig gå vidare till nästa steg när bygget har slutförts.

  5. Spåra byggstatus: Du kan också övervaka förloppet för byggsteget genom att klicka på länken Skapa i pågår under statuskolumnen. Länken tar några minuter att vara aktiv när du har utlöst byggprocessen.

  6. När bygget är klart klickar du på Fortsätt för att ange distributionsinställningar.

    Skärmbild för slutförande av appcontaineravbildning.

Distribuera den containerbaserade appen i AKS

När containeravbildningen har skapats är nästa steg att distribuera programmet som en container i Azure Kubernetes Service (AKS).

  1. Välj Azure Kubernetes Service Cluster: Ange det AKS-kluster som programmet ska distribueras till.

    • Det valda AKS-klustret måste ha en Linux-nodpool.
    • Klustret måste konfigureras för att tillåta dragning av avbildningar från Azure Container Registry som har valts för att lagra avbildningarna.
      • Kör följande kommando i Azure CLI för att koppla AKS-klustret till ACR.
        az aks update -n <cluster-name> -g <cluster-resource-group> --attach-acr <acr-name>
        
    • Om du inte har ett AKS-kluster eller vill skapa ett nytt AKS-kluster att distribuera programmet till kan du välja att skapa på från verktyget genom att klicka på Skapa nytt AKS-kluster.
      • AKS-klustret som skapas med verktyget skapas med en Linux-nodpool. Klustret konfigureras så att det kan hämta avbildningar från Azure Container Registry som skapades tidigare (om du valde alternativet skapa nytt register).
    • Klicka på Fortsätt när du har valt AKS-klustret.
  2. Ange hemlig lagring och övervakningsarbetsyta: Om du hade valt att parametrisera programkonfigurationer anger du det hemliga arkiv som ska användas för programmet. Du kan välja Azure Key Vault eller Kubernetes-hemligheter för att hantera dina programhemligheter.

    • Om du har valt Kubernetes-hemligheter för att hantera hemligheter klickar du på Fortsätt.
    • Om du vill använda ett Azure Key Vault för att hantera dina programhemligheter anger du det Azure Key Vault som du vill använda.
      • Om du inte har ett Azure Key Vault eller vill skapa ett nytt Nyckelvalv kan du välja att skapa från verktyget genom att klicka på Skapa ny.
      • Verktyget tilldelar automatiskt de behörigheter som krävs för att hantera hemligheter via Key Vault.
    • Övervakningsarbetsyta: Om du har valt att aktivera övervakning med Application Insights anger du den Application Insights-resurs som du vill använda. Det här alternativet visas inte om du har inaktiverat övervakningsintegrering.
      • Om du inte har någon Application Insights-resurs eller vill skapa en ny resurs kan du välja att skapa från verktyget genom att klicka på Skapa ny.
  3. Ange Azure-filresurs: Om du hade lagt till fler mappar och valt alternativet Beständiga volymer anger du den Azure-filresurs som ska användas av verktyget Azure Migrate: AppContainerisering under distributionsprocessen. Verktyget skapar nya kataloger i den här Azure-filresursen som ska kopieras över de programmappar som har konfigurerats för beständiga volymlagringar. När programdistributionen är klar rensar verktyget Azure-filresursen genom att ta bort de kataloger som skapats.

    • Om du inte har någon Azure-filresurs eller vill skapa en ny Azure-filresurs kan du välja att skapa på från verktyget genom att klicka på Skapa nytt lagringskonto och filresurs.
  4. Konfiguration av programdistribution: När du har slutfört stegen ovan måste du ange distributionskonfigurationen för programmet. Klicka på Konfigurera för att anpassa distributionen för programmet. I konfigurationssteget kan du ange följande anpassningar:

    • Prefixsträng: Ange en prefixsträng som ska användas i namnet för alla resurser som skapas för det containerbaserade programmet i AKS-klustret.
    • Replikuppsättningar: Ange antalet programinstanser (poddar) som ska köras i containrarna.
    • Typ av lastbalanserare: Välj Extern om det containerbaserade programmet ska kunna nås från offentliga nätverk.
    • Programkonfiguration: För alla programkonfigurationer som parametriserades anger du de värden som ska användas för den aktuella distributionen.
    • Lagring: För alla programmappar som har konfigurerats för lagring av beständiga volymer anger du om volymen ska delas mellan programinstanser eller bör initieras individuellt med varje instans i containern. Som standard konfigureras alla programmappar på beständiga volymer som delade.
    • Klicka på Använd för att spara distributionskonfigurationen.
    • Klicka på Fortsätt för att distribuera programmet.

    Skärmbild för konfiguration av distributionsapp.

  5. Distribuera programmet: När distributionskonfigurationen för programmet har sparats genererar verktyget Kubernetes-distributionens YAML för programmet.

    • Klicka på Granska för att granska och anpassa Kubernetes-distributionens YAML för programmen.

    • Välj det program som ska distribueras.

    • Klicka på Distribuera för att starta distributioner för de valda programmen

      Skärmbild för konfiguration av appdistribution.

    • När programmet har distribuerats kan du klicka på kolumnen Distributionsstatus för att spåra de resurser som har distribuerats för programmet.

Ladda ned genererade artefakter

Alla artefakter som används för att skapa och distribuera programmet till AKS, inklusive Dockerfile- och Kubernetes YAML-specifikationsfilerna, lagras på den dator som kör verktyget. Artefakterna finns i C:\ProgramData\Microsoft Azure Migrate App Containerization.

En enda mapp skapas för varje programserver. Du kan visa och ladda ned alla mellanliggande artefakter som används i containerprocessen genom att navigera till den här mappen. Mappen, som motsvarar programservern, rensas i början av varje körning av verktyget för en viss server.

Felsöka problem

Om du vill felsöka eventuella problem med verktyget kan du titta på loggfilerna på Windows-datorn som kör verktyget AppContainerisering. Verktygsloggfiler finns i mappen C:\ProgramData\Microsoft Azure Migrate App Containerization\Logs .

Nästa steg

  • Containerisera Java-webbappar på Apache Tomcat (på Linux-servrar) och distribuera dem i Linux-containrar i App Service. Läs mer
  • Containerisera ASP.NET webbappar och distribuera dem i Windows-containrar på AKS. Läs mer
  • Containerisera ASP.NET webbappar och distribuera dem i Windows-containrar i Azure App Service. Läs mer
  • Vad är lösningar för att köra Oracle WebLogic Server på Azure Kubernetes Service? Läs mer
  • Öppna Liberty och WebSphere Liberty på AKS. Läs mer