Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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-Azurei en prenumeration i ditt Azure-konto.
Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Kom igång med 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 Autentisera till Azure 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 och hantera 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.
- jq, version 1.5 eller senare.
- kubectl version 1.21.0 eller senare.
- Helm version 3.0.0 eller senare.
- OpenSSL version 3.3.0 eller senare.
- Visual Studio Code eller motsvarande.
- Krew version 0.4.4 eller senare.
- kubectl CloudNativePG (CNPG)-plugin.
Utrullningsprocess
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 tillhandahåller en PostgreSQL med hög tillgänglighet som körs på ett AKS-kluster och som kan motstå ett zonavbrott genom att växla över till 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.
Du kan välja att vara värd för PostgreSQL på AKS när du behöver fullständig kontroll över databaskonfiguration, tillägg och distributionsarkitektur. Det är idealiskt för att integrera nära med Kubernetes-inbyggda verktyg, optimera kostnader i stor skala och finjustera prestanda genom anpassad resursallokering, cachelagringsstrategier och lagringskonfigurationer som är skräddarsydda för din arbetsbelastning.
Anteckning
För program som kräver dataavgränsning på databasnivå kan du lägga till fler databaser med postInitSQL-kommandon och liknande. Det går för närvarande inte att lägga till fler databaser på ett deklarativt sätt med CNPG-operatorn. Läs mer om CNPG-operatorn.
Överväganden för lagring
Den typ av lagring som du använder kan ha stora effekter på PostgreSQL-prestanda. Senare i den här guiden väljer du det alternativ som passar bäst för dina mål och prestandabehov.
| Lagringstyp | Kompatibel drivrutin | Beskrivning |
|---|---|---|
| Premium SSD | CSI-drivrutin för Azure Disks | Maximal dataåterhämtning. Azure Premium SSD levererar högpresterande lagring och fungerar sömlöst med Azure Premium zone-redundant lagring (ZRS). Premium SSD etableras baserat på specifika storlekar, som var och en erbjuder vissa IOPS- och dataflödesnivåer. |
| Premium SSD v2 | CSI-drivrutin för Azure Disks | Bästa prisprestanda. Azure Premium SSD v2 erbjuder högre prestanda än Azure Premium-SSD:er samtidigt som det i allmänhet är billigare. Till skillnad från Premium SSD:er har Premium SSD v2 inte dedikerade storlekar. Du kan ställa in en Premium SSD v2 till önskad storlek som stöds och göra detaljerade justeringar av prestandan utan driftstopp. Azure Premium SSD v2-diskar har vissa begränsningar som du bör känna till. En fullständig lista finns i Begränsningar för Premium SSD v2. |
| Lokal NVMe eller temp SSD (tillfälliga diskar) | Endast Azure Container Storage | Maximal prestanda. Tillfälliga diskar är lokala NVMe och tillfällig SSD-lagring som är tillgänglig i utvalda VM-familjer. De erbjuder högsta möjliga svarstid för IOPS, dataflöde och undermillisekunder för ditt AKS-kluster. Du kan också dra nytta av tillfälliga diskars höga prestanda med hjälp av Azure Container Storage, en hanterad Kubernetes-lagringslösning som dynamiskt etablerar beständiga volymer för tillståndskänsliga arbetsbelastningar som PostgreSQL. Men eftersom dessa diskar finns på de lokala virtuella datorer som är värdar för klustret sparas inte data till en Azure Storage-tjänst. Därför går alla data som lagras på dessa diskar förlorade om klustret stoppas eller frigörs. För att åtgärda den här begränsningen visar senare avsnitt i den här guiden hur du konfigurerar regelbundna säkerhetskopior av dina PostgreSQL-data till Azure Blob Storage. |
Nästa steg
Deltagare
Microsoft uppdaterar denna artikel. Följande deltagare skrev den ursprungligen:
- Ken Kilty | Huvudansvarig TPM
- Russell de Pina | Chef 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