minio ha sido, junto a un bug de la máquina de vending que me permite sacar dos bollitos por el precio de uno, mi descubrimiento más grande de esta semana. Permite tener un servicio compatible con AWS S3 en tu cluster de Kubernetes. Esto podrá parecer innecesario si trabajas en cloud pública, donde ese servicio ya existe, pero en entornos on-premise es una necesidad muy real. |
¿Porqué AWS S3 on-premise?
Cuando hablamos de servicios cloud no solo hablamos de disponibilidad, replicación, gigas, y con casinos, y ....... .
Para el desarrollador de un equipo agile lo importante es tener un api para poder trabajar. Y si además es un api "estandarizada" pues mucho mejor porque nos permite desarrollar nuestras aplicaciones de forma que son independientes del entorno sobre el que corren.
Por desgracia en los clientes que suelo frecuentar hay una cierta alergia a todo lo que sea externalizar servicios por lo que AWS S3 les provoca urticaria pero minio encaja como un guante.
Despliegue en OpenShift
Usamos los objetos de karrier.io un poco modificados e incrustados en una plantilla que puedes encontrar en este repositorio.
Ejecuta:
oc new-app -f minio-template.yaml
Y ya está. ¿A que pensabas que iba a ser más difícil? ;-)
Recuerda apuntar la "Access Key" y la "Secret Key".
Venga, te pongo la salida del comando para que parezca más difícil:
jmferrerm@serenity:~/blog/AWSS3on-premise$ oc new-app -f minio-template.yaml -p MINIO_ACCESS_KEY=holaaaaaaa -p MINIO_SECRET_KEY=adiooooooos --> Deploying template "jmferrer-minio-template/minio" for "minio-template.yaml" to project jmferrer-minio-template min.io --------- A min.io service. For more information about using this template, including OpenShift considerations, see https://github.com/elmanytas/minio-openshift/blob/master/README.md. WARNING: This template needs a default storage class with space enough. The following service(s) have been created in your project: minio. For more information about using this template, including OpenShift considerations, see https://github.com/elmanytas/minio-openshift/blob/master/README.md. * With parameters: * Name=minio * Memory Limit=512Mi * Application Hostname= * Access Key=holaaaaaaa * Secret Key=adiooooooos --> Creating resources ... secret "minio-keys" created service "minio" created route "minio" created statefulset "minio" created --> Success Access your application via route 'minio-jmferrer-minio-template.osapps.elmanytas.es' Run 'oc status' to view your app. jmferrerm@serenity:~/ownCloud/blog/AWSS3on-premise$
Uso con la cli de aws
Hacemos un uso normal cambiando el endpoint url
tal como pone aquí:
jmferrerm@serenity:~$ aws --endpoint-url=http://minio-jmferrer-minio-template.osapps.elmanytas.es s3 ls jmferrerm@serenity:~$ aws --endpoint-url=http://minio-jmferrer-minio-template.osapps.elmanytas.es s3 mb s3://swordartonline make_bucket: swordartonline jmferrerm@serenity:~$ aws --endpoint-url=http://minio-jmferrer-minio-template.osapps.elmanytas.es s3 cp /tmp/YukiKajiuraSAOLive.mp4 s3://swordartonline upload: ../../tmp/YukiKajiuraSAOLive.mp4 to s3://swordartonline/YukiKajiuraSAOLive.mp4 jmferrerm@serenity:~$ aws --endpoint-url=http://minio-jmferrer-minio-template.osapps.elmanytas.es s3 ls s3://swordartonline 2019-04-04 20:04:27 237535530 YukiKajiuraSAOLive.mp4 jmferrerm@serenity:~$
GUI
El GUIaburros es simple y escueto.
Tanto que no necesita mayor explicación:
Happy object storing!!
Un poco de música épica para amenizar tu fin de semana
Conciertazo en vivo de Yuki Kajiura 梶浦由記 at 「Sword Art Online event “Sing all Overtures”」: