Come Aggiungere Storage Persistente a Minishift / CDK 3

Ciao a tutti!

Oggi voglio riproporvi un articolo che ho pubblicato sul Red Hat Developer Blog.

Quest’articolo vi spiega come creare storage persistente per i vostri progetti in Minishift / CDK 3 (Red Hat’s Containers Development Kit 3).

Questo è il link all’articolo originale:

https://developers.redhat.com/blog/2017/04/05/adding-persistent-storage-to-minishift-cdk-3-in-minutes/

 

Prerequisiti

Iniziamo a pianificare cosa vi servirà:

  • Un minishift o CDK 3 funzionante.

E’ tutto, davvero!

Non entrerò nel dettaglio di come configurare un minishift o CDK 3, ci sono parecchi articoli in Internet che coprono il tema. Ad ogni modo, riporto di seguito un serie di link utili che potete utilizzare per ottenere un minishift/CDK3 funzionante prima di procedere:

https://developers.redhat.com/blog/2017/02/28/using-red-hat-container-development-kit-3-beta/

Pagina Github Minishift – https://github.com/minishift/minishift

Iniziamo!

Dopo aver configurato con successo un minishift/CDK3, siamo pronti al passaggio successivo: la creazione dello strato storage sottostante che ospiterà i nostri Persistent Volumes (PVs).

Prima di tutto, colleghiamoci al nostro minishift/CDK3 in esecuzione:

$ minishift ssh
[docker@minishift ~]$ sudo -i
[root@minishift ~]#

Ok, adesso siamo pronti a creare la nostra prima directory da associare ad un volume persistente che ospiterà i dati del Docker Registry:

[root@minishift ~]# mkdir -p /mnt/sda1/var/lib/minishift/openshift.local.volumes/pv
[root@minishift ~]# mkdir /mnt/sda1/var/lib/minishift/openshift.local.volumes/pv/registry
[root@minishift ~]# chmod 777 -R /mnt/sda1/var/lib/minishift/openshift.local.volumes/pv

Perfetto! Possiamo adesso passare alla creazione del PersistentVolume per il nostro container Docker Registry.

Scolleghiamoci dalla nostra virtual machine minishift/CDK3 e quindi logghiamoci in openshift attraverso il client oc:

$ oc login -u system:admin
Logged into "https://192.168.42.58:8443" as "system:admin" using existing credentials.

You have access to the following projects and can switch between them with 'oc project <projectname>':

 default
 kube-system
 * myproject
 openshift
 openshift-infra

Using project "myproject".

Spostiamoci nel project “default”:

$ oc project default
Now using project "default" on server "https://192.168.42.69:8443".

Ed infine creiamo il PersistentVolume:

$ cat << PV | oc create -f -
apiVersion: v1
kind: PersistentVolume
metadata:
 name: registry
spec:
 capacity:
  storage: 5Gi
 accessModes:
  - ReadWriteOnce
 storageClassName: slow
 hostPath:
  path: /mnt/sda1/var/lib/minishift/openshift.local.volumes/pv/registry
PV

Adesso è necessario fare attenzione a due punti:

  1. Capacità Storage: Non è calcolata automaticamente! E’ necessario tenere sotto controllo dimensione del disco e spazio disponibile.
  2. Utilizzo del Volume type “hostPath”: lo storage è sul virtual disk della vm minishift/CDK3, bisogna preoccuparsi dei permessi!

Ok, adesso siamo pronti per la creazione del nostro primo PersistentVolumeClaim, da essere agganciato al PersistentVolume già creato:

$ cat << PVC | oc create -f -
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
 name: registryclaim
spec:
 accessModes:
  - ReadWriteOnce
 resources:
  requests:
   storage: 5Gi
 storageClassName: slow
 selector:
  name: registry
PVC

Come potete notare dalla definizione del PersistentVolumeClaim, associamo il PersistentVolume attraverso il nome “registry”.

Possiamo adesso dare un’occhiata al risultato, controllando l’output del seguente comando:

$ oc get pvc
NAME          STATUS VOLUME   CAPACITY ACCESSMODES AGE
registryclaim Bound  registry 5Gi      RWO         8s

Infine, possiamo modificare la definizione corrente di DeploymentConfig aggiungendo lo storage appena creato:

$ oc volume dc/docker-registry --add --name=registry-storage -t pvc --claim-name=registryclaim --overwrite
deploymentconfig "docker-registry" updated

E questo è tutto! Potete ripetere questi step tutte le volte che volete! Ma, fate attenzione allo spazio libero della vostra vm!

 

Info su Alessandro

Alessandro Arrichiello is a Solution Architect for Red Hat Inc. He has a passion for GNU/Linux systems, that began at age 14 and continues today. He worked with tools for automating Enterprise IT: configuration management and continuous integration through virtual platforms. He’s now working on distributed cloud environment involving PaaS (OpenShift), IaaS (OpenStack) and Processes Management (CloudForms), Containers building, instances creation, HA services management, workflows build.

Ti piacerebbe diventare anche tu uno di noi e pubblicare i tuoi articoli nel blog degli RHCE italiani?

Panoramica privacy
EXTRAORDY | Your Red Hat Trusted Mentor

Questo sito utilizza i cookie in modo da offrirti la migliore esperienza utente possibile. Le informazioni sui cookie sono memorizzate nel tuo browser e svolgono funzioni come riconoscerti quando ritorni sul nostro sito e aiutare il nostro team a capire quali sezioni del sito ritieni più interessanti e utili.

Pertanto per una completa fruizione del presente sito, si consiglia di configurare il browser in modo che accetti la ricezione dei cookie.

Cookie strettamente necessari

I cookie strettamente necessari dovrebbero essere abilitati in ogni momento in modo che possiamo salvare le tue preferenze per offrirti la miglior esperienza possibile sul nostro sito.

 

Se disabiliti questo cookie, non saremo in grado di salvare le tue preferenze. Ciò significa che ogni volta che visiti questo sito web dovrai abilitare o disabilitare nuovamente i cookie.

Cookie di terze parti

Questo sito utilizza Google Analytics per raccogliere informazioni anonime quali il numero di visitatori del sito e le pagine più popolari.

Mantenere abilitato questo cookie ci aiuta a migliorare il nostro sito.