Klaster OKD 4.19 (OpenShift) na Proxmox 9- Bootstrap Master Worker

Spis treść

Przygotowanie maszyn wirtualnych Bootstrap, Master, Worker

Na podstawie poniższej tabeli należy utworzyć maszyny wirtualnej od pozycji 9 do 15, z nazwami z pierwszego członu adresu dns np. control-plane-1 oraz id proxmox 9 równym trzeciemu i czwartemu oktetowi adresu ip. np. 4051. Wszystkie maszyny mają identyczną konfigurację vCPU i vRAM z wyjątkiem rozmiar dysku dla maszyn typu Worker wynoszącym 256 GB. Ze strony https://cloud.centos.org/centos/scos/9/prod/streams/9.0.20250510-0/x86_64/ należy pobrać do isostore Proxmox 9: scos-9.0.20250510-0-live-iso.x86_64.iso

LPNazwa DNSAdres ipvCPUvRAMvHDDSystem OperacyjnyFunkcja
1dns1.okdlab.local192.168.40.1022 GB16 GBFedora Server 43DNS dla klastra
2proxy.okdlab.local192.168.40.1522 GB16 GBFedora Server 43HAProxy / Load balancer / instalacja
3storage.okdlab.local192.168.40.2022 GB16/64/128 GBFedora Server 43Storage NFS dla klastra, registry OpenShift
4database-1.okdlab.local192.168.40.2524 GB32 GBFedora Server 43Serwer baz danych PostgreSQL
5database-2.okdlab.local192.168.40.2624 GB32 GBFedora Server 43Serwer baz danych MariaDB
6bastion.okdlab.local192.168.40.3044 GB128 GBFedora Server 43Instalacja i zarządzanie klastrem OKD
7gitea.okdlab.local192.168.40.3548 GB256 GBFedora Server 43Gitea
8jenkins.okdlab.local192.168.40.37816 GB256 GBFedora Server 43Jenkins
9bootstrap.testcluster.okdlab.local192.168.40.50416 GB128 GBCentosOS Stream 9Bootstrap node
10control-plane-1.testcluster.okdlab.local192.168.40.51416 GB128 GBCentosOS Stream 9Master node
11control-plane-2.testcluster.okdlab.local192.168.40.52416 GB128 GBCentosOS Stream 9Master node
12control-plane-3.testcluster.okdlab.local192.168.40.53416 GB128 GBCentosOS Stream 9Master node
13compute-1.testcluster.okdlab.local192.168.40.61416 GB256 GBCentosOS Stream 9Worker node
14compute-2.testcluster.okdlab.local192.168.40.62416 GB256 GBCentosOS Stream 9Worker node
15compute-3.testcluster.okdlab.local192.168.40.63416 GB256 GBCentosOS Stream 9Worker node

Na przykładzie maszyny Bootstrap pokazana jest przykładowa konfiguracja w Proxmox 9.

Tworzymy nową maszynę wirtualną o id 4050 i nazwie bootstrap podanymi parametrami:

  • Machine : q35, Qemu Agent (włączone)
  • 128 GB HDD, SCSI VirtIO Single, Cache: Write Back
  • 4 vCPU – 1 x Sockets , Type: Host
  • 16 GB RAM , Balloning Device (włączone)
  • Bridge: vmbr4, Model: VirtIO

Po uruchomieniu do konsoli

  • ustawiamy sieć
  • ustawiamy nazwę
  • uruchamiamy instalator z odpowiednimi dla danej maszyny parametrami

Ustawienie sieci i instalacja dla maszyny Bootstrap

sudo nmcli con mod "Wired connection 1" \
  ipv4.addresses "192.168.40.50/24" \
  ipv4.gateway "192.168.40.1" \
  ipv4.dns "192.168.40.10" \
  ipv4.dns-search "testcluster.okdlab.local okdlab.local" \
  ipv4.method manual

sudo nmcli con down "Wired connection 1"
sudo nmcli con up "Wired connection 1"

sudo hostnamectl set-hostname bootstrap.testcluster.okdlab.local
hostnamectl

sudo coreos-installer install /dev/sda \
  --ignition-url http://192.168.40.15:8080/okd4/bootstrap.ign \
  --image-url http://192.168.40.15:8080/okd4/scos.raw.gz \
  --insecure-ignition \
  --insecure \
  --copy-network

Po uruchomieniu instalacji należy poczekać aż pojawi się informacja: Install complete wydać polecnie sudo reboot a następnie odmontować obraz iso z maszyny wirtualnej.

