Minggu, 01 September 2024

KUBERNETES-run pgadmin

 https://dev.to/dbazhenov/running-pgadmin-to-manage-a-postgresql-cluster-in-kubernetes-616

Running pgAdmin to Manage a PostgreSQL Cluster on Kubernetes

Let’s say you need to do something in PostgreSQL in Kubernetes, and it is inconvenient to work with the database in the terminal, or you need to become more familiar with PostgreSQL or SQL commands. In that case, this article comes in handy.

I explain how to run pgAdmin in a Kubernetes cluster to manage PostgreSQL databases deployed in that cluster. This is useful if your PostgreSQL cluster does not have external access and is only available inside a Kubernetes cluster.

pgAdmin is a popular open source tool for managing Postgres databases. It is convenient for creating databases, schemas, tables, viewing data, executing SQL queries, and much more in a user-friendly web interface.

pgAdmin PostgreSQL Kubernetes Welcome

Running pgAdmin

We need one file that contains deployment and service resources to run pgAdmin in k8s. Let's call it pgadmin.yaml.

pgadmin.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: pgadmin-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: pgadmin
  template:
    metadata:
      labels:
        app: pgadmin
    spec:
      containers:
        - name: pgadmin
          image: dpage/pgadmin4
          ports:
            - containerPort: 80
          env:
            - name: PGADMIN_DEFAULT_EMAIL
              value: admin@example.com
            - name: PGADMIN_DEFAULT_PASSWORD
              value: admin
---
apiVersion: v1
kind: Service
metadata:
  name: pgadmin-service
spec:
  selector:
    app: pgadmin
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80

Note that the middle of the file contains the login and password for logging into the pgAdmin panel.

          env:
            - name: PGADMIN_DEFAULT_EMAIL
              value: admin@example.com
            - name: PGADMIN_DEFAULT_PASSWORD
              value: admin

We need to deploy pgAdmin using this file by running the command.

kubectl apply -f pgadmin.yaml -n <namespace>

Let's print out the list of pods in our cluster to get the name pgadmin pod.

kubectl get pods -n <namespace>

Now, we just need to run port forwarding for the pgAdmin pod on a free port that will open in the browser. I use port 5050.

kubectl port-forward pgadmin-deployment-***-*** 5050:80 -n <namespace>

pgAdmin deployment

I can open localhost:5050 in a browser now.

After that, you only need to add a connection to Postgres by clicking Add New Server.

pgAdmin Dashboard

I used the access data that Percona Everest provided me for the Postgres cluster created using it.

Percona Everest PostgreSQL

pgAdmin Add New Server

Congratulations! We can manage Postgres using the pgAdmin interface or SQL queries. Viewing databases, schemas, and tables and writing SQL queries has become very convenient.

pgAdmin k8s SQL

pgAdmin k8s Select

Remove pgAdmin

Once you are done with pgAdmin and PostgreSQL, all you need to do is to

  1. Stop port-forwarding by simply pressing CTRL + C in the terminal.

  2. Remove pgAdmin Deployment and Service by running the command.

Remove pgAdmin

About the PostgreSQL cluster on Kubernetes used in the article

In this post, I used the Postgres cluster with three nodes created on Google Kubernetes Engine (GKE) using Percona Everest.

Percona Everest is an open source platform that allows you to provision and manage database clusters. I recently wrote about Percona Everest in A New Way to Provision Databases on Kubernetes. You do not need to worry about PostgreSQL cluster installation and configuration, backups, recovery, or scaling; you can do it in the interface. It enables multi-database and multi-cluster configurations and can be deployed on any Kubernetes infrastructure in the cloud or on-premises.

Documentation: Create Kubernetes cluster on Google Kubernetes Engine (GKE)

You can use any other cloud or create a local Kubernetes cluster using minikubek3d or kind.

👋 Before you go

Your next step

Do your career a favor. Join DEV.

It takes one minute and is worth it for your career.


=====================================================================

Katakanlah Anda perlu melakukan sesuatu di PostgreSQL di Kubernetes, dan tidak nyaman untuk bekerja dengan database di terminal, atau Anda perlu lebih mengenal perintah PostgreSQL atau SQL. Dalam hal ini, artikel ini akan sangat berguna.

