Skip to content

vCenter Prerequisites — OCP 4.18 on vSphere IPI

vCenter Prerequisites — OCP 4.18 on vSphere IPI

Prerequisiti VMware e Bastion Host per una installazione IPI di OpenShift Container Platform 4.18 su vSphere. Complementare a Network Requirements — assumi che le aperture di rete siano già gestite.

Fonti: Red Hat OpenShift 4.18 – Installing on VMware vSphere → Installation requirements + prerequisiti operativi interni.


1. Versioni vSphere supportate

Per OCP 4.18, Red Hat supporta:

ComponenteVersione minima
VMware vSphere / vCenter7.0 Update 2 (raccomandato 8.0 Update 1+)
VMware ESXi7.0 Update 2 (raccomandato 8.0 Update 1+)
vSphere CSI Driver OperatorvSphere 8.0 Update 1+ o VMware vSphere Foundation (VVF) 9 o VMware Cloud Foundation (VCF) 5+
Hardware version VM15 o superiore (necessario per RHCOS)

Se in produzione avete ancora 7.0 Update 2/3, l’installazione funziona ma il CSI driver Operator moderno non sarà utilizzabile: si ripiega sul driver in-tree (deprecato ma supportato). Pianificare l’upgrade a 8.0 U1+ è caldamente raccomandato.


2. Account vCenter — privilegi minimi

Red Hat raccomanda un service account dedicato (non l’admin globale) per l’installer, con questi privilegi minimi.

2.1 Gestione VM

  • Create, register, delete, reconfigure virtual machine
  • Configure CPU / memoria / disco / interfacce di rete
  • Power on / off / reset / snapshot

2.2 Gestione Datastore

  • Browse datastore
  • Allocate space
  • Low-level file operations (necessario per upload OVF/OVA RHCOS)

2.3 Gestione Rete

  • Assign network (assegnazione port-group alle VM del cluster)

2.4 Gestione Resource Pool / Cluster

  • Create resource pool
  • Assign virtual machine to resource pool

2.5 Gestione Template / OVA

  • Deploy OVF template
  • Import RHCOS OVA

2.6 Altri requisiti vSphere

  • Accesso al vCenter e al cluster ESXi target
  • Permessi su folder e datacenter di destinazione
  • DNS + DHCP configurati (vedi Network Requirements)

Nota: se non riesci a distillare al livello granulare, il ruolo predefinito Administrator funziona ma è sovradimensionato. Per ambienti produttivi bancari/enterprise, usa sempre un ruolo custom minimo — l’audit lo apprezzerà.


3. Configurazione vSphere per installer IPI

Prima di lanciare openshift-install, verifica che il datacenter target soddisfi questi vincoli.

3.1 Struttura datacenter

  • Un solo datacenter nel vCenter target (o comunque uno solo referenziato in install-config.yaml)
  • Un solo cluster ESXi con almeno 3 host per production (per anti-affinity dei master)
  • Se ci sono più resource pool nel cluster, il default pool deve essere utilizzabile — altrimenti i worker non vengono creati

3.2 Datastore

  • Un datastore accessibile da tutti gli host ESXi del cluster
  • Spazio richiesto minimo Day 1: ~120 GB × (3 master + 2 worker + 1 bootstrap) ≈ 700 GB a bare minimum
  • Per produzione con logging + monitoring + registry: pianificare almeno 2 TB disponibili
  • Non usare datastore appartenenti a datastore cluster con SDRS/Storage vMotion attivo — Red Hat non supporta

3.3 VM folder

Creare un folder dedicato per contenere tutte le VM del cluster. Rende infinitamente più semplice il lifecycle (delete, backup, permission scoping).

3.4 vMotion e DRS

  • DRS su control-plane e infra worker: disabilitato (o modalità manuale)
  • VM/VM anti-affinity rules: raccomandate per i 3 master, in modo che non finiscano sullo stesso host ESXi
  • Storage vMotion su VM con vSphere volumes (PV): non supportato, provoca reference PV invalide e potenziale data loss

