Klaster OKD 4.19 (OpenShift) na Proxmox 9 – DNS

Instalacja i konfiguracja maszyny wirtualnej

Poniższy opis nawiązuje do wpisu https://itadmin.vblog.ovh/klaster-okd-openshift-na-maszynach-wirtualnych-proxmox-przygotowanie-dns/
Została przeprowadzona procedura aktualizacji z Fedora 41 do Fedora 43 opisane we wpisie https://itadmin.vblog.ovh/aktualizacja-fedora-41-do-fedora-43/ oraz zmodyfikane ustawienie stref dns w domenie okdlab.local.

Modyfikacja strefy forward i reverse

Względem opisu na stronie https://itadmin.vblog.ovh/klaster-okd-openshift-na-maszynach-wirtualnych-proxmox-przygotowanie-dns/ uporządkowano istniejące i dodano nowe rekordy:

  • ldap.okdlab.local – pod przyszłościowe autoryzowanie użytkowników na serwerze LDAP
  • proxy.okdlab.local – rozdzielenie roli bastionu i proxy oraz load balancera dla OpenShoift opartego na haproxy. Dodatkowo znajdzie się tam konfiguracja ignitions udostępniana przez serwer www Apache
  • gitea.okdlab.local. – pod przyszłościowe rozwiązania CI/CD
  • jenkins.okdlab.local. – pod przyszłościowe rozwiązania CI/CD

Forward zone (db.okdlab.local)

To jest dokładnie to, czego installer i klaster oczekują w klasycznym układzie z HAProxy/LB na jednym IP.

$TTL    4h
@       IN      SOA     dns1.okdlab.local. root.okdlab.local. (
         2026013102     ; Serial
                 2H     ; Refresh
                30M     ; Retry
                 2W     ; Expire
                 1W     ; Minimum TTL
)

; name servers - NS records
     IN      NS      dns1.okdlab.local.

; name servers, proxy - A records
dns1.okdlab.local.             IN      A       192.168.40.10
ldap.okdlab.local.             IN      A       192.168.40.12
proxy.okdlab.local.            IN      A       192.168.40.15

; bastion, storage A records
storage.okdlab.local.          IN      A       192.168.40.20
database-1.okdlab.local.       IN      A       192.168.40.25
database-2.okdlab.local.       IN      A       192.168.40.26
bastion.okdlab.local.          IN      A       192.168.40.30

; devops A records
gitea.okdlab.local.            IN      A       192.168.40.35
jenkins.okdlab.local.          IN      A       192.168.40.37

; OpenShift Container Platform Cluster - A records
bootstrap.testcluster.okdlab.local.        IN      A      192.168.40.50
control-plane-1.testcluster.okdlab.local.  IN      A      192.168.40.51
control-plane-2.testcluster.okdlab.local.  IN      A      192.168.40.52
control-plane-3.testcluster.okdlab.local.  IN      A      192.168.40.53
compute-1.testcluster.okdlab.local.        IN      A      192.168.40.61
compute-2.testcluster.okdlab.local.        IN      A      192.168.40.62
compute-3.testcluster.okdlab.local.        IN      A      192.168.40.63

; OpenShift internal cluster IPs - A records
api.testcluster.okdlab.local.        IN    A    192.168.40.15
api-int.testcluster.okdlab.local.    IN    A    192.168.40.15
*.apps.testcluster.okdlab.local.     IN    A    192.168.40.15
etcd-0.testcluster.okdlab.local.     IN    A    192.168.40.51
etcd-1.testcluster.okdlab.local.     IN    A    192.168.40.52
etcd-2.testcluster.okdlab.local.     IN    A    192.168.40.53
console-openshift-console.apps.testcluster.okdlab.local.     IN     A     192.168.40.15
oauth-openshift.apps.testcluster.okdlab.local.               IN     A     192.168.40.15

; OpenShift internal cluster IPs - SRV records
_etcd-server-ssl._tcp.testcluster.okdlab.local.    86400     IN    SRV     0    10    2380    etcd-0.testcluster.okdlab.local.
_etcd-server-ssl._tcp.testcluster.okdlab.local.    86400     IN    SRV     0    10    2380    etcd-1.testcluster.okdlab.local.
_etcd-server-ssl._tcp.testcluster.okdlab.local.    86400     IN    SRV     0    10    2380    etcd-2.testcluster.okdlab.local.

Reverse zone (db.192.168.40)

To jest dokładnie to, czego installer i klaster oczekują w klasycznym układzie z HAProxy/LB na jednym IP.

$TTL    4h
@       IN      SOA     dns1.okdlab.local. root.okdlab.local. (
         2026013102     ; Serial
                 2H     ; Refresh
                30M     ; Retry
                 2W     ; Expire
                 1W     ; Minimum TTL
)

; name servers - NS records
@     IN    NS     dns1.okdlab.local.
10    IN    PTR    dns1.okdlab.local.
12    IN    PTR    ldap.okdlab.local.
15    IN    PTR    proxy.okdlab.local.

; name servers - PTR records
20    IN    PTR    storage.okdlab.local.
25    IN    PTR    database-1.okdlab.local.
26    IN    PTR    database-2.okdlab.local.
30    IN    PTR    bastion.okdlab.local.
35    IN    PTR    gitea.okdlab.local.
37    IN    PTR    jenkins.okdlab.local.

; OpenShift Container Platform Cluster - PTR records
50    IN    PTR    bootstrap.testcluster.okdlab.local.
51    IN    PTR    control-plane-1.testcluster.okdlab.local.
52    IN    PTR    control-plane-2.testcluster.okdlab.local.
53    IN    PTR    control-plane-3.testcluster.okdlab.local.
61    IN    PTR    compute-1.testcluster.okdlab.local.
62    IN    PTR    compute-2.testcluster.okdlab.local.
63    IN    PTR    compute-3.testcluster.okdlab.local.

Sprawdzenie konfiguracji named i wdrożenie zmian

Teraz musimy zweryfikować poprawność konfiguracji stref oraz przeładować konfigurację demona named.

sudo named-checkconf
sudo named-checkzone okdlab.local /etc/named/zones/db.okdlab.local
sudo named-checkzone 40.168.192.in-addr.arpa /etc/named/zones/db.192.168.40
sudo systemctl reload named
sudo systemctl restart named
sudo systemctl status named --no-pager
sudo journalctl -u named -n 50 --no-pager

Weryfikacja działania strefy dns

Z poziomu konsoli sprawdzamy przykładowe rekordy dns

dig @192.168.40.10 api.testcluster.okdlab.local +short
dig @192.168.40.10 -x 192.168.40.15 +short
dig @192.168.40.10 _etcd-server-ssl._tcp.testcluster.okdlab.local SRV