https://dev.to/dbazhenov/running-pgadmin-to-manage-a-postgresql-cluster-in-kubernetes-616
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.
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>
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.
I used the access data that Percona Everest provided me for the Postgres cluster created using it.
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.
Remove pgAdmin
Once you are done with pgAdmin and PostgreSQL, all you need to do is to
Stop port-forwarding by simply pressing CTRL + C in the terminal.
Remove pgAdmin Deployment and Service by running the command.
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 minikube, k3d or kind.
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.
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>
Sekarang saya dapat membuka localhost:5050 di peramban.
Setelah itu, Anda hanya perlu menambahkan koneksi ke Postgres dengan mengklik Add New Server.
Saya menggunakan data akses yang disediakan Percona Everest untuk kluster Postgres yang dibuat menggunakannya.
Selamat! Kita dapat mengelola Postgres menggunakan antarmuka pgAdmin atau kueri SQL. Melihat database, skema, dan tabel serta menulis kueri SQL menjadi sangat mudah.
Hapus pgAdmin
Setelah Anda selesai dengan pgAdmin dan PostgreSQL, yang perlu Anda lakukan adalah
Hentikan penerusan porta cukup dengan menekan CTRL + C di terminal.
Hapus pgAdmin Deployment dan Layanan dengan menjalankan perintah.
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