Categoría: cloud

Guía Comprensiva de Kubernetes

Esta Guía Comprensiva de Kubernetes incluye los comandos más utilizados y utilitarios para administrar y gestionar Kubernetes. Adicionalmente se incluye una referencia cómoda para los manifiestos de Kubernetes.

Es muy conveniente que antes de continuar pases por este artículo de Docker y sus generalidades.

1. Instalación y generalidades

Cuando tenemos aplicaciones en contenedores como docker, puede existir una cantidad importante de contenedores y su administración manual comienza a ser difícil, Kubernetes ayuda a administrar los diferentes contenedores estableciendo abstracciones de más alto nivel para gestionar facílmente aplicaciones.

Los comandos recopilados a continuación no pretenden ser una guía extensiva, pero si los más usados en el día a día de la administración de un cluster de kubernetes.

Antes de iniciar con el uso de Kubernetes deberás instalar kubectl y minikube que son las utilidades de administración de kubernetes y un pequeño cluster que puede correr localmente un un pc o laptop.

Finalmente, algo útil para observar es que casi todos los comandos tienen las mismas versiones, por ejemplo, casi todos permiten listar, crear, eliminar recursos de forma parecida, observar esto ayuda a memorizar los comandos.

2. Kubectl

Los siguientes comandos permiten verificar la instalación de kubectl y el estado del cluster actual.

kubectl version
kubectl cluster-info
kubectl get svc

2.1. Crear un nuevo deployment y pods

Un Deployment, es el concepto que mas se asemeja a una aplicación en Kubernetes. El comando típico para crear un nuevo deployment es el siguiente. Se pueden crear a partir de imágenes o usando especificaciones en formato yaml.

kubectl create deployment <nombre> --image=<imagen> --port=<puerto>

2.2. Deployments

Los siguientes comandos permiten gestionar los deployments.

kubectl get deployments
kubectl delete deployment <nombre-deployment>
kubectl describe deployment <nombre-deployment>

2.3. Pods

El concepto de Pod se puede entender fácilmente como un contenedor dentro de nuestra aplicación. Los siguientes comandos permiten adminsitrar los Pod.

kubectl get pods
kubectl delete pod <nombre-pod>
kubectl describe pod <nombre-pod>

3. Minikube

Minikube es un pequeño cluster de contendores que permite correr kubernetes a continuación se muestran los comandos más usados para su administración.

minikube status
minikube start
minikube stop
minikube delete
minikube profile list

Instalar minikube

4. Ejemplos

4.1. echoserver

Este ejemplo muestra muchas de las características para crear una aplicación partiendo de un contenedor, en este caso usamos el servicio de Google Cloud Registry para obtener la imagen que queremos usar.

kubectl create deployment hello-minikube --image=gcr.io/google_containers/echoserver:1.10 --port=8080
kubectl expose deployment hello-minikube --type=NodePort
minikube service hello-minikube --url
kubectl get pod
kubectl get deployments

4.2. webserver

Similar al caso anterior podemos crear un nuevo deployment usando como base nginx. Note que aquí se usa la última versión de nginx, sin embargo esto no es recomendable puesto que si el cluster de kubernetes ya ha descargado el tag latest, no lo volverá hacer a menos que hagamos algún cambio significativo en nuestro despliegue, por lo cual siempre es conveniente especificar la versión que queremos usar para evitar problemas de actualización de nuestros contenedores.

kubectl create deployment hello-nginx --image=nginx --port=80
kubectl expose deployment hello-nginx --type=NodePort
minikube service hello-nginx --url
kubectl get pod
kubectl get deployments

5. Artículos de Intéres

Primeros Pasos con AWS

Estas páginas están especialmente pensadas para iniciarse en el mundo de las nubes de servicio y concretamente dar los Primeros Pasos con AWS, lo cual te permitirá tener un panorama general de que se requiere para crear una cuenta, activarla y dejarla lista para iniciar con la creación y administración de servicios de nube en Amazon.

Aunque existen multitud de documentación y de información, incluso certificaciones brindadas por el mismo AWS, estas páginas solo pretenden recopilar la información necesaria para que empieces a trabajar con la nube de forma confiable y sencilla.

Para temas relacionados con Infraestructura sigue este link.

1. ¿Qué es Amazon Web Services AWS?

Amazon Web Services o AWS es un conjunto de servicios de computación brindados como servicios en nube, bajo diferentes modelos de aprovisionamiento y de servicio como Software as a Services (SaaS), Platform as a Services (PaaS) o Infraestructure as a Service (IaaS) lo cual permite a empresas y personas de todo el mundo consumir servicios con la flexibilidad que ofrece la nube, en cuanto a pagos y consumos se refiere.

