Een PostgreSQL-server maken met kubernetes-hulpprogramma's
Notitie
Omdat het om een preview-functie gaat, is de technologie die in dit artikel wordt behandeld onderhevig aan de Aanvullende gebruiksvoorwaarden voor Microsoft Azure Previews.
De meest recente updates zijn beschikbaar in de releaseopmerkingen.
Vereisten
U moet al een gegevenscontroller hebben gemaakt.
Als u een PostgreSQL-server wilt maken met behulp van Kubernetes-hulpprogramma's, moet u de Kubernetes-hulpprogramma's hebben geïnstalleerd. De voorbeelden in dit artikel zullen worden gebruikt kubectl
, maar vergelijkbare benaderingen kunnen worden gebruikt met andere Kubernetes-hulpprogramma's, zoals het Kubernetes-dashboard, oc
of helm
als u bekend bent met deze hulpprogramma's en Kubernetes yaml/json.
Het kubectl-hulpprogramma installeren
Overzicht
Als u een PostgreSQL-server wilt maken, moet u een Kubernetes-geheim maken om uw postgres-beheerdersaanmelding en -wachtwoord veilig en een aangepaste PostgreSQL-serverresource op te slaan op basis van de postgresqls
aangepaste resourcedefinities.
Een yaml-bestand maken
U kunt het yaml-sjabloonbestand als uitgangspunt gebruiken om uw eigen aangepaste Yaml-bestand van de PostgreSQL-server te maken. Download dit bestand naar uw lokale computer en open het in een teksteditor. Het is handig om een teksteditor zoals VS Code te gebruiken die ondersteuning biedt voor syntaxismarkering en linting voor yaml-bestanden.
Voorbeeld van yaml-bestand:
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
De aanmelding en het wachtwoord aanpassen.
Een Kubernetes-geheim wordt opgeslagen als een met base64 gecodeerde tekenreeks: één voor de gebruikersnaam en een voor het wachtwoord. U moet base64 een aanmelding en wachtwoord van een beheerder coderen en deze op de locatie van de tijdelijke aanduiding plaatsen op data.password
en data.username
. Neem de <
symbolen die >
zijn opgegeven in de sjabloon niet op.
U kunt een onlinehulpprogramma gebruiken om uw gewenste gebruikersnaam en wachtwoord te coderen met base64 of u kunt ingebouwde CLI-hulpprogramma's gebruiken, afhankelijk van uw platform.
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
De naam aanpassen
De sjabloon heeft een waarde voor pg1
het naamkenmerk. U kunt deze waarde wijzigen, maar dit moeten tekens zijn die voldoen aan de DNS-naamgevingsstandaarden. Als u de naam wijzigt, wijzigt u de naam van het geheim zodat deze overeenkomt. Als u bijvoorbeeld de naam van de PostgreSQL-server pg2
wijzigt in, moet u de naam van het geheim wijzigen in pg1-login-secret
pg2-login-secret
De resourcevereisten aanpassen
U kunt indien nodig de resourcevereisten wijzigen: de RAM- en kernlimieten en aanvragen.
Notitie
Meer informatie over Kubernetes-resourcebeheer.
Vereisten voor resourcelimieten en aanvragen:
- De limietwaarde voor kerngeheugens is vereist voor factureringsdoeleinden.
- De rest van de resourceaanvragen en -limieten zijn optioneel.
- De kernlimiet en aanvraag moeten een positief geheel getal zijn, indien opgegeven.
- Het minimum van één kern is vereist voor de aanvraag kernen, indien opgegeven.
- De indeling van de geheugenwaarde volgt de Kubernetes-notatie.
Servicetype aanpassen
Het servicetype kan desgewenst worden gewijzigd in NodePort. Er wordt een willekeurig poortnummer toegewezen.
Opslag aanpassen
U kunt de opslagklassen voor opslag aanpassen aan uw omgeving. Als u niet zeker weet welke opslagklassen beschikbaar zijn, voert u de opdracht kubectl get storageclass
uit om deze weer te geven. De sjabloon heeft een standaardwaarde van default
. Deze waarde betekent dat er een opslagklasse is met de naam default
niet dat er een opslagklasse is die de standaardwaarde is. U kunt eventueel ook de grootte van uw opslag wijzigen. Meer informatie over opslagconfiguratie kunt u lezen.
De PostgreSQL-server maken
Nu u het Yaml-bestand van de PostgreSQL-server hebt aangepast, kunt u de PostgreSQL-server maken door de volgende opdracht uit te voeren:
kubectl create -n <your target namespace> -f <path to your yaml file>
#Example
#kubectl create -n arc -f C:\arc-data-services\postgres.yaml
De status van het maken controleren
Het maken van de PostgreSQL-server duurt enkele minuten. U kunt de voortgang in een ander terminalvenster bewaken met de volgende opdrachten:
Notitie
In de onderstaande voorbeeldopdrachten wordt ervan uitgegaan dat u een PostgreSQL-server hebt gemaakt met de naam pg1
en kubernetes-naamruimte met de naam arc
. Als u een andere naamruimte/PostgreSQL-servernaam hebt gebruikt, kunt u deze vervangen arc
en pg1
vervangen door uw namen.
kubectl get postgresqls/pg1 --namespace arc
kubectl get pods --namespace arc
U kunt ook de status van het maken van een bepaalde pod controleren door de opdracht uit te voeren kubectl describe
. De describe
opdracht is vooral handig voor het oplossen van problemen. Voorbeeld:
kubectl describe pod/<pod name> --namespace arc
#Example:
#kubectl describe pod/pg1-0 --namespace arc
Problemen met het maken oplossen
Als u problemen ondervindt bij het maken, raadpleegt u de gids voor probleemoplossing.