Un giro su OKD 4 (parte 1)

L’impatto del ritorno dopo le vacanze è stato tragico. Avendo dimenticato tutto in merito a cosa fa un DevOps ho iniziato con un’attività molto leggera. Giocare con OKD 4, la versione community da cui deriva Openshift.

Già da un po’ di tempo è stato annunciato OKD 4 https://www.openshift.com/blog/okd4-is-now-generally-available e messo a disposizione della community un installer per provare il prodotto in locale. Mi ero abituato con Minishift o a farmi un cluster a due nodi (un master e un worker, 2 vm Vagrant e via con i playbook di installazione) ma devo dire che crc (Code Ready Containers) è molto comodo.

All’interno del repo GitHub del progetto (https://github.com/code-ready/crc) si trova un link a https://cloud.redhat.com/openshift/install/crc/installer-provisioned per scaricare ed installare il tool.

Una volta installato (fate in modo che sia in PATH, ho optato per un classico link simbolico /usr/local/bin/crc -> /Users/foobar/WORK/Openshift4/crc/crc) basta dare semplicemente crc setup e crc start. Non ha molto senso entrare in ssh nell’istanza di CoreOS di OKD 4 installata con crc ma per curiosità vi scrivo che si può fare così:

~$ ssh -i /Users/foobar/.crc/machines/crc/id_rsa core@"$(crc ip)"
Red Hat Enterprise Linux CoreOS 45.82.202007240629-0
  Part of OpenShift 4.5, RHCOS is a Kubernetes native operating system
  managed by the Machine Config Operator (`clusteroperator/machine-config`).

WARNING: Direct SSH access to machines is not recommended; instead,
make configuration changes via `machineconfig` objects:
  https://docs.openshift.com/container-platform/4.5/architecture/architecture-rhcos.html

---
Last login: Sat Aug 22 17:50:00 2020 from 192.168.64.1
[core@crc-fd5nx-master-0 ~]$ cat /etc/redhat-release
Red Hat Enterprise Linux CoreOS release 4.5

Una volta partita la vm, in output verrà mostrato come accedere da riga di comando tramite oc. Con oc console si può comunque reperire la password in qualsiasi momento

~$ crc console --credentials
To login as a regular user, run 'oc login -u developer -p developer https://api.crc.testing:6443'.
To login as an admin, run 'oc login -u kubeadmin -p DhjTx-8gIJC-2h2tK-eksGY https://api.crc.testing:6443'

Tramite crc console secco, invece, si aprirà magicamente la console di Openshift sul browser. A prima vista ci sono un sacco di cose che mi piacciono in confronto alla versione 3.11.

Feature interessanti da un primo sguardo alla web-console

  • La view divisa tra administrator e developer
  • La search bar per le resource e gli event. Molto utile anche se era più divertente fare dei bashoni con oc
  • La sezione OperatorHub
  • La sezione workloads per administrator è cross-namespace. Non c’è più bisogno di entrare nel namespace per vederne le risorse (questo è molto comodo, si fa troubleshooting più in fretta)
  • Nella sezione storage ci sono i PV. Da paura. Ci sono anche le storage-class. Mi spiace che tra i provisioner non ci sia quello per OpenEBS (https://openebs.io/)
  • Ok la parte compute è veramente utile (devo provarla però). La feature più interessante di questa sezione è il MachineAutoscaler per cui ciao ciao scale-up manuale (peccato era la cosa più facile lo scale-up tramite Ansible, su OKD. L’aggiornamento invece, su OKD e non su Openshift, era un cosiddetto bagno di sangue.
  • Sezione OAuths in Cluster Settings. È possibile configurare vari identity provider direttamente da web console

Aggiunta identity provider HTPasswd

# Creazione password file con htpasswd 
htpasswd -b -c fooobar foo bar

Upload del file tramite web console

Prova di login

$ oc login -u foo -p bar https://api.crc.testing:6443
Login successful.

You don't have any projects. You can try to create a new project, by running

    oc new-project <projectname>

Direi che OKD4, da un primo sguardo, ci piace parecchio ma ci sono molti aspetti da verificare e funzionalità da provare.

crc è sicuramente utilissimo per gli sviluppatori ma anche per i DevOps in caso vogliano dare uno sguardo.

Bella.

Leave a Reply

Your email address will not be published. Required fields are marked *