Estos servicios abarcan gran cantidad de soluciones y de hecho están en permanente evolución, agregando capacidades nuevas y mejorando las existentes. Ahora bien, quizás te estés preguntando cuales son esos servicios o capacidades, pues en general y de forma preliminar estas capacidades incluyen servicios de computación en nube, similar a máquinas virtuales, almacenamiento en nube, y una multitud de servicios especializados como pueden ser servicios de Internet de las Cosas (IoT), una gama de servicios en analítica e Inteligencia Artificial, soluciones de código, desarrollo de aplicaciones y hasta un Marketplace en el cual las principales herramientas informáticas a nivel mundial están disponibles.

2. Creando una cuenta en AWS

Para crear una cuenta basta con navegar al siguiente link y dar click en crear una cuenta AWS.

Página de acceso a AWS

En este punto se recopilará información personal que debe ser proporcionada de forma verás y precisa, incluso se te preguntará por una tarjeta de crédito, sin embargo no se realizará ningún cobro hasta que comiences a usar los servicios. Es importante saber que AWS te obsequia el consumo de algunos servicios durante el primer año de la cuenta, a esto se le conoce como Free Tier, y es importante que lo tengas presente a la hora de crear servicios.

Capa gratuita de AWS

Formulario de registro AWS
Figura 1. Formulario de registro AWS

3. Activando opciones de seguridad

Una vez completado el registro, el primer servicio que debes usar sin lugar a dudas es IAM, este servicio al igual que todos, lo puedes encontrar en la barra de búsqueda superior de AWS.

IAM, permite gestionar la configuración de seguridad de tu cuenta, crear, usuarios roles y más. El usuario con el cual se creo la cuenta se llamará en adelante el usuario root, y al igual que los usuarios que crees para las personas que vayan a utilizar la cuenta de AWS se recomienda que tengan habilitado el segundo factor de autenticación, para ello puedes utilizar una aplicación en tu celular que permita generar tokens de autenticación como Authy o similar.

Para crear el segundo factor de autenticación para el usuario raíz (root) debes navegar el menú superior derecho en la opción Security Credential y estando autenticado como usuario raíz.

Segundo factor de autenticación MFA para usuario root
Figura 2. Segundo factor de autenticación MFA para usuario root

En el caso del segundo factor de autenticación para usuarios individuales lo debes hacer a través del servicio IAM seleccionando el usuario en cuestión y posteriormente Security Credentials, finalmente seguir los pasos en la sección MFA.

Segundo factor de autenticación MFA para usuarios no root
Figura 3. Segundo factor de autenticación MFA para usuarios no root

4. Facturación y advertencias

La facturación es un elemento muy importante para cualquier usuario, tanto para quienes se inician en la nube como para aquellos que tienen experiencia o servicios ejecutándose. En el menú superior derecho se encuentra la opción del panel de facturación que te muestra todos los detalles, aunque también se puede apreciar una información básica de costos en el momento de logearse.

Menú superior derecho / Panel de Facturación
Figura 4. Menú superior derecho / Panel de Facturación

El panel de facturación te mostrará información detallada de los consumos y te permitirá controlar los gastos. Es recomendable que configures la sección presupuestos y alertas que permitirán monitorear el consumo y el costo en caso que por error dejemos algún servicio que no deseemos encendido.

5. Servicios básicos de la nube

Finalmente, es conveniente hacer un recuento de algunos de los servicios más comunes y populares de AWS los cuales se exploraran en entradas posteriores de este blog.

  • EC2: Servicio de máquinas de computo virtualizadas con sofware base como sistema operativo o preconfigurada con software con productos de vendeodres reconocidos de ERP, CRM etc.
  • S3: Servicio de almacenamiento de objetos, persistente y con gran disponibilidad y durabiliad. Existen diferentes versiones del servicio que permiten diferentes niveles de acceso en terminos de tiempo y costo, util para manejar data fria o caliente.
  • Lambda: Servicio de funciones tipo serverless que permite ejecutar lógica en backend bajo demanda.
  • RDS: Servicio de base de datos relacionales, que inlcuye postgres, mariabd, mysql entre otros.
  • DynamoDB: Servicio de base de datos nativo de AWS NoSQL.
  • VPC: Servicio de Datacenter o Virtual Private Cloud que permite configurar la red y temas de conectividad especiales como conexiones VPN site to site.

6. Artículos de Interés

© 2024 ochoscar's blog

Tema por Anders NorenArriba ↑