3.5 Restart policy dei nodi (in caso di shutdown planned)

Ordine di shutdown:

  1. Compute nodes
  2. Infra nodes
  3. Master nodes

Ordine di boot:

  1. Master nodes
  2. Infra nodes
  3. Compute nodes

4. Bastion Host

Il Bastion Host (BH) è l’utility server da cui parte tutta l’installazione IPI. Non è tecnicamente un “prerequisito” di OpenShift ma di tutti i deploy enterprise: la docs Red Hat lo assume implicitamente.

4.1 Hardware / OS minimi

  • 2 vCPU, 4 GB RAM, 40 GB disco
  • RHEL 8 o 9 (raccomandato), Rocky/Alma equivalenti sono OK per lab
  • Rete: stessa VLAN dei nodi cluster (o comunque routing L3 verso VIP + vCenter)

4.2 Software da installare

Terminal window
# Installer OCP 4.18
OCP_VERSION=4.18.0
curl -k -L https://mirror.openshift.com/pub/openshift-v4/clients/ocp/${OCP_VERSION}/openshift-install-linux.tar.gz \
-o /tmp/openshift-install-linux.tar.gz
sudo tar -xzf /tmp/openshift-install-linux.tar.gz -C /usr/local/bin/ openshift-install
sudo chmod +x /usr/local/bin/openshift-install
# oc CLI
curl -k -L https://mirror.openshift.com/pub/openshift-v4/clients/ocp/${OCP_VERSION}/openshift-client-linux.tar.gz \
-o /tmp/openshift-client-linux.tar.gz
sudo tar -xzf /tmp/openshift-client-linux.tar.gz -C /usr/local/bin/ oc kubectl
sudo chmod +x /usr/local/bin/oc /usr/local/bin/kubectl
# Verifica
openshift-install version
oc version --client

4.3 SSH key

Terminal window
ssh-keygen -t ed25519 -f ~/.ssh/ocp4_installer -C "ocp4-installer" -N ""
cat ~/.ssh/ocp4_installer.pub

Questa chiave verrà iniettata via Ignition su tutti i nodi RHCOS: usa ssh core@<node> per accesso emergenza post-install.

4.4 Pull-secret

Scarica il pull-secret da https://console.redhat.com/openshift/install/pull-secret e salvalo in ~/pull-secret.json. Serve all’installer per autenticarsi ai registry Red Hat.

4.5 CA di vCenter (importante)

Se vCenter usa un certificato self-signed o di CA interna, va importato nel trust store del bastion, altrimenti openshift-install fallisce con x509: certificate signed by unknown authority:

