Skapa en PostgreSQL-server med kubernetes-verktyg
Kommentar
Som en förhandsgranskningsfunktion omfattas tekniken som presenteras i den här artikeln av kompletterande användningsvillkor för Förhandsversioner av Microsoft Azure.
De senaste uppdateringarna är tillgängliga i viktig information.
Förutsättningar
Du borde redan ha skapat en datakontrollant.
Om du vill skapa en PostgreSQL-server med kubernetes-verktyg måste du ha Kubernetes-verktygen installerade. Exemplen i den här artikeln använder kubectl
, men liknande metoder kan användas med andra Kubernetes-verktyg, till exempel Kubernetes-instrumentpanelen, oc
eller helm
om du är bekant med dessa verktyg och Kubernetes yaml/json.
Översikt
Om du vill skapa en PostgreSQL-server måste du skapa en Kubernetes-hemlighet för att lagra din postgres-administratörsinloggning och lösenord på ett säkert sätt och en anpassad PostgreSQL-serverresurs baserat på de postgresqls
anpassade resursdefinitionerna.
Skapa en yaml-fil
Du kan använda yaml-mallfilen som utgångspunkt för att skapa en egen anpassad PostgreSQL-server yaml-fil. Ladda ned den här filen till den lokala datorn och öppna den i en textredigerare. Det är användbart att använda en textredigerare som VS Code som stöder syntaxmarkering och lintning för yaml-filer.
Exempel på yaml-fil:
apiVersion: v1
data:
username: <your base64 encoded username>
password: <your base64 encoded password>
kind: Secret
metadata:
name: pg1-login-secret
type: Opaque
---
apiVersion: arcdata.microsoft.com/v1beta3
kind: postgresql
metadata:
name: pg1
spec:
scheduling:
default:
resources:
limits:
cpu: "4"
memory: 4Gi
requests:
cpu: "1"
memory: 2Gi
services:
primary:
type: LoadBalancer # Modify service type based on your Kubernetes environment
storage:
data:
volumes:
- className: default # Use default configured storage class or modify storage class based on your Kubernetes environment
size: 5Gi
logs:
volumes:
- className: default # Use default configured storage class or modify storage class based on your Kubernetes environment
size: 5Gi
Anpassa inloggningen och lösenordet.
En Kubernetes-hemlighet lagras som en base64-kodad sträng – en för användarnamnet och en för lösenordet. Du måste base64 koda en administratörsinloggning och lösenord och placera dem på platshållarplatsen på data.password
och data.username
. Ta inte med symbolerna <
och >
i mallen.
Du kan använda ett onlineverktyg för att base64-koda önskat användarnamn och lösenord eller använda inbyggda CLI-verktyg beroende på din plattform.
PowerShell
[Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes('<your string to encode here>'))
#Example
#[Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes('example'))
Linux/macOS
echo -n '<your string to encode here>' | base64
#Example
# echo -n 'example' | base64
Anpassa namnet
Mallen har värdet pg1
för namnattributet. Du kan ändra det här värdet, men det måste vara tecken som följer DNS-namngivningsstandarderna. Om du ändrar namnet ändrar du namnet på hemligheten så att det matchar. Om du till exempel ändrar namnet på PostgreSQL-servern till pg2
måste du ändra namnet på hemligheten från pg1-login-secret
till pg2-login-secret
Anpassa resurskraven
Du kan ändra resurskraven – RAM-minnet och kärngränser och begäranden – efter behov.
Kommentar
Du kan lära dig mer om Kubernetes-resursstyrning.
Krav för resursgränser och begäranden:
- Kärngränsvärdet krävs för faktureringsändamål.
- Resten av resursbegäranden och begränsningar är valfria.
- Kärngränsen och begäran måste vara ett positivt heltalsvärde om det anges.
- Minst en kärna krävs för cores-begäran, om det anges.
- Minnesvärdeformatet följer Kubernetes-notationen.
Anpassa tjänsttyp
Tjänsttypen kan ändras till NodePort om du vill. Ett slumpmässigt portnummer tilldelas.
Anpassa lagring
Du kan anpassa lagringsklasserna för lagring så att de matchar din miljö. Om du inte är säker på vilka lagringsklasser som är tillgängliga kör du kommandot kubectl get storageclass
för att visa dem. Mallen har standardvärdet default
. Det här värdet innebär att det finns en lagringsklass som heter default
inte att det finns en lagringsklass som är standard. Du kan också ändra storleken på lagringen. Du kan läsa mer om lagringskonfiguration.
Skapa PostgreSQL-servern
Nu när du har anpassat PostgreSQL-serverns yaml-fil kan du skapa PostgreSQL-servern genom att köra följande kommando:
kubectl create -n <your target namespace> -f <path to your yaml file>
#Example
#kubectl create -n arc -f C:\arc-data-services\postgres.yaml
Övervaka skapandestatusen
Det tar några minuter att skapa PostgreSQL-servern. Du kan övervaka förloppet i ett annat terminalfönster med följande kommandon:
Kommentar
Exempelkommandona nedan förutsätter att du har skapat en PostgreSQL-server med namnet pg1
och Kubernetes-namnområdet med namnet arc
. Om du använde ett annat namnområde/PostgreSQL-servernamn kan du ersätta arc
och pg1
med dina namn.
kubectl get postgresqls/pg1 --namespace arc
kubectl get pods --namespace arc
Du kan också kontrollera statusen för att skapa en viss podd genom att köra kubectl describe
kommandot . Kommandot describe
är särskilt användbart för att felsöka eventuella problem. Till exempel:
kubectl describe pod/<pod name> --namespace arc
#Example:
#kubectl describe pod/pg1-0 --namespace arc
Felsöka problem med att skapa
Om du får problem med att skapa kan du läsa felsökningsguiden.