Dela via


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, oceller helm om du är bekant med dessa verktyg och Kubernetes yaml/json.

Installera kubectl-verktyget

Ö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 pg2må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.