Gdy już pojawi się okno logowania to logujemy się na maszynie bastion

i możemy zgodnie z opisem na tej stronie https://itadmin.vblog.ovh/klaster-okd-openshift-na-maszynach-wirtualnych-proxmox-uruchomienie-maszyny-bootstrap/#3-weryfikacja-poprawno%C5%9Bci-dzia%C5%82ania-maszyny-bootstrap , diagnozować ewentualne problemy.

ssh -i /home/bastuser/ssh/id_ed25519 [email protected]

journalctl -b -f -u release-image.service -u bootkube.service

Ustawienie sieci i instalacja dla maszyny Master 1,2,3

sudo nmcli con mod "Wired connection 1" \
  ipv4.addresses "192.168.40.51/24" \
  ipv4.gateway "192.168.40.1" \
  ipv4.dns "192.168.40.10" \
  ipv4.dns-search "testcluster.okdlab.local okdlab.local" \
  ipv4.method manual

sudo nmcli con down "Wired connection 1"
sudo nmcli con up "Wired connection 1"

sudo hostnamectl set-hostname control-plane-1.testcluster.okdlab.local
hostnamectl

sudo coreos-installer install /dev/sda \
  --ignition-url http://192.168.40.15:8080/okd4/master.ign \
  --image-url http://192.168.40.15:8080/okd4/scos.raw.gz \
  --insecure-ignition \
  --insecure \
  --copy-network

Po uruchomieniu instalacji należy poczekać aż pojawi się informacja: Install complete wydać polecnie sudo reboot a następnie odmontować obraz iso z maszyny wirtualnej.
Więcej informacji o monitorowaniu przebiegu instalacji klastra można znaleźć na stronie https://itadmin.vblog.ovh/klaster-okd-openshift-na-maszynach-wirtualnych-proxmox-zakonczenie-instalacji/

# na maszynie bastion
ssh -i /home/bastuser/.ssh/id_ed25519 [email protected]
ssh -i /home/bastuser/.ssh/id_ed25519 [email protected]
ssh -i /home/bastuser/.ssh/id_ed25519 [email protected]
# na dowolnym control-plane
journalctl -b -f -u kubelet.service

Ustawienie sieci i instalacja dla maszyny Worker 1,2,3

sudo nmcli con mod "Wired connection 1" \
  ipv4.addresses "192.168.40.61/24" \
  ipv4.gateway "192.168.40.1" \
  ipv4.dns "192.168.40.10" \
  ipv4.dns-search "testcluster.okdlab.local okdlab.local" \
  ipv4.method manual

sudo nmcli con down "Wired connection 1"
sudo nmcli con up "Wired connection 1"

sudo hostnamectl set-hostname compute-1.testcluster.okdlab.local
hostnamectl

sudo coreos-installer install /dev/sda \
  --ignition-url http://192.168.40.15:8080/okd4/worker.ign \
  --image-url http://192.168.40.15:8080/okd4/scos.raw.gz \
  --insecure-ignition \
  --insecure \
  --copy-network

Monitorowanie przebiegu instalacji klastra

Więcej informacji na stronie https://itadmin.vblog.ovh/klaster-okd-openshift-na-maszynach-wirtualnych-proxmox-zakonczenie-instalacji/

# na maszynie bastion
openshift-install --dir=install_dir/ wait-for bootstrap-complete --log-level=info
# lub
openshift-install --dir=install_dir/ wait-for bootstrap-complete --log-level=debug

# na maszynie bastion
export KUBECONFIG=~/install_dir/auth/kubeconfig
oc whoami

# akceptacja certyfikatow podczas budowanuia klastra
oc get csr -ojson | jq -r '.items[] | select(.status == {} ) | .metadata.name' | xargs oc adm certificate approve

# sprawdzenie dostepnych nodow w klastrze
oc get nodes
lub
oc get nodes -o wide

# sprawdzenie czy wszystkie wymagane funkcjonalności klastra są już dostępne
oc get clusteroperators

Wszystkie nody klastra powinny być Ready

A wszystkie składniki clusteroperators w stanie Available = True

Zalogowanie się do konsoli graficznej OpenShift

#Po skończonej instalacji klastra można zalogować się do konsolui GUI klastra OKD (OpenShift) pod adresem 
https://console-openshift-console.apps.testcluster.okdlab.local

# podgląd aktualnego hasła dla użytkownika kubeadmin
cat install_dir/auth/kubeadmin-password