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.
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, kubectl
ale podobne podejścia mogą być używane z innymi narzędziami kubernetes, takimi jak pulpit nawigacyjny Kubernetes, oc
lub 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ść default
domyś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.