GNU/Linux >> Znalost Linux >  >> Cent OS

Jak nasadit PostgreSQL na Kubernetes

Úvod

PostgreSQL je spolehlivý a robustní relační databázový systém obsahující transakce vyhovující ACID. Je navržen tak, aby zvládal pracovní zátěže všech velikostí, takže se dobře hodí pro osobní použití a rozsáhlá nasazení, jako jsou datové sklady, servery velkých dat nebo webové služby.

Nasazení PostgreSQL na Kubernetes vytvoří škálovatelnou a přenosnou instanci PostgreSQL, která využívá dobré stránky RDBMS i orchestrační platformy.

Tento článek vám ukáže dva způsoby nasazení PostgreSQL na Kubernetes – pomocí Helm grafu nebo ručního vytvoření konfigurace.

Předpoklady

  • Cluster Kubernetes s nainstalovaným kubectl
  • Nainstalován Helm 3
  • Administrativní práva ve vašem systému

Nasazení PostgreSQL pomocí Helm

Helm vám poskytuje rychlý a snadný způsob nasazení instance PostgreSQL na váš cluster.

Krok 1:Přidejte úložiště Helm

1. Vyhledejte v Artifact Hub graf PostgreSQL Helm, který chcete použít. Přidejte úložiště grafu do místní instalace Helm zadáním:

helm repo add [repository-name] [repository-address]

Tento článek používá graf Bitnami Helm pro instalaci PostgreSQL.

2. Po přidání úložiště aktualizujte své místní úložiště.

helm repo update

Systém potvrdí úspěšnou aktualizaci.

Krok 2:Vytvořte a použijte trvalý svazek úložiště

Data ve vaší databázi Postgres musí zůstat zachována po restartování modulu.

1. Chcete-li toho dosáhnout, vytvořte prostředek PersistentVolume v souboru YAML pomocí textového editoru, jako je nano.

nano postgres-pv.yaml

Obsah souboru definuje:

  • Samotný zdroj.
  • Třída úložiště.
  • Množství přiděleného úložiště.
  • Režimy přístupu.
  • Cesta připojení na hostitelském systému.

Tento příklad používá následující konfiguraci:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: postgresql-pv
  labels:
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/mnt/data"

2. Uložte soubor a ukončete. Poté použijte konfiguraci pomocí kubectl :

kubectl apply -f postgres-pv.yaml

Systém potvrdí vytvoření trvalého svazku.

Krok 3:Vytvořte a použijte trvalý nárok na svazek

1. Vytvořte Persistent Volume Claim (PVC), abyste požádali o úložiště přidělené v předchozím kroku.

nano postgres-pvc.yaml

V příkladu je použita následující konfigurace:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: postgresql-pv-claim
spec:
  storageClassName: manual
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi

2. Uložte soubor a ukončete. Použijte konfiguraci pomocí kubectl :

kubectl apply -f postgres-pvc.yaml

Systém potvrzuje úspěšné vytvoření PVC.

3. Použijte kubectl get pro kontrolu, zda je PVC úspěšně připojeno k FV:

kubectl get pvc

Sloupec stavu ukazuje, že nárok je Vázaný .

Krok 4:Instalace Helm Chart

Nainstalujte tabulku kormidla pomocí helm install příkaz. Přidat --set flags příkazu pro připojení instalace k PVC, které jste vytvořili, a povolení oprávnění k svazku:

helm install [release-name] [repo-name] --set persistence.existingClaim=[pvc-name] --set volumePermissions.enabled=true

Systém zobrazí zprávu o úspěšné instalaci.

Krok 5:Připojte se ke klientovi PostgreSQL

1. Exportujte POSTGRES_PASSWORD proměnná prostředí, abyste se mohli přihlásit do instance PostgreSQL:

export POSTGRES_PASSWORD=$(kubectl get secret --namespace default psql-test-postgresql -o jsonpath="{.data.postgresql-password}" | base64 --decode)

2. Otevřete další okno terminálu a zadejte následující příkaz pro předání portu Postgres:

kubectl port-forward --namespace default svc/psql-test-postgresql 5432:5432

Systém začne zpracovávat připojení k portu.

3. Minimalizujte okno pro předávání portů a vraťte se k předchozímu. Zadejte příkaz pro připojení k psql, klientovi PostgreSQL:

PGPASSWORD="$POSTGRES_PASSWORD" psql --host 127.0.0.1 -U postgres -d postgres -p 5432

psql zobrazí se příkazový řádek a PostgreSQL je připraven přijímat váš vstup.

Nasaďte PostgreSQL vytvořením konfigurace od nuly

Ruční konfigurace Postgresu na Kubernetes vám umožňuje doladit konfiguraci nasazení.

Krok 1:Vytvořte a použijte ConfigMap

Prostředek ConfigMap obsahuje data, která se používají během procesu nasazení.

1. Vytvořte soubor ConfigMap YAML v textovém editoru.

