Distribuera en PostgreSQL-databas med hög tillgänglighet på AKS med Azure CLI
I den här guiden distribuerar du ett PostgreSQL-kluster med hög tillgänglighet som omfattar flera Azure-tillgänglighetszoner i AKS med Azure CLI.
Den här artikeln går igenom kraven för att konfigurera ett PostgreSQL-kluster i Azure Kubernetes Service (AKS) och ger en översikt över den fullständiga distributionsprocessen och arkitekturen.
Viktigt!
Programvara med öppen källkod nämns i AKS-dokumentationen och exempel. Programvara som du distribuerar undantas från AKS-serviceavtal, begränsad garanti och Azure Support. När du använder teknik med öppen källkod tillsammans med AKS kan du läsa supportalternativen som är tillgängliga från respektive community och projektunderhållare för att utveckla en plan.
Till exempel beskriver Ray GitHub-lagringsplatsen flera plattformar som varierar i svarstid, syfte och supportnivå.
Microsoft tar ansvar för att skapa de paket med öppen källkod som vi distribuerar på AKS. Det ansvaret omfattar att ha fullständigt ägarskap för bygg-, genomsöknings-, signerings-, validerings- och snabbkorrigeringsprocessen, tillsammans med kontroll över binärfilerna i containeravbildningar. Mer information finns i Sårbarhetshantering för AKS - och AKS-stödtäckning.
Förutsättningar
- Den här guiden förutsätter en grundläggande förståelse av grundläggande Kubernetes-begrepp och PostgreSQL.
- Du behöver de inbyggda rollerna Ägare eller Användaråtkomstadministratör och Deltagar-Azure i en prenumeration i ditt Azure-konto.
Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Snabbstart för Bash i Azure Cloud Shell.
Om du föredrar att köra CLI-referenskommandon lokalt installerar du Azure CLI. Om du kör i Windows eller macOS kan du köra Azure CLI i en Docker-container. Mer information finns i Så här kör du Azure CLI i en Docker-container.
Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Andra inloggningsalternativ finns i Logga in med Azure CLI.
När du uppmanas att installera Azure CLI-tillägget vid första användningen. Mer information om tillägg finns i Använda tillägg med Azure CLI.
Kör az version om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
Du behöver också följande resurser installerade:
- Azure CLI version 2.56 eller senare.
- Förhandsversionstillägg för Azure Kubernetes Service (AKS).
- jq, version 1.5 eller senare.
- kubectl version 1.21.0 eller senare.
- Helm version 3.0.0 eller senare.
- öppnar version 3.3.0 eller senare.
- Visual Studio Code eller motsvarande.
- Krew version 0.4.4 eller senare.
- kubectl CloudNativePG(CNPG)-plugin-program.
Distributionsprocess
I den här guiden får du lära du dig att:
- Använd Azure CLI för att skapa ett AKS-kluster med flera zoner.
- Distribuera ett PostgreSQL-kluster och en databas med hög tillgänglighet med hjälp av CNPG-operatorn.
- Konfigurera övervakning för PostgreSQL med Prometheus och Grafana.
- Distribuera en exempeldatauppsättning till en PostgreSQL-databas.
- Utför uppgraderingar av PostgreSQL- och AKS-kluster.
- Simulera ett klusteravbrott och PostgreSQL-replikredundans.
- Utför säkerhetskopiering och återställning av en PostgreSQL-databas.
Distributionsarkitektur
Det här diagrammet illustrerar en PostgreSQL-klusterkonfiguration med en primär replik och två läsrepliker som hanteras av Operatorn CloudNativePG (CNPG). Arkitekturen ger en PostgreSQL med hög tillgänglighet som körs på ett AKS-kluster som kan motstå ett zonavbrott genom att växla över över repliker.
Säkerhetskopior lagras i Azure Blob Storage, vilket ger ett annat sätt att återställa databasen i händelse av ett problem med strömmande replikering från den primära repliken.
Kommentar
För program som kräver dataavgränsning på databasnivå kan du lägga till fler databaser med postInitSQL-kommandon och liknande. Det är för närvarande inte möjligt med CNPG-operatorn att lägga till fler databaser på ett deklarativt sätt. Läs mer om CNPG-operatorn.
Nästa steg
Deltagare
Microsoft underhåller den här artikeln. Följande deltagare skrev den ursprungligen:
- Ken Kilty | Huvudnamn för TPM
- Russell de Pina | Huvudnamn för TPM
- Adrian Joian | Senior kundtekniker
- Jenny Hayes | Senior innehållsutvecklare
- Carol Smith | Senior innehållsutvecklare
- Erin Schaffer | Innehållsutvecklare 2
- Adam Sharif | Kundtekniker 2
Azure Kubernetes Service