Aprenda los comandos esenciales de Kubernetes con una nueva hoja de trucos

La nube funciona principalmente en Kubernetes, Kubernetes funciona principalmente en Linux y Linux funciona mejor cuando tiene un administrador de sistemas experimentado al mando. Ya sea que se vea a sí mismo como un arquitecto de la nube o simplemente como un humilde administrador de sistemas, la Internet moderna necesita usuarios que entiendan cómo las aplicaciones y los servicios pueden construirse dentro de contenedores, escalarse según demanda, monitorearse y administrarse juiciosamente.

Uno de los primeros pasos en el valiente mundo de los contenedores es aprender Kubernetes y su comando por excelencia: kubectl.

Índice

Instalación de kubectl

El kubectl comando le permite ejecutar comandos en clústeres de Kubernetes. Usado kubectl para implementar aplicaciones, ver registros, inspeccionar y administrar los recursos del clúster y solucionar problemas cuando ocurren. El clásico "problema" con kubectl (y Kubernetes en su conjunto) es que para ejecutar comandos en un clúster, primero necesita un clúster. Sin embargo, hay soluciones fáciles.

Primero, puede construir su propio clúster de Kubernetes por el costo de tres placas Raspberry Pi y periféricos asociados (fuentes de alimentación, principalmente). Una vez que se adquiere el hardware, lea Chris Collins' Cree un clúster de Kubernetes con Raspberry Piy tendrás tu propio clúster con kubectl instalado.

La otra forma de adquirir un clúster es usar Minikube, un entorno de práctica para Kubernetes. De todos los métodos para poner en funcionamiento un clúster, este es el más sencillo.

Hay aún más opciones; por ejemplo, puede tomar un curso sobre Kubernetes para unirse a un laboratorio que ejecuta un clúster, o puede ganar tiempo en una nube. No importa cómo inicie sesión en un clúster, siempre que tenga un entorno de Kubernetes para practicar.

Una vez que tenga acceso a un clúster, puede comenzar a explorar el kubectl mando.

Comprender las cápsulas y los contenedores

Un contenedor es un sistema Linux parcial y ligero dedicado a ejecutar una aplicación o servicio. Un contenedor está vinculado por un espacio de nombres del kernel, que le da acceso a componentes vitales del sistema en su host (el ordenador que ejecuta el contenedor) al evitar que envíe datos a su host. Los contenedores se mantienen como imágenes de contenedor (o simplemente Imágenes para abreviar) y definido por archivos de texto llamados archivo contenedor o archivo acoplable.

Un pod es una colección formal de contenedores y una manera fácil para que un administrador escale, supervise y administre cualquier cantidad de contenedores.

Juntas, son como "aplicaciones" de Kubernetes. La creación o creación de imágenes de contenedores es la forma en que ejecuta los servicios en la nube.

manejar una vaina

Dos registros de imágenes de contenedores fiables son Docker Hub y Quay. Puede buscar un sitio web de registro para obtener una lista de imágenes disponibles. Por lo general, hay imágenes oficiales de grandes proyectos proporcionados por el proyecto, así como imágenes de la comunidad para proyectos especializados, personalizados o de nicho. Una de las imágenes más simples y pequeñas es una Caja ocupada contenedor, que proporciona un entorno de shell mínimo y algunos comandos comunes.

Ya sea que extraiga una imagen de un registro o escriba su propia definición de imagen y la extraiga a su clúster desde un repositorio de Git, el flujo de trabajo es el mismo. Cuando desee iniciar un pod en Kubernetes:

  1. Encuentra una imagen que quieras usar en Centro acoplable o Muelle
  2. Tira de la imagen
  3. crear una vaina
  4. Implementar la cápsula

Si desea utilizar el contenedor BusyBox de ejemplo, puede realizar los últimos tres pasos con un solo comando:

$ kubectl create deployment my-busybox --image=busybox

Espere a que kubectl complete el proceso y, al final, tendrá una instancia de BusyBox ejecutándose. La cápsula no está expuesta al resto del mundo. Simplemente se ejecuta silenciosamente en su clúster en segundo plano.

Para ver qué pods se están ejecutando en su clúster:

$ kubectl get pods --all-namespaces

También puede obtener información sobre la distribución de pods:

$ kubectl describe deployment my-busybox

Interactuar con un pod

Los contenedores suelen contener archivos de configuración que determinan su automatización. Por ejemplo, la instalación del servidor Nginx httpd como contenedor no debería requerir su interacción. Inicie el contenedor en ejecución y simplemente funciona. Esto se aplica al primer contenedor que agrega a un pod y a cada contenedor posterior.

Uno de los beneficios del modelo de Kubernetes es que puede escalar sus servicios según sea necesario. Si su servicio web se ve abrumado por el tráfico inesperado, puede iniciar un contenedor idéntico en su nube (usando el archivo scale o autoscale subcomando), duplicando la capacidad de su servicio para manejar solicitudes entrantes.

Aun así, a veces es bueno ver alguna evidencia de que un pod está funcionando como se esperaba o poder arreglar algo que no parece funcionar correctamente. Para esto, puede ejecutar comandos arbitrarios en un contenedor:

$ kubectl exec my-busybox -- echo "hello cloud"

Alternativamente, puede abrir un shell en su contenedor, poniendo su entrada estándar en él y su salida en la salida estándar de su terminal:

$ kubectl exec --stdin --tty my-busybox -- /bin/sh

Servicios de exhibición

De forma predeterminada, los pods no están expuestos al mundo exterior en el momento de la creación, lo que le da tiempo para probarlos y verificarlos antes de que se activen. Suponga que desea instalar e implementar el servidor web Nginx como un pod en su clúster y hacerlo accesible. Al igual que con cualquier servicio, debe apuntar su pod a un puerto en su servidor. El kubectl subcomando expose puede hacerlo por ti:

$ kubectl create deployment
my-nginx --image=nginx
$ kubectl expose deployment
my-nginx --type=LoadBalancer --port=8080

Siempre que se pueda acceder a su clúster desde Internet, puede probar la accesibilidad de su nuevo servidor web abriendo un navegador y navegando hasta su dirección IP pública.

Más que solo vainas

Kubernetes ofrece más que solo imágenes de stock de servicios comunes. Además de ser un sistema de orquestación de contenedores, también es una plataforma para el desarrollo en la nube. Puede escribir e implementar aplicaciones, administrar y monitorear el rendimiento y el tráfico, implementar estrategias inteligentes de equilibrio de carga y mucho más.

Kubernetes es un sistema potente y se ha convertido rápidamente en la base de todo tipo de nubes, especialmente la nube híbrida abierta. Comience a aprender Kubernetes hoy. Y a medida que aprenda más sobre Kubernetes, necesitará algunos recordatorios rápidos de sus conceptos principales y sintaxis general, por lo que descargue nuestra hoja de trucos de Kubernetes y mantenlo cerca.

Artículos de interés

Subir