GNU/Linux >> Belajar Linux >  >> Cent OS

Cara Menyebarkan PostgreSQL di Kubernetes

Pendahuluan

PostgreSQL adalah sistem basis data relasional yang andal dan kuat yang menampilkan transaksi yang sesuai dengan ACID. Ini dirancang untuk menangani beban kerja dari semua ukuran, sehingga cocok untuk penggunaan pribadi dan penyebaran skala besar seperti gudang data, server data besar, atau layanan web.

Menerapkan PostgreSQL di Kubernetes menciptakan instance PostgreSQL yang skalabel dan portabel, memanfaatkan sisi baik RDBMS dan platform orkestrasi.

Artikel ini akan menunjukkan kepada Anda dua metode penerapan PostgreSQL di Kubernetes - menggunakan diagram Helm atau membuat konfigurasi secara manual.

Prasyarat

  • Cluster Kubernetes dengan kubectl terinstal
  • Helm 3 terpasang
  • Hak istimewa administratif di sistem Anda

Menyebarkan PostgreSQL Menggunakan Helm

Helm memberi Anda cara cepat dan mudah untuk men-deploy instance PostgreSQL di cluster Anda.

Langkah 1:Tambahkan Repositori Helm

1. Cari Artefak Hub untuk bagan Helm PostgreSQL yang ingin Anda gunakan. Tambahkan repositori bagan ke instalasi Helm lokal Anda dengan mengetik:

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

Artikel ini menggunakan grafik Bitnami Helm untuk instalasi PostgreSQL.

2. Setelah Anda menambahkan repositori, perbarui repositori lokal Anda.

helm repo update

Sistem mengonfirmasi pembaruan yang berhasil.

Langkah 2:Buat dan Terapkan Volume Penyimpanan Persisten

Data dalam database Postgres Anda harus tetap ada selama pod dimulai ulang.

1. Untuk mencapainya, buat sumber daya PersistentVolume dalam file YAML, menggunakan editor teks seperti nano.

nano postgres-pv.yaml

Isi file menentukan:

  • Sumber daya itu sendiri.
  • Kelas penyimpanan.
  • Jumlah penyimpanan yang dialokasikan.
  • Mode akses.
  • Jalur pemasangan pada sistem host.

Contoh ini menggunakan konfigurasi berikut:

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

2. Simpan file dan keluar. Kemudian terapkan konfigurasi dengan kubectl :

kubectl apply -f postgres-pv.yaml

Sistem mengonfirmasi pembuatan volume persisten.

Langkah 3:Buat dan Terapkan Klaim Volume Persisten

1. Buat Persistent Volume Claim (PVC) untuk meminta penyimpanan yang dialokasikan pada langkah sebelumnya.

nano postgres-pvc.yaml

Contoh menggunakan konfigurasi berikut:

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

2. Simpan file dan keluar. Terapkan konfigurasi dengan kubectl :

kubectl apply -f postgres-pvc.yaml

Sistem mengonfirmasi pembuatan PVC yang berhasil.

3. Gunakan kubectl get untuk memeriksa apakah PVC berhasil tersambung ke PV:

kubectl get pvc

Kolom status menunjukkan bahwa klaim tersebut Terikat .

Langkah 4:Pasang Bagan Helm

Instal bagan helm dengan helm install memerintah. Tambahkan --set menandai perintah untuk menghubungkan instalasi ke PVC yang Anda buat dan mengaktifkan izin volume:

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

Sistem menampilkan laporan setelah instalasi berhasil.

Langkah 5:Hubungkan ke Klien PostgreSQL

1. Ekspor POSTGRES_PASSWORD variabel lingkungan untuk dapat masuk ke instance PostgreSQL:

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

2. Buka jendela terminal lain dan ketik perintah berikut untuk meneruskan port Postgres:

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

Sistem mulai menangani koneksi port.

3. Minimalkan jendela penerusan port dan kembali ke yang sebelumnya. Ketik perintah untuk terhubung ke psql, klien PostgreSQL:

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

psql command prompt muncul, dan PostgreSQL siap menerima masukan Anda.