Saya menjelaskan cara menjalankan pgAdmin di kluster Kubernetes untuk mengelola database PostgreSQL yang diterapkan di kluster tersebut. Ini berguna jika kluster PostgreSQL Anda tidak memiliki akses eksternal dan hanya tersedia di dalam kluster Kubernetes.

pgAdmin adalah alat sumber terbuka yang populer untuk mengelola basis data Postgres. Alat ini mudah digunakan untuk membuat basis data, skema, tabel, melihat data, menjalankan kueri SQL, dan banyak lagi dalam antarmuka web yang mudah digunakan.

pgAdmin PostgreSQL Kubernetes Selamat datang

Menjalankan pgAdmin

Kita memerlukan satu berkas yang berisi sumber daya penyebaran dan layanan untuk menjalankan pgAdmin di k8s. Sebut saja pgadmin.yaml.

pgadmin.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: pgadmin-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: pgadmin
  template:
    metadata:
      labels:
        app: pgadmin
    spec:
      containers:
        - name: pgadmin
          image: dpage/pgadmin4
          ports:
            - containerPort: 80
          env:
            - name: PGADMIN_DEFAULT_EMAIL
              value: admin@example.com
            - name: PGADMIN_DEFAULT_PASSWORD
              value: admin
---
apiVersion: v1
kind: Service
metadata:
  name: pgadmin-service
spec:
  selector:
    app: pgadmin
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80

Perhatikan bahwa bagian tengah berkas berisi login dan kata sandi untuk masuk ke panel pgAdmin.

          env:
            - name: PGADMIN_DEFAULT_EMAIL
              value: admin@example.com
            - name: PGADMIN_DEFAULT_PASSWORD
              value: admin

Kita perlu menyebarkan pgAdmin menggunakan berkas ini dengan menjalankan perintah.

kubectl apply -f pgadmin.yaml -n <namespace>

Mari cetak daftar pod dalam klaster kita untuk mendapatkan nama pgadmin pod.

kubectl get pods -n <namespace>

Sekarang, kita hanya perlu menjalankan penerusan port untuk pod pgAdmin pada port bebas yang akan terbuka di browser. Saya menggunakan port 5050.

kubectl port-forward pgadmin-deployment-***-*** 5050:80 -n <namespace>

penyebaran pgAdmin

Sekarang saya dapat membuka localhost:5050 di peramban.

Setelah itu, Anda hanya perlu menambahkan koneksi ke Postgres dengan mengklik Add New Server.

Dasbor pgAdmin

Saya menggunakan data akses yang disediakan Percona Everest untuk kluster Postgres yang dibuat menggunakannya.

Percona Everest Bahasa Indonesia

pgAdmin Tambahkan Server Baru

Selamat! Kita dapat mengelola Postgres menggunakan antarmuka pgAdmin atau kueri SQL. Melihat database, skema, dan tabel serta menulis kueri SQL menjadi sangat mudah.

pgAdmin k8s SQL

pgAdmin k8s Pilih

Hapus pgAdmin

Setelah Anda selesai dengan pgAdmin dan PostgreSQL, yang perlu Anda lakukan adalah

  1. Hentikan penerusan porta cukup dengan menekan CTRL + C di terminal.

  2. Hapus pgAdmin Deployment dan Layanan dengan menjalankan perintah.

Hapus pgAdmin

Tentang cluster PostgreSQL pada Kubernetes yang digunakan dalam artikel

Dalam posting ini, saya menggunakan kluster Postgres dengan tiga node yang dibuat pada Google Kubernetes Engine (GKE) menggunakan Percona Everest .

Percona Everest adalah platform sumber terbuka yang memungkinkan Anda untuk menyediakan dan mengelola kluster basis data. Saya baru-baru ini menulis tentang Percona Everest dalam Cara Baru untuk Menyediakan Basis Data di Kubernetes . Anda tidak perlu khawatir tentang instalasi dan konfigurasi kluster PostgreSQL, pencadangan, pemulihan, atau penskalaan; Anda dapat melakukannya di antarmuka. Antarmuka ini memungkinkan konfigurasi multi-basis data dan multi-kluster dan dapat digunakan pada infrastruktur Kubernetes apa pun di cloud atau lokal.

Dokumentasi: Membuat kluster Kubernetes di Google Kubernetes Engine (GKE)

Anda dapat menggunakan cloud lain atau membuat klaster Kubernetes lokal menggunakan minikube , k3d atau kind .

Tidak ada komentar:

Posting Komentar