Opis klastra OKD OpenShift 4.19
Opis klastra OKD można znaleźć we wpisie https://itadmin.vblog.ovh/klaster-okd-4-19-openshift-na-proxmox-9-opis-instalacjii-konfiguracji/
Rola maszyny database-1 w klastrze OKD OpenShift 4.19
Maszyna database-1 będzie pełniła rolę silnika bazo danowego dla aplikacji OpenShift na klastrze OKD 4.19.
| LP | Nazwa DNS | Adres ip | vCPU | vRAM | vHDD | System Operacyjny | Funkcja |
|---|---|---|---|---|---|---|---|
| 1 | dns1.okdlab.local | 192.168.40.10 | 2 | 2 GB | 16 GB | Fedora Server 43 | DNS dla klastra |
| 2 | proxy.okdlab.local | 192.168.40.15 | 2 | 2 GB | 16 GB | Fedora Server 43 | HAProxy / Load balancer / instalacja |
| 3 | storage.okdlab.local | 192.168.40.20 | 2 | 2 GB | 16/64/128 GB | Fedora Server 43 | Storage NFS dla klastra, registry OpenShift |
| 4 | database-1.okdlab.local | 192.168.40.25 | 2 | 4 GB | 32 GB | Fedora Server 43 | Serwer baz danych PostgreSQL |
| 5 | database-2.okdlab.local | 192.168.40.26 | 2 | 4 GB | 32 GB | Fedora Server 43 | Serwer baz danych MariaDB |
| 6 | bastion.okdlab.local | 192.168.40.30 | 4 | 4 GB | 128 GB | Fedora Server 43 | Instalacja i zarządzanie klastrem OKD |
| 7 | gitea.okdlab.local | 192.168.40.35 | 4 | 8 GB | 256 GB | Fedora Server 43 | Gitea |
| 8 | jenkins.okdlab.local | 192.168.40.37 | 8 | 16 GB | 256 GB | Fedora Server 43 | Jenkins |
| 9 | bootstrap.testcluster.okdlab.local | 192.168.40.50 | 4 | 16 GB | 128 GB | CentosOS Stream 9 | Bootstrap node |
| 10 | control-plane-1.testcluster.okdlab.local | 192.168.40.51 | 4 | 16 GB | 128 GB | CentosOS Stream 9 | Master node |
| 11 | control-plane-2.testcluster.okdlab.local | 192.168.40.52 | 4 | 16 GB | 128 GB | CentosOS Stream 9 | Master node |
| 12 | control-plane-3.testcluster.okdlab.local | 192.168.40.53 | 4 | 16 GB | 128 GB | CentosOS Stream 9 | Master node |
| 13 | compute-1.testcluster.okdlab.local | 192.168.40.61 | 4 | 16 GB | 256 GB | CentosOS Stream 9 | Worker node |
| 14 | compute-2.testcluster.okdlab.local | 192.168.40.62 | 4 | 16 GB | 256 GB | CentosOS Stream 9 | Worker node |
| 15 | compute-3.testcluster.okdlab.local | 192.168.40.63 | 4 | 16 GB | 256 GB | CentosOS Stream 9 | Worker node |
Przygotowanie maszyny wirtualnej database-1 (4025) w Proxmox 9 GUI

Minimalne wymagania PostgreSQL to 1 procesor / 2 GB RAM. Na potrzeby homelab i aplikacji OpenShift zdefiniowana parametry:
- 2 x vCPU
- 4 GB vRAM
- 32 GB vHDD