Menyebarkan PostgreSQL dengan Membuat Konfigurasi dari Awal

Konfigurasi manual Postgres di Kubernetes memungkinkan Anda untuk menyempurnakan konfigurasi penerapan Anda.

Langkah 1:Buat dan Terapkan ConfigMap

Sumber daya ConfigMap berisi data yang digunakan selama proses penerapan.

1. Buat file ConfigMap YAML di editor teks.

nano postgres-configmap.yaml

2. Bagian terpenting dari file adalah bagian data, tempat Anda memberikan nama untuk database , nama pengguna , dan sandi untuk masuk ke instance PostgreSQL.

Contoh menggunakan parameter berikut dalam file ConfigMap.

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

3. Simpan file dan keluar. Kemudian terapkan sumber daya dengan kubectl :

kubectl apply -f postgres-configmap.yaml

Sistem mengonfirmasi keberhasilan pembuatan file konfigurasi.

Langkah 2:Buat dan Terapkan Volume Penyimpanan Persisten dan Klaim Volume Persisten

1. Buat file YAML untuk konfigurasi penyimpanan.

nano postgres-storage.yaml

2. Metode penyebaran diagram Helm menggunakan dua file terpisah untuk Persistent Volume dan Persistent Volume Claim, tetapi Anda juga dapat menempatkan kedua konfigurasi dalam satu file, seperti pada contoh di bawah ini.

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. Simpan file dan keluar. Terapkan sumber daya dengan kubectl :

kubectl apply -f postgres-storage.yaml

Sistem mengonfirmasi keberhasilan pembuatan PV dan PVC.

4. Periksa apakah PVC terhubung ke PV dengan perintah berikut:

kubectl get pvc

Status PVC adalah Terikat , dan PVC siap digunakan dalam penerapan PostgreSQL.

Langkah 3:Buat dan Terapkan Penerapan PostgreSQL

1. Buat file YAML penerapan.

nano postgres-deployment.yaml

2. File penerapan berisi konfigurasi penerapan PostgreSQL dan menyediakan spesifikasi untuk container dan volume:

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. Simpan file dan keluar. Terapkan penerapan dengan kubectl :

kubectl apply -f postgres-deployment.yaml

Sistem mengonfirmasi keberhasilan pembuatan penerapan.

Langkah 4:Buat dan Terapkan Layanan PostgreSQL

1. Terakhir, buat file YAML untuk mengonfigurasi layanan PostgreSQL.

nano postgres-service.yaml

2. Tentukan jenis dan port layanan. Contoh menggunakan konfigurasi berikut:

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

3. Simpan file dan keluar. Terapkan konfigurasi dengan kubectl :

kubectl apply -f postgres-service.yaml

Sistem mengonfirmasi keberhasilan pembuatan layanan.

4. Gunakan perintah berikut untuk membuat daftar semua sumber daya pada sistem.

kubectl get all

Pod dan penerapan menunjukkan 1/1 status siap. Jumlah set replika yang diinginkan mencerminkan apa yang dikonfigurasi dalam file YAML penerapan.

Langkah 5:Hubungkan ke PostgreSQL

1. Ketika semua sumber daya sudah siap, gunakan kubectl exec untuk masuk ke instance PostgreSQL.

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

2. Sistem meminta kata sandi. Ketikkan kata sandi yang ditentukan di Langkah 1 dan tekan Enter . psql prompt perintah muncul.

Basis data sekarang siap menerima input pengguna.


Cent OS
  1. Cara Menginstal PostgreSQL di CentOS 7

  2. Cara men-deploy pod pertama Anda di Cluster Kubernetes

  3. Cara Menyebarkan PostgreSQL sebagai Wadah Docker

  1. Cara Menyebarkan PostgreSQL di Docker Container

  2. Cara Menyebarkan Elasticsearch di Kubernetes

  3. Cara Menyebarkan Instance WordPress di Kubernetes

  1. Cara Menyebarkan Cluster Redis di Kubernetes

  2. Cara Menyebarkan RabbitMQ di Kubernetes

  3. Cara Membuat Database di PostgreSQL