nano postgres-configmap.yaml

2. Nejdůležitější částí souboru je datová část, kde uvedete název databáze , uživatelské jméno a heslo pro přihlášení do instance PostgreSQL.

V příkladu jsou použity následující parametry v souboru ConfigMap.

apiVersion: v1
kind: ConfigMap
metadata:
  name: postgres-config
  labels:
    app: postgres
data:
  POSTGRES_DB: postgresdb
  POSTGRES_USER: admin
  POSTGRES_PASSWORD: test123

3. Uložte soubor a ukončete. Poté použijte zdroj pomocí kubectl :

kubectl apply -f postgres-configmap.yaml

Systém potvrdí úspěšné vytvoření konfiguračního souboru.

Krok 2:Vytvořte a použijte trvalý svazek úložiště a nárok na trvalý svazek

1. Vytvořte soubor YAML pro konfiguraci úložiště.

nano postgres-storage.yaml

2. Metoda nasazení grafu Helm používala dva samostatné soubory pro Persistent Volume a Persistent Volume Claim, ale můžete také umístit obě konfigurace do jednoho souboru, jako v příkladu níže.

kind: PersistentVolume
apiVersion: v1
metadata:
  name: postgres-pv-volume
  labels:
    type: local
    app: postgres
spec:
  storageClassName: manual
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteMany
  hostPath:
    path: "/mnt/data"
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: postgres-pv-claim
  labels:
    app: postgres
spec:
  storageClassName: manual
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 5Gi

3. Uložte soubor a ukončete. Použijte prostředky pomocí kubectl :

kubectl apply -f postgres-storage.yaml

Systém potvrzuje úspěšnou tvorbu PV i PVC.

4. Zkontrolujte, zda je PVC připojeno k PV pomocí následujícího příkazu:

kubectl get pvc

Stav PVC je Bound a PVC je připraveno k použití v nasazení PostgreSQL.

Krok 3:Vytvořte a použijte nasazení PostgreSQL

1. Vytvořte soubor YAML pro nasazení.

nano postgres-deployment.yaml

2. Soubor nasazení obsahuje konfiguraci nasazení PostgreSQL a poskytuje specifikace pro kontejnery a svazky:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: postgres
spec:
  replicas: 1
  selector:
    matchLabels:
      app: postgres
  template:
    metadata:
      labels:
        app: postgres
    spec:
      containers:
        - name: postgres
          image: postgres:10.1
          imagePullPolicy: "IfNotPresent"
          ports:
            - containerPort: 5432
          envFrom:
            - configMapRef:
                name: postgres-config
          volumeMounts:
            - mountPath: /var/lib/postgresql/data
              name: postgredb
      volumes:
        - name: postgredb
          persistentVolumeClaim:
            claimName: postgres-pv-claim

3. Uložte soubor a ukončete. Použijte nasazení pomocí kubectl :

kubectl apply -f postgres-deployment.yaml

Systém potvrdí úspěšné vytvoření rozmístění.

Krok 4:Vytvoření a použití služby PostgreSQL

1. Nakonec vytvořte soubor YAML pro konfiguraci služby PostgreSQL.

nano postgres-service.yaml

2. Zadejte typ služby a porty. V příkladu je použita následující konfigurace:

apiVersion: v1
kind: Service
metadata:
  name: postgres
  labels:
    app: postgres
spec:
  type: NodePort
  ports:
   - port: 5432
  selector:
   app: postgres

3. Uložte soubor a ukončete. Použijte konfiguraci pomocí kubectl :

kubectl apply -f postgres-service.yaml

Systém potvrdí úspěšné vytvoření služby.

4. Pomocí následujícího příkazu vypište všechny prostředky v systému.

kubectl get all

Pod a rozmístění ukazují 1/1 připravený stav. Požadovaný počet sad replik odráží to, co je nakonfigurováno v souboru YAML nasazení.

Krok 5:Připojte se k PostgreSQL

1. Když jsou všechny prostředky připraveny, použijte kubectl exec pro přihlášení do instance PostgreSQL.

kubectl exec -it [pod-name] --  psql -h localhost -U admin --password -p [port] postgresdb

2. Systém požádá o heslo. Zadejte heslo definované v kroku 1 a stiskněte Enter . psql zobrazí se příkazový řádek.

Databáze je nyní připravena přijímat uživatelský vstup.


Cent OS
  1. Jak nainstalovat PostgreSQL na CentOS 7

  2. Jak nasadit svůj první modul na clusteru Kubernetes

  3. Jak nasadit PostgreSQL jako Docker Container

  1. Jak nasadit PostgreSQL na Docker Container

  2. Jak nasadit Elasticsearch na Kubernetes

  3. Jak nasadit instanci WordPress na Kubernetes

  1. Jak nasadit Redis Cluster na Kubernetes

  2. Jak nasadit RabbitMQ na Kubernetes

  3. Jak vytvořit databázi v PostgreSQL