
Crunchy PostgreSQL operatoru testeleri ve kullanımı için örnek bir döküman sağlar; Öncelikle test ortamımız için Windows ortamında Vmware driver kullanarak minikube nasıl kurarız konusuna bakalım sonrasında bu Minikube üzerinde Crunch PostgreSQL operatörünü nasıl çalıştırırız konularını inceleyelim.
VMware Workstation kurulumunu yaptıktan sonra Windows PATH üzerinde vmrun.exe dosyasının olması gerekmektedir. Windows PATH değişkeninize C:\Program Files (x86)\VMware\VMware Workstation ekleyelim.

Sonrasında Docker driver yüklüyoruz,
Docker makine sürücüsü docker-machine-driver-vmware_windows_amd64.exe’yi https://github.com/machine-drivers/docker-machine-driver-vmware/releases adresinden indrelim.
C:\Program Files\docker-machine-driver konumunda bir klasör oluşturun .
docker-machine-driver-vmware_windows_amd64.exe dosyasını bu klasöre kopyalayın .
docker-machine-driver-vmware_windows_amd64.exe dosyasını docker-machine-driver-vmware.exe olarak yeniden adlandırın .
Bu klasörü yukarıdaki gibi Windows PATH değişkeninize ekleyin.
Kubectl kurulumunu yapalım;
Bu adımlar, Kurulum ve Kurulum kubectl’deki talimatlardan alınmıştır.
Windows/AMD64 için kubectl’in en son sürümünü indirin .
C:\Program Files\Kubectl konumunda bir klasör oluşturun .
kubectl.exe’yi bu klasöre ekleyin .
Bu klasörü Windows PATH değişkeninize ekleyin.
Kontrl edelim;
kubectl version --short
Start Minikube
minikube start --driver=vmware
Check status
minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured
Cluster Bilgilerini Kontrol edelim;
>kubectl cluster-info
Kubernetes control plane is running at https://192.168.9.129:8443
CoreDNS is running at https://192.168.9.129:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
Minikube stop ve delete işlemleri
>minikube stop
* Stopping node "minikube" ...
* 1 node stopped.
>minikube delete
* Deleting "minikube" in vmware ...
* Removed all traces of the "minikube" cluster.
Crunch Operatör Kurulumu için; Öncelikle github reposundan en güncel operatörü https://github.com/CrunchyData/postgres-operator-examples
Bir namespace oluşturalım
>kubectl create ns frk
namespace/frk created
Crunchydata postgres operator, crd ve monitoring tools komponentlerinin yükleyelim
>kubectl apply -k kustomize\install\namespace
namespace/postgres-operator created
Mevcut çalışanları kontrol edelim,
>kubectl -n postgres-operator get pods
NAME READY STATUS RESTARTS AGE
pgo-7c867985c-f9rwl 1/1 Running 0 45h
pgo-upgrade-69b5dfdc45-km7ct 1/1 Running 0 45h
Monitoring podunu ekleyelim;
>kubectl apply -k kustomize\monitoring
serviceaccount/alertmanager created
serviceaccount/grafana created
serviceaccount/prometheus-sa created
clusterrole.rbac.authorization.k8s.io/prometheus-cr created
clusterrolebinding.rbac.authorization.k8s.io/prometheus-crb created
configmap/alertmanager-config created
configmap/alertmanager-rules-config created
configmap/crunchy-prometheus created
configmap/grafana-dashboards created
configmap/grafana-datasources created
secret/grafana-secret created
service/crunchy-alertmanager created
service/crunchy-grafana created
service/crunchy-prometheus created
persistentvolumeclaim/alertmanagerdata created
persistentvolumeclaim/grafanadata created
persistentvolumeclaim/prometheusdata created
deployment.apps/crunchy-alertmanager created
deployment.apps/crunchy-grafana created
deployment.apps/crunchy-prometheus created
Tekrar kontrol edelim; alert manager, grafana ve prometheus un eklendiğini gözleyelim;
>kubectl -n postgres-operator get pods
NAME READY STATUS RESTARTS AGE
crunchy-alertmanager-5cd75b4f75-rnjzt 1/1 Running 0 2m4s
crunchy-grafana-64b9f9dcc-487j6 1/1 Running 0 2m4s
crunchy-prometheus-dc4cbff87-dxh4g 1/1 Running 0 2m4s
pgo-7c867985c-f9rwl 1/1 Running 0 45h
pgo-upgrade-69b5dfdc45-km7ct 1/1 Running 0 45h
Şimdi asıl hedefimiz olan postgresql clusterı oluşturalım;
>kubectl apply -k kustomize/postgres
postgrescluster.postgres-operator.crunchydata.com/frk created
Kontrol edelim;
>kubectl -n postgres-operator get pods
NAME READY STATUS RESTARTS AGE
crunchy-alertmanager-5cd75b4f75-rnjzt 1/1 Running 0 5m9s
crunchy-grafana-64b9f9dcc-487j6 1/1 Running 0 5m9s
crunchy-prometheus-dc4cbff87-dxh4g 1/1 Running 0 5m9s
frk-instance1-846x-0 0/4 Init:0/2 0 27s
frk-repo-host-0 0/2 Init:0/2 0 27s
pgo-7c867985c-f9rwl 1/1 Running 0 45h
pgo-upgrade-69b5dfdc45-km7ct 1/1 Running 0 45h
Şu an initialize olmakta bir sure sonra running olarak hazır olacaktır.
>kubectl -n postgres-operator get pods
NAME READY STATUS RESTARTS AGE
crunchy-alertmanager-5cd75b4f75-rnjzt 1/1 Running 0 57m
crunchy-grafana-64b9f9dcc-487j6 1/1 Running 0 57m
crunchy-prometheus-dc4cbff87-dxh4g 1/1 Running 0 57m
frk-backup-7dvp-2x8nr 0/1 Completed 0 49m
frk-instance1-846x-0 4/4 Running 0 53m
frk-repo-host-0 2/2 Running 0 53m
pgo-7c867985c-f9rwl 1/1 Running 0 46h
pgo-upgrade-69b5dfdc45-km7ct 1/1 Running 0 46h
IP adreslerini de göreceğimiz wide option ile checkyapalım;
>kubectl -n postgres-operator get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
crunchy-alertmanager-5cd75b4f75-rnjzt 1/1 Running 0 58m 10.244.0.7 minikube <none> <none>
crunchy-grafana-64b9f9dcc-487j6 1/1 Running 0 58m 10.244.0.5 minikube <none> <none>
crunchy-prometheus-dc4cbff87-dxh4g 1/1 Running 0 58m 10.244.0.6 minikube <none> <none>
frk-backup-7dvp-2x8nr 0/1 Completed 0 50m 10.244.0.10 minikube <none> <none>
frk-instance1-846x-0 4/4 Running 0 54m 10.244.0.8 minikube <none> <none>
frk-repo-host-0 2/2 Running 0 54m 10.244.0.9 minikube <none> <none>
pgo-7c867985c-f9rwl 1/1 Running 0 46h 10.244.0.3 minikube <none> <none>
pgo-upgrade-69b5dfdc45-km7ct 1/1 Running 0 46h 10.244.0.4 minikube <none> <none>
Postgres Database POD una bağlanalım;
>kubectl exec -it frk-instance1-846x-0 -n postgres-operator -c database -- bash
bash-4.4$ psql
psql (14.6)
Type "help" for help.
postgres=#
Peki bu postgresql pod ve bu postgresql cluster içerisindeki config bilgierini nereden almaktadır.
C:\postgres-operator-examples-main\kustomize\postgres
λ more postgres.yaml
apiVersion: postgres-operator.crunchydata.com/v1beta1
kind: PostgresCluster
metadata:
name: frk
spec:
image: registry.developers.crunchydata.com/crunchydata/crunchy-postgres:ubi8-14.6-2
postgresVersion: 14
instances:
- name: instance1
dataVolumeClaimSpec:
accessModes:
- "ReadWriteOnce"
resources:
requests:
storage: 1Gi
backups:
pgbackrest:
image: registry.developers.crunchydata.com/crunchydata/crunchy-pgbackrest:ubi8-2.41-2
repos:
- name: repo1
volume:
volumeClaimSpec:
accessModes:
- "ReadWriteOnce"
resources:
requests:
storage: 1Gi
Peki buradaki POD larımıza remote bağlantı yapabilmek için ne yapmalıyız,
kubectl port forwarding işlemi ile bunu sağlayabiliriz.
>kubectl get pod -n postgres-operator -o wide
NAME READY STATUS RESTARTS AGE IP
crunchy-alertmanager-5cd75b4f75-rnjzt 1/1 Running 1 (90m ago) 22h 10.244.0.19
crunchy-grafana-64b9f9dcc-487j6 1/1 Running 1 (90m ago) 22h 10.244.0.14
crunchy-prometheus-dc4cbff87-dxh4g 1/1 Running 1 (90m ago) 22h 10.244.0.21
frk-backup-7dvp-2x8nr 0/1 Completed 0 22h 10.244.0.10
frk-instance1-846x-0 4/4 Running 4 (90m ago) 22h 10.244.0.17
frk-repo-host-0 2/2 Running 2 (90m ago) 22h 10.244.0.20
pgo-7c867985c-f9rwl 1/1 Running 2 (90m ago) 2d19h 10.244.0.18
pgo-upgrade-69b5dfdc45-km7ct 1/1 Running 3 (90m ago) 2d19h 10.244.0.16
IP leri görüyoruz fakat bu IP lere makine üzerinden erişemiyoruz;
C:\Users\aa>ping 10.244.0.17
Pinging 10.244.0.17 with 32 bytes of data:
Reply from 213.14.0.231: Destination net unreachable.
Reply from 213.14.0.231: Destination net unreachable.
Reply from 213.14.0.231: Destination net unreachable.
Reply from 213.14.0.231: Destination net unreachable.
Ping statistics for 10.244.0.17:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Bu IP lere erişimi için bir gateway tanımlayıp kubectl port forwarding yapmamız gerekmektedir;
C:\postgres-operator-examples-main>kubectl apply -f deployment-files/gateway/gateway-postgresql.yaml -n postgres-operator
postgrescluster.postgres-operator.crunchydata.com/gateway-postgresql created
Bir yanıt yazın