Hola estimado lector, Hace tiempo, quería aprender acerca de Kubernetes, me pareció una tecnología muy interesante, ya que en mi instituto me enseñaron virtualizar SO mediante virtualbox, pero nada de Docker y menos Kubernetes.
Docker para quienes no sepan es una tecnología que permite crearte en un SO pequeño los servicios básicos para que funcione tu sistema. Kubernetes le añade una capa más de abstracción a Docker
INSTALAMOS KUBERNETES EN LINUX
Para instalar Kubernetes en nuestro SO Linux necesitaremos del gestor de paquetes Snap, muy recomendado, si queremos instalar emuladores en nuestros sistemas Linux
snap install kubectl --classic
Con este comando sabremos la versión de Kubernetes
kubectl version --client
INSTALAMOS HELM
La comunidad de Snapcrafters mantiene la versión Snap del paquete Helm :
sudo snap install helm –classic
INICIALIZAR UN REPOSITORIO DE GRÁFICOS DE HELM
Una vez que tenga Helm listo, puede agregar un repositorio de gráficos. Consulte Artifact Hub para conocer los repositorios de gráficos de Helm disponibles.
$ helm repo add bitnami https://charts.bitnami.com/bitnami
UNA VEZ QUE ESTÉ INSTALADO, PODRÁ ENUMERAR LOS GRÁFICOS QUE PUEDE INSTALAR:
$ helm search repo bitnami
NAME CHART VERSION APP VERSION DESCRIPTION
bitnami/bitnami-common 0.0.9 0.0.9 DEPRECATED Chart with custom templates used in …
bitnami/airflow 8.0.2 2.0.0 Apache Airflow is a platform to programmaticall…
bitnami/apache 8.2.3 2.4.46 Chart for Apache HTTP Server
bitnami/aspnet-core 1.2.3 3.1.9 ASP.NET Core is an open-source framework create…
INSTALAR UN GRÁFICO DE EJEMPLO
Para instalar un gráfico, puede ejecutar el helm install comando. Helm tiene varias formas de buscar e instalar un gráfico, pero la más sencilla es utilizar los bitnami gráficos.
$ helm repo update # Make sure we get the latest list of charts
$ helm install bitnami/mysql --generate-name
NAME: mysql-1612624192
LAST DEPLOYED: Sat Feb 6 16:09:56 2021
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES: …
PUEDE ENCONTRAR GRÁFICOS DISPONIBLES PÚBLICAMENTE EJECUTANDO HELM SEARCH HUB:
$ helm search hub wordpress
URL CHART VERSION APP VERSION DESCRIPTION
https://hub.helm.sh/charts/bitnami/wordpress 7.6.7 5.2.4 Web publishing platform for building blogs and …
https://hub.helm.sh/charts/presslabs/wordpress-… v0.6.3 v0.6.3 Presslabs WordPress Operator Helm Chart
https://hub.helm.sh/charts/presslabs/wordpress-… v0.7.1 v0.7.1 A Helm chart for deploying a WordPress site on ..
HELM SEARCH UTILIZA UN ALGORITMO DE COINCIDENCIA DE CADENAS DIFUSAS, POR LO QUE PUEDE ESCRIBIR PARTES DE PALABRAS O FRASES:
$ helm search repo kash
‘HELM INSTALL’: INSTALACIÓN DE UN PAQUETE
Para instalar un paquete nuevo, use el helm installcomando. En su forma más simple, se necesitan dos argumentos: un nombre de versión que elija y el nombre del gráfico que desea instalar.
$ helm install happy-panda bitnami/wordpress
NAME: happy-panda
LAST DEPLOYED: Tue Jan 26 10:27:17 2021
NAMESPACE: default
PARA REALIZAR UN SEGUIMIENTO DEL ESTADO DE UNA VERSIÓN O PARA VOLVER A LEER LA INFORMACIÓN DE CONFIGURACIÓN, PUEDE UTILIZAR HELM STATUS:
$ helm status happy-panda
PERSONALIZACIÓN DEL GRÁFICO ANTES DE LA INSTALACIÓN
La instalación de la forma que tenemos aquí solo usará las opciones de configuración predeterminadas para este gráfico. Muchas veces, querrá personalizar el gráfico para usar su configuración preferida.
PARA VER QUÉ OPCIONES SE PUEDEN CONFIGURAR EN UN GRÁFICO, USE HELM SHOW VALUES:
$ helm show values bitnami/wordpress
Luego, puede anular cualquiera de estas configuraciones en un archivo con formato YAML y luego pasar ese archivo durante la instalación.
$ echo '{mariadb.auth.database: user0db, mariadb.auth.username: user0}' > values.yaml
$ helm install -f values.yaml bitnami/wordpress –generate-name
ACTUALIZAR
UNA ACTUALIZACIÓN TOMA UNA VERSIÓN EXISTENTE Y LA ACTUALIZA DE ACUERDO CON LA INFORMACIÓN QUE PROPORCIONE. DADO QUE LOS GRÁFICOS DE KUBERNETES PUEDEN SER GRANDES Y COMPLEJOS, HELM INTENTA REALIZAR LA ACTUALIZACIÓN MENOS INVASIVA. SOLO ACTUALIZARÁ LAS COSAS QUE HAYAN CAMBIADO DESDE LA ÚLTIMA VERSIÓN.
$ helm upgrade -f panda.yaml happy-panda bitnami/wordpress
ROLLBACK
Ahora, si algo no sale según lo planeado durante una versión, es fácil volver a una versión anterior usando helm rollback [RELEASE] [REVISION].
$ helm rollback happy-panda 1
‘HELM UNINSTALL’: DESINSTALACIÓN DE UNA VERSIÓN
Cuando sea el momento de desinstalar una versión del clúster, use el helm uninstallcomando:
$ helm uninstall happy-panda
LISTAR VERSIONES
Puede ver todas sus versiones implementadas actualmente con el helm listcomando:
$ helm list
NAME VERSION UPDATED STATUS CHART
inky-cat 1 Wed Sep 28 12:59:46 2016 DEPLOYED alpine-0.1.0
LISTAR
La helm list –all bandera le mostrará todos los registros de liberación que Helm ha retenido, incluidos los registros de elementos fallidos o eliminados (si –keep-historyse especificó):
$ helm list --all
NAME VERSION UPDATED STATUS CHART
happy-panda 2 Wed Sep 28 12:47:54 2016 UNINSTALLED wordpress-10.4.5.6.0
inky-cat 1 Wed Sep 28 12:59:46 2016 DEPLOYED alpine-0.1.0
kindred-angelf 2 Tue Sep 27 16:16:10 2016 UNINSTALLED alpine-0.1.0
‘HELM REPO’: TRABAJAR CON REPOSITORIOS
$ helm repo list
NAME URL
stable https://charts.helm.sh/stable
mumoshu https://mumoshu.github.io/charts
Y se pueden agregar nuevos repositorios con helm repo add:
$ helm repo add dev https://example.com/dev-charts
Los repositorios se pueden eliminar con helm repo remove.
CREACIÓN DE SUS PROPIOS GRÁFICOS
La Guía de desarrollo de gráficos explica cómo desarrollar sus propios gráficos. Pero puede comenzar rápidamente usando el helm createcomando:
$ helm create deis-workflow
Creating deis-workflow
CUANDO LLEGUE EL MOMENTO DE EMPAQUETAR EL GRÁFICO PARA SU DISTRIBUCIÓN, PUEDE EJECUTAR EL HELM PACKAGE COMANDO:
$ helm package deis-workflow
deis-workflow-0.1.0.tgz
Y ese gráfico ahora se puede instalar fácilmente mediante helm install:
$ helm install deis-workflow ./deis-workflow-0.1.0.tgz
FUENTES:
https://kubernetes.io/es/docs/tasks/tools/install-kubectl/
https://helm.sh/docs/intro/quickstart/
https://helm.sh/docs/intro/install/
https://kubernetes.io/es/docs/tasks/tools/install-kubectl/
https://kubernetes.io/docs/concepts/services-networking/ingress/
https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/
https://kubernetes.io/docs/concepts/services-networking/endpoint-slices/
https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/
https://faun.pub/deploy-your-first-scaleable-php-mysql-web-application-in-kubernetes-33ed7ab66595
https://www.magalix.com/blog/kubernetes-deployments-101
http://docs.heptio.com/content/tutorials/lamp.html
https://knative.dev/docs/admin/install/serving/install-serving-with-yaml/