Klaster OKD (OpenShift) na maszynach wirtualnych Proxmox
- część 1 https://itadmin.vblog.ovh/klaster-okd-openshift-na-maszynach-wirtualnych-proxmox-przygotowanie-dns/
- część 2 https://itadmin.vblog.ovh/klaster-okd-openshift-na-maszynach-wirtualnych-proxmox-przygotowanie-maszyny-bastion/
- część 3 https://itadmin.vblog.ovh/klaster-okd-openshift-na-maszynach-wirtualnych-proxmox-przygotowanie-maszyny-storage-nfs/
- część 4 https://itadmin.vblog.ovh/klaster-okd-openshift-na-maszynach-wirtualnych-proxmox-uruchomienie-maszyny-bootstrap/
- część 5 https://itadmin.vblog.ovh/klaster-okd-openshift-na-maszynach-wirtualnych-proxmox-uruchomienie-maszyn-control-plane/
- część 6 https://itadmin.vblog.ovh/klaster-okd-openshift-na-maszynach-wirtualnych-proxmox-uruchomienie-maszyn-compute/
- część 7 https://itadmin.vblog.ovh/klaster-okd-openshift-na-maszynach-wirtualnych-proxmox-zakonczenie-instalacji/
Monitorowanie przebiegu instalacji klastra
# 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 ssh -i /home/bastuser/.ssh/id_ed25519 [email protected] # na maszynie bootstrap journalctl -f -u bootkube.service

# 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

Jeśli na dowolnym control-plane pojawi się poniższy błąd tego typu to należy zaakceptować czekające na akceptację certyfikaty (patrz opis poniżej)

Można też podglądać status powstajacego klastra korzystając z jego API
# z maszyny bastion curl -k https://api.testcluster.okdlab.local:6443/healthz ok
Generalnie problemy z instalacją klastra mogą wynikać najczęściej z:
- błędów w konfiguracji serwera DNS. Dlatego ważnej jest odpytanie wszystkich adresów w z pliku strefy okdlab.local i weryfikacja rozwiązywania nazw forward i reverse przez narzędzie nslookup i dig.
- błędnego wprowadzenie któregoś z parametrów kernel podczas pierwszego uruchamiania maszyny bootstrap, control-plane-x, compute-x
- czekających na akceptację w kolejce żądań akceptacji certyfifkatów
Wyłączenie maszyny bootstrap
Po skończonej instalacji klastra można już wyłączyć maszynę bootstrap zwalniając zasoby serwera (hosta) oraz zakomentować wpis w HAProxy dotyczący bootstrap (nie jest to konieczne).
sudo sed '/ bootstrap /s/^/#/' /etc/haproxy/haproxy.cfg sudo systemctl reload haproxy

Wyłączenie maszyny bootstrap po instalacja klastra zwolni ok. 6 GB pamięci RAM.
Akceptacja CSR na klastrze
Prawdopodobnie trzeba będzie kilka razy akceptować certyfikaty podczas budowania klastra. Dlatego dobrze jest na maszynie bastion po utworzeniu pierwszego control-plane-x (mastera) zalogować się do klastra.
# na maszynie bastion export KUBECONFIG=~/install_dir/auth/kubeconfig oc whoami oc get nodes oc get csr
Sprawdzamy certyfikaty do akceptacji i akceptujemy je
oc get csr -ojson | jq -r '.items[] | select(.status == {} ) | .metadata.name' | xargs oc adm certificate approveSprawdzamy listę nodów w budującym się klastrze sprawdzając co jakiś czas czy mają już status Ready
# na maszynie bastion oc get nodes lub oc get nodes -o wide

Również ważne jest aby wszystkie wymagane funkcjonalności klastra były dostępne co może wymagać ok 1 godziny czasu (Available = True z wyjątkiem funkcjonalności metryk, która zostanie włączona osobno)
oc get clusteroperators

Zalogowanie do konsoli OKD
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
Jeśli wpisaliśmy poprawnie login: kubeadmin i hasło (z powyższego pliku) to naszym oczom po chwili ukaże się konsola graficzna OKD (OpenShift).
Klaster jest teraz gotowy do działania i dalszej konfiguracji oraz instalacji nowych projektów OpenShfit.
| 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 41 | DNS dla klastra |
| 2 | storage.okdlab.local | 192.168.40.20 | 2 | 4 GB | 128 GB | Fedora Server 41 | Storage NFS dla klastra |
| 2 | bootstrap.testcluster.okdlab.local | 192.168.40.30 | 4 | 16 GB | 128 GB | Fedora CoreOS 39 | Bootstrap node |
| 3 | bastion.okdlab.local | 192.168.40.40 | 4 | 4 GB | 128 GB | Fedora Server 41 | Haproxy Load balancer / instalacja |
| 4 | control-plane-1.testcluster.okdlab.local | 192.168.40.51 | 4 | 16 GB | 128 GB | Fedora CoreOS 39 | Master node |
| 5 | control-plane-2.testcluster.okdlab.local | 192.168.40.52 | 4 | 16 GB | 128 GB | Fedora CoreOS 39 | Master node |
| 6 | control-plane-3.testcluster.okdlab.local | 192.168.40.53 | 4 | 16 GB | 128 GB | Fedora CoreOS 39 | Master node |
| 7 | compute-1.testcluster.okdlab.local | 192.168.40.61 | 4 | 16 GB | 128 GB | Fedora CoreOS 39 | Worker node |
| 8 | compute-2.testcluster.okdlab.local | 192.168.40.62 | 4 | 16 GB | 128 GB | Fedora CoreOS 39 | Worker node |