Terminal window
curl -k -o /tmp/vcenter.zip https://<vcenter_hostname>/certs/download.zip
unzip /tmp/vcenter.zip -d /tmp/vc
sudo cp /tmp/vc/certs/lin/*.0 /etc/pki/ca-trust/source/anchors/
sudo update-ca-trust

Verifica:

Terminal window
openssl s_client -connect <vcenter_hostname>:443 -showcerts </dev/null 2>/dev/null | \
openssl x509 -noout -issuer -subject

5. install-config.yaml — parametri chiave per IPI su vSphere

Non è uno YAML da copiare senza cervello; è un elenco commentato dei campi da compilare.

apiVersion: v1
baseDomain: example.com # dominio DNS radice (es. lab.acme.it)
metadata:
name: ocp4 # nome cluster (parte breve, no domain)
controlPlane:
hyperthreading: Enabled
name: master
replicas: 3 # SEMPRE 3, non modificabile
platform:
vsphere:
cpus: 4
coresPerSocket: 2
memoryMB: 16384
osDisk:
diskSizeGB: 120
compute:
- hyperthreading: Enabled
name: worker
replicas: 3 # minimo 2, raccomandato 3+
platform:
vsphere:
cpus: 4
coresPerSocket: 2
memoryMB: 16384
osDisk:
diskSizeGB: 120
platform:
vsphere:
apiVIPs:
- 192.168.50.10 # API VIP (deve risolvere api. e api-int.)
ingressVIPs:
- 192.168.50.11 # Ingress VIP (deve risolvere *.apps.)
vcenters:
- server: vcenter.example.com
user: ocp-installer@vsphere.local
password: 'CHANGEME'
datacenters:
- Datacenter1
failureDomains:
- name: fd-1
region: region-1
zone: zone-1
server: vcenter.example.com
topology:
datacenter: Datacenter1
computeCluster: /Datacenter1/host/Cluster1
networks:
- VM_Network_OCP
datastore: /Datacenter1/datastore/vsanDatastore
resourcePool: /Datacenter1/host/Cluster1/Resources
folder: /Datacenter1/vm/ocp4
pullSecret: '...' # contenuto di ~/pull-secret.json
sshKey: 'ssh-ed25519 AAAA... ocp4-installer'

Novità 4.18 — la sezione platform.vsphere è cambiata rispetto alle release precedenti: obbligatorio dichiarare vcenters (array) e failureDomains (array), anche in single-site. Se hai install-config.yaml da 4.14/4.16, va rifattorizzato.


6. Processo installazione (workflow IPI)

Sequenza a run-time, per contesto:

  1. Bastion: openshift-install create install-config --dir=./ocp4 → generi install-config.yaml interattivamente
  2. Bastion: openshift-install create manifests --dir=./ocp4 → generi manifest Kubernetes (customizzabili prima dello step successivo)
  3. Bastion: openshift-install create ignition-configs --dir=./ocp4 → generi bootstrap.ign, master.ign, worker.ign
  4. Bastion: openshift-install create cluster --dir=./ocp4 --log-level=info → installer si collega a vCenter, deploya OVA RHCOS, crea VM bootstrap → master → worker
  5. Bootstrap: la VM bootstrap carica bootstrap.ign, avvia bootkube, prepara MCS e etcd temporaneo
  6. Control plane: i 3 master scaricano master.ign, formano il cluster etcd definitivo, migrano l’API dal bootstrap
  7. Cleanup bootstrap: quando i 3 master sono Ready, l’installer spegne la VM bootstrap
  8. Compute nodes: i worker scaricano worker.ign dal MCS sui master e si aggiungono
  9. Finalizzazione: cluster operator vengono provisionati; l’installer stampa KUBECONFIG e kubeadmin-password

Durata tipica: 45–75 minuti su vSphere ben dimensionato.


7. Post-install (day-1 → day-2)

Terminal window
export KUBECONFIG=~/ocp4/auth/kubeconfig
oc whoami
oc get nodes
oc get clusterversion
oc get co

Se oc get co mostra PROGRESSING=True per più di 15 minuti dopo la fine dell’installer, qualcosa è bloccato. Comincia da:

Terminal window
oc get co --no-headers | awk '$3!="True" || $4!="False" || $5!="False"'
oc describe co <nome-co-non-True>

8. Checklist finale (pre-install)

  • vSphere / vCenter 7.0 U2+ (raccomandato 8.0 U1+)
  • Service account vCenter creato con privilegi minimi (§2)
  • Un datacenter, un cluster, un datastore condiviso, un folder dedicato
  • DRS off / manuale su control plane; anti-affinity rules attive
  • BH provisionato con openshift-install + oc scaricati (§4.2)
  • SSH key generata (§4.3)
  • Pull-secret salvato in ~/pull-secret.json
  • CA di vCenter installata sul BH (§4.5)
  • Rete + DNS + DHCP + VIP configurati (vedi Network Requirements)
  • NTP sincronizzato su BH e verificabile dai nodi target

Riferimenti Red Hat