Udostępnij za pośrednictwem


Tworzenie serwera PostgreSQL przy użyciu narzędzi Kubernetes

Uwaga

Jako funkcja w wersji zapoznawczej technologia przedstawiona w tym artykule podlega dodatkowym warunkom użytkowania dla wersji zapoznawczych platformy Microsoft Azure.

Najnowsze aktualizacje są dostępne w informacjach o wersji.

Wymagania wstępne

Powinien już zostać utworzony kontroler danych.

Aby utworzyć serwer PostgreSQL przy użyciu narzędzi Platformy Kubernetes, musisz mieć zainstalowane narzędzia Kubernetes. Przykłady w tym artykule będą używane, kubectlale podobne podejścia mogą być używane z innymi narzędziami kubernetes, takimi jak pulpit nawigacyjny Kubernetes, oclub helm jeśli znasz te narzędzia i plik yaml/json platformy Kubernetes.

Instalowanie narzędzia kubectl

Omówienie

Aby utworzyć serwer PostgreSQL, należy utworzyć wpis tajny Kubernetes w celu bezpiecznego przechowywania identyfikatora logowania administratora postgres i hasła oraz niestandardowego zasobu serwera PostgreSQL na postgresqls podstawie niestandardowych definicji zasobów.

Tworzenie pliku yaml

Możesz użyć pliku yaml szablonu jako punktu początkowego , aby utworzyć własny niestandardowy plik yaml serwera PostgreSQL. Pobierz ten plik na komputer lokalny i otwórz go w edytorze tekstów. Warto użyć edytora tekstów, takiego jak PROGRAM VS Code , który obsługuje wyróżnianie składni i linting dla plików yaml.

Przykładowy plik yaml:

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

Dostosowywanie nazwy logowania i hasła.

Wpis tajny kubernetes jest przechowywany jako ciąg zakodowany w formacie base64 — jeden dla nazwy użytkownika i jeden dla hasła. Musisz zakodować identyfikator logowania i hasło administratora base64, a następnie umieścić je w lokalizacji zastępczej w data.password lokalizacji i data.username. Nie dołączaj < symboli i > podanych w szablonie.

Możesz użyć narzędzia online, aby zakodować żądaną nazwę użytkownika i hasło, lub użyć wbudowanych narzędzi interfejsu wiersza polecenia w zależności od platformy.

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

Dostosowywanie nazwy

Szablon ma wartość pg1 atrybutu name. Tę wartość można zmienić, ale musi to być znaki zgodne ze standardami nazewnictwa DNS. Jeśli zmienisz nazwę, zmień nazwę wpisu tajnego tak, aby był zgodny. Jeśli na przykład zmienisz nazwę serwera PostgreSQL na pg2, musisz zmienić nazwę wpisu tajnego z pg1-login-secret na pg2-login-secret

Dostosowywanie wymagań dotyczących zasobów

Możesz zmienić wymagania dotyczące zasobów — limity pamięci RAM i rdzeni oraz żądania — zgodnie z potrzebami.

Uwaga

Aby dowiedzieć się więcej na temat zarządzania zasobami platformy Kubernetes, możesz dowiedzieć się więcej.

Wymagania dotyczące limitów zasobów i żądań:

  • Wartość limitu rdzeni jest wymagana do celów rozliczeniowych.
  • Pozostałe żądania zasobów i limity są opcjonalne.
  • Limit rdzeni i żądanie muszą być dodatnią wartością całkowitą, jeśli zostanie określona.
  • Minimalna liczba rdzeni jest wymagana dla żądania rdzeni, jeśli określono.
  • Format wartości pamięci jest zgodny z notacją Kubernetes.

Dostosowywanie typu usługi

W razie potrzeby można zmienić typ usługi na NodePort. Zostanie przypisany losowy numer portu.

Dostosowywanie magazynu

Możesz dostosować klasy magazynu dla magazynu, aby dopasować je do środowiska. Jeśli nie masz pewności, które klasy magazynu są dostępne, uruchom polecenie kubectl get storageclass , aby je wyświetlić. Szablon ma wartość defaultdomyślną . Ta wartość oznacza, że istnieje klasa magazynu o nazwie default nie, że istnieje klasa magazynu, która jest domyślna. Opcjonalnie możesz również zmienić rozmiar magazynu. Więcej informacji na temat konfiguracji magazynu można przeczytać.

Tworzenie serwera PostgreSQL

Po dostosowaniu pliku yaml serwera PostgreSQL możesz utworzyć serwer PostgreSQL, uruchamiając następujące polecenie:

kubectl create -n <your target namespace> -f <path to your yaml file>

#Example
#kubectl create -n arc -f C:\arc-data-services\postgres.yaml

Monitorowanie stanu tworzenia

Tworzenie serwera PostgreSQL potrwa kilka minut. Postęp można monitorować w innym oknie terminalu za pomocą następujących poleceń:

Uwaga

W poniższych przykładowych poleceniach przyjęto założenie, że utworzono serwer PostgreSQL o nazwie pg1 i przestrzeń nazw Kubernetes o nazwie arc. Jeśli użyto innej przestrzeni nazw/nazwy serwera PostgreSQL, możesz zastąpić arc ciąg i pg1 swoimi nazwami.

kubectl get postgresqls/pg1 --namespace arc
kubectl get pods --namespace arc

Możesz również sprawdzić stan tworzenia dowolnego zasobnika, uruchamiając kubectl describe polecenie . Polecenie describe jest szczególnie przydatne do rozwiązywania problemów. Na przykład:

kubectl describe pod/<pod name> --namespace arc

#Example:
#kubectl describe pod/pg1-0 --namespace arc

Rozwiązywanie problemów z tworzeniem

Jeśli wystąpią problemy z tworzeniem, zapoznaj się z przewodnikiem rozwiązywania problemów.