Använda containrar med SQL Server på Linux

Slutförd

Containrar hjälper organisationer att skapa flexibla och skalbara installationer av SQL Server.

Wide World Importers stöder vissa storskaliga databasarbetsbelastningar som kräver en flexibel och skalbar värdarkitektur. Du vill utvärdera möjligheten att vara värd för SQL Server i virtuella miljöer som virtuella datorer och containrar.

Här får du lära dig hur du väljer mellan containrar och virtuella datorer för en databas.

Jämföra virtuella datorer och containrar

Virtualisering är en teknik som administratörer använder för att vara värd för flera virtuella servrar på en enda fysisk server. När du använder virtualisering kan du enkelt distribuera extra instanser av till exempel SQL Server utan att köpa och installera extra maskinvara. Det finns två vanliga metoder för virtualisering:

  • Virtuella datorer: När du använder virtuella datorer är varje instans en fullständig virtuell server med sitt eget operativsystem och sin egen maskinvara.
  • Containrar: När du använder containrar delar varje instans ett operativsystem och maskinvaruresurser med värddatorn.

Både virtuella datorer och containrar tillhandahåller en isolerad miljö där program som SQL Server körs som om de fanns på en separat fysisk dator.

Virtuella datorer är större och tar längre tid att skapa, men eftersom de har ett eget operativsystem använder du en annan konfiguration och maskinvara till värddatorn. Du kan också blanda virtuella datorer med olika operativsystem på samma värd. På en Linux-värd kan du till exempel installera en virtuell dator som kör Linux och Apache som värd för en webbplats. Det kan också finnas en annan virtuell dator som kör Windows och SQL Server som värd för en databas.

Containrar är mindre, så de läses in mycket snabbare än virtuella datorer. Men om värden kör Linux Ubuntu, till exempel, måste alla containrar på datorn köra samma version av Ubuntu. På en Linux-värd kan du installera en container som kör Linux och Apache, men databascontainern måste också köra Linux. Detta är möjligt så länge du kör SQL Server 2017 eller senare.

Diagram comparing the layers of software required to run VMs versus Containers.

På värddatorn måste du installera programvara som Hyper-V eller VirtualBox som värd för virtuella datorer. För containrar kan du använda Docker-systemet, CRI-O, rkt och andra containervärdar.

Anledningar till att använda virtuella datorer

Det finns fortfarande situationer där containrar inte är den bästa lösningen. När containrar körs på ett enda operativsystem och delar systemresurser är säkerheten ett problem. Om en angripare får superanvändarbehörighet kan vissa vektorer leda till åtkomst till programmen. I containrar måste program köras på samma operativsystem som värddatorn. Du kan inte köra Linux-baserade program i containrar i Windows. Med virtuella datorer är du värd för en Linux-dator i Windows eller en Windows-dator på macOS, vilket ger större flexibilitet. Med virtuella datorer kan du vara värd för flera program med nära integrering på en enda virtuell dator. Containrar är traditionellt endast värd för enskilda program.

Virtuella datorer är mindre effektiva än containrar. På en viss uppsättning maskinvara kan du köra minst dubbelt så många program i containrar som med virtuella datorer. En virtuell dator använder mer resurser eftersom den behöver en fullständig kopia av operativsystemet och virtualiserade versioner av all maskinvara för att stödja gästoperativsystemet.

Anledningar till att använda containrar

Containrar är enklare i jämförelse och gör att du kan paketera appar till ett mindre fotavtryck. Eftersom ett enda operativsystem är värd för containrarna är det mindre administration. Du behöver bara korrigera och uppdatera ett enskilt operativsystem i stället för varje gästoperativsystem på varje virtuell dator. Containrarna är mindre och enklare, så de kan startas på några sekunder i stället för de minuter det tar att starta en virtuell dator.

Orkestrering

Du kan använda Docker Swarm, Kubernetes och andra lösningar för att orkestrera containrar. Orchestrators övervakar och gör det möjligt att skala appar med hjälp av containrar och tillhandahålla en nivå av haveriberedskap. Microsoft tillhandahåller verktyg och exempel på hur du använder Kubernetes, så det är ett bra val för containerstorlek SQL Server på Linux. Det finns en SQL Server på Linux containeravbildning som är tillgänglig för användning med Kubernetes.

Containerbaserad SQL Server på Linux

Ett problem med databaser som körs i containrar är beständig lagring. Du måste ange en lagringsplats utanför containern där databasen kan behålla databasfiler. Ändringar är sedan tillgängliga för alla containrar i ett kluster. Om du använder Kubernetes kan du använda en beständig volym för den här platsen.

Diagram of the a Kubernetes cluster running SQL Server and the relationship between nodes, pods, storage, replica sets, and the service.

Skapa först en beständig volym och lägg sedan till ett beständigt volymanspråk (PVC). Skapa ett distributionsmanifest för SQL Server på Linux som använder den Microsoft-skapade mssql-server-linux containeravbildningen. Manifestet innehåller också definitioner för PVC och en lastbalanserare för tjänsten för att garantera en konsekvent IP-adress. Skapa distributionen och kontrollera att SQL Server körs i en podd. När installationen är klar startar Kubernetes en ny instans om noden misslyckas. Ett enkelt test är att ta bort podden och kontrollera att en ny startar automatiskt.

Testa dina kunskaper

1.

När skulle en virtuell dator vara det bästa valet att vara värd för ett program?