W oknie instalatora podajemy parametry:
- ipv4 192.168.40.25/24 , brama 192.168.40.1 , dns: 192.168.40.10 , search domains: okdlab.local
- włączamy konto roota
- wybieramy minimalny zestaw narzędzie w Software Selection (Fedora Custom Operating System)
- installation destination domyślnie
- time & date Europe/Warsaw
Przygotowanie maszyny wirtualnej database-1 do pracy po zakończeniu instalacji
Po zakończonej instalacji, przed instalacją PostgreSQL warto odpowiednio przygotować maszynę database-1 do pracy wg. opisu na stronie:
- https://itadmin.vblog.ovh/klaster-okd-4-19-openshift-proxmox-9-haproxy/#Ustawienia_mirroru_repo_do_aktualizacji_Fedory
- https://itadmin.vblog.ovh/klaster-okd-4-19-openshift-proxmox-9-haproxy/#Aktualizacja_systemu_i_instalacja_podstawowych_narzedzi
- https://itadmin.vblog.ovh/klaster-okd-4-19-openshift-proxmox-9-haproxy/#Ustawienie_swap
- https://itadmin.vblog.ovh/klaster-okd-4-19-openshift-proxmox-9-haproxy/#Konfiguracja_fastfetch
- https://itadmin.vblog.ovh/klaster-okd-4-19-openshift-proxmox-9-haproxy/#Weryfikacja_bledow_przy_starcie_serwera_dmesg
- https://itadmin.vblog.ovh/klaster-okd-4-19-openshift-proxmox-9-haproxy/#Sprawdzenie_ustawien_strefy_czasowej_i_synchronizacji_czasu
Instalacja i konfiguracja PostgreSQL na maszynie database-1
# Instalacja PostgreSQL na Fedora Server 43 sudo dnf update -y sudo dnf install -y postgresql-server postgresql-contrib # Na rodzinie Red Hat/Fedora instalacja zwykle nie inicjalizuje bazy automatycznie sudo postgresql-setup --initdb sudo systemctl enable --now postgresql sudo systemctl status postgresql --no-pager
Ustaw listen_addresses (czyli: na czym PostgreSQL ma nasłuchiwać)
sudo nano /var/lib/pgsql/data/postgresql.conf
listen_addresses = '*' port = 5432
Ustaw reguły dostępu w pg_hba.conf (najważniejszy etap bezpieczeństwa), Na dole sekcja # LAN klastra.
sudo nano /var/lib/pgsql/data/pg_hba.conf7
# TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all peer # IPv4 local connections: host all all 127.0.0.1/32 ident # IPv6 local connections: host all all ::1/128 ident # Allow replication connections from localhost, by a user with the # replication privilege. local replication all peer host replication all 127.0.0.1/32 ident host replication all ::1/128 ident # LAN klastra host all all 192.168.40.0/24 scram-sha-256
Konfiguracja firewall i SELinux
# Restart PostgreSQL po zmianach sudo systemctl restart postgresql sudo systemctl status postgresql --no-page # Sprawdź, czy słucha na porcie: ss -lntp | grep 54 # Otwórz port w firewalld (Fedora firewall) sudo firewall-cmd --permanent --add-port=5432/tcp sudo firewall-cmd --reload # SELinux sudo semanage port -a -t postgresql_port_t -p tcp 5433
Więcej przydatnych informacji:
Fedora Docs – Setting up PostgreSQL Database Server:
https://docs.fedoraproject.org/en-US/fedora-server/services/postgresql-setup/
Fedora Docs – Quick Docs PostgreSQL:
https://docs.fedoraproject.org/en-US/quick-docs/postgresql/
PostgreSQL docs – pg_hba.conf:
https://www.postgresql.org/docs/current/auth-pg-hba-conf.html
Firewalld docs – open a port/service:
https://firewalld.org/documentation/howto/open-a-port-or-service.html
Przykładowa baza danych dba_users
Założenie bazy dba_users i tabeli users.
[root@database-1 ~]# sudo -iu postgres psql
-- 1) baza danych
CREATE DATABASE dba_users;
-- 2) przełącz się na nową bazę
\c dba_users
You are now connected to database "dba_users" as user "postgres".
-- 3) tabela users
CREATE TABLE public.users (
user_id int GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
user_name varchar(64) NOT NULL,
user_email varchar(64) NOT NULL,
user_created timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
user_age int
);
-- (opcjonalnie) unikalny email (częsta praktyka)
CREATE UNIQUE INDEX users_user_email_uq ON public.users (user_email);
-- szybki test
INSERT INTO public.users (user_name, user_email, user_age)
VALUES ('Jan Kowalski', '[email protected]', 30);
--- podgląd danych
SELECT * FROM public.users;
--- lista wszystkich baz danych
\l
List of databases
Name | Owner | Encoding | Locale Provider | Collate | Ctype | Locale | ICU Rules | Access privileges
-----------+----------+----------+-----------------+-------------+-------------+--------+-----------+-----------------------
dba_users | postgres | UTF8 | libc | en_US.UTF-8 | en_US.UTF-8 | | |
postgres | postgres | UTF8 | libc | en_US.UTF-8 | en_US.UTF-8 | | |
template0 | postgres | UTF8 | libc | en_US.UTF-8 | en_US.UTF-8 | | | =c/postgres +
| | | | | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | libc | en_US.UTF-8 | en_US.UTF-8 | | | =c/postgres +
| | | | | | | | postgres=CTc/postgresNadanie wybranych uprawnień użytkownikowi usr_editor do bazy dba_users
sudo -iu postgres psql -- 1) utwórz użytkownika z hasłem CREATE ROLE usr_editor WITH LOGIN PASSWORD '1234abcd!'; -- 2) (zalecane) ogranicz go do tylko tej bazy: -- pozwól się łączyć do bazy dba_users GRANT CONNECT ON DATABASE dba_users TO usr_editor; -- 3) przejdź do bazy, bo uprawnienia do tabel nadaje się "w kontekście bazy" \c dba_users -- 4) pozwól korzystać ze schematu public (bez tego często nie zadziała dostęp do tabel) GRANT USAGE ON SCHEMA public TO usr_editor; -- 5) CRUD na tabeli users (bez DROP/ALTER/TRUNCATE itd.) GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE public.users TO usr_editor; -- 6) jeśli kiedykolwiek użyjesz SERIAL albo sekwencje: dla IDENTITY zwykle nie musisz, -- ale bywa przydatne jawne przyznanie uprawnień do sekwencji (nie zaszkodzi): GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO usr_editor;
Weryfikacja połączenia zdalnego z bazą danych dba_users
Poniższy przykład instalacji postgresql dotyczy Fedora Server 43.
sudo dnf install -y postgresql
[bastuser@bastion ~]$ psql -h 192.168.40.25 -U usr_editor -d dba_users
Password for user usr_editor:
psql (18.1)
Type "help" for help.
dba_users=> SELECT * FROM users;
user_id | user_name | user_email | user_created | user_age
---------+--------------+-----------------+----------------------------+----------
1 | Jan Kowalski | [email protected] | 2026-02-12 19:40:26.315788 | 30
(1 row)

