GNU/Linux >> Tutoriales Linux >  >> Linux

Comience a aprender Kubernetes desde su máquina local

Amigos y conocidos a menudo se comunican conmigo para preguntarme dónde y cómo pueden comenzar a aprender Kubernetes. Estas solicitudes provienen de una mezcla de personas de operaciones y desarrolladores que aún trabajan con sistemas heredados como máquinas virtuales y aplicaciones monolíticas. Términos como CI/CD y DevOps no son más que palabras de moda para ellos, ya que todavía están ocupados regando y alimentando los sistemas heredados que mantienen como parte de sus requisitos laborales diarios.

Están mostrando interés ahora que notaron que más y más cargas de trabajo se migran de VM a contenedores, y las aplicaciones monolíticas se rediseñaron a microservicios para manejar la innovación fácilmente y responder a las rápidas demandas del mercado. Ha llegado el momento de que aprendan las herramientas, las plataformas y las soluciones que provocan esta migración masiva a Kubernetes.

Esto me animó a escribir este artículo, para ayudar a mis amigos y otras personas que querían comenzar a aprender Kubernetes para impulsar su propio viaje hacia los contenedores y el mundo de las aplicaciones nativas de la nube.

Descargo de responsabilidad:Aprender Kubernetes va a ser un viaje lleno de baches. Aprenderá algunas terminologías nuevas y nuevas formas de administrar e implementar su aplicación de forma nativa en la nube.

Entonces, ¿qué es Kubernetes de todos modos?

Lo primero que debe hacer al aprender Kubernetes es encontrar una explicación clara de lo que es. Hay muchos libros y referencias de YouTube que puede usar para obtener las explicaciones más básicas. Encontré este video de YouTube, La guía infantil ilustrada de Kubernetes, que pensé que era la mejor explicación de lo que es Kubernetes. Echa un vistazo antes de seguir leyendo.

Los componentes de Kubernetes

Kubernetes no es una sola máquina sino una plataforma. Cuando implemente Kubernetes, obtendrá un clúster. Un clúster consta de un conjunto de máquinas maestras y trabajadoras, llamadas nodos, que ejecutan aplicaciones en contenedores. Cada clúster tiene al menos un nodo trabajador. Estos son los componentes de Kubernetes.

A continuación se muestra el aspecto de Kubernetes con todos los componentes unidos.

¿Cómo empezar?

Al aprender Kubernetes, debe implementar un clúster. Pero eso será un desafío para las personas que no pueden obtener el hardware adicional y encontrar tiempo para configurarlo junto con los recursos informáticos y de red necesarios. Este requisito a menudo descarrila un viaje de Kubernetes antes de que comience. Entonces, ¿cuál es la mejor manera de empezar?

Afortunadamente, existen varios proyectos de código abierto que le permiten implementar un clúster de Kubernetes desde su computadora portátil. Echemos un vistazo a esos proyectos antes de ofrecer mi propia opinión sobre cuál es la mejor manera de aprender Kubernetes e implementar su primera aplicación nativa de la nube.

Proyectos locales de Kubernetes al rescate

Estos son los proyectos locales que puede usar para explorar Kubernetes. Tenga en cuenta que estos proyectos no están listos para la empresa y se supone que solo deben usarse con fines de aprendizaje.

Nota:Antes de comenzar su exploración de Kubernetes, asegúrese de tener los recursos adecuados en su computadora portátil.

  • Linux:Red Hat Enterprise Linux, Fedora, CentOS
  • 16 GiB o más de RAM por máquina (menos deja poco espacio para tus aplicaciones).
  • 2 CPU en la máquina que usa como nodo del plano de control.
  • Conectividad de red completa entre todas las máquinas en el clúster.

minicubo

Minikube es uno de los más fáciles de instalar entre estas opciones. Le proporcionará un clúster de un solo nodo que se ejecuta sobre VirtualBox o KVM.

Requisitos de recursos:

  • CPU:2
  • Memoria:2GB
  • Espacio en disco:20 GB

Una vez que tenga un clúster en ejecución (nodo único), puede comenzar a familiarizarse implementando una aplicación simple usando la línea de comando kubectl para interactuar con su clúster local de Kubernetes. El único problema que noté al usar minikube es la limitación de agregar un nodo trabajador para completar la experiencia del clúster.

amable 

Kind requiere que ejecute Kubernetes en un contenedor Docker. Las amables instrucciones de instalación se pueden encontrar aquí.

Aunque kind es fácil de instalar, el problema que veo al usar este proyecto es la compleja configuración de red para acceder al clúster. Para alguien que recién comienza a aprender Kubernetes, podría ser prohibitivo.

Requisitos de recursos:

  • CPU:2
  • Memoria:8GB
  • Almacenamiento:20 GB

kubeadm

La puesta en marcha del clúster mediante kubeadm se puede utilizar para implementar aplicaciones nativas de la nube. Para empezar, tendrá un solo nodo maestro y un nodo trabajador.

La instalación de kubeadm en su computadora portátil es la experiencia más cercana a la implementación de clústeres de Kubernetes de nivel de producción. Debido a esto, kubeadm también es probablemente la forma más difícil de aprender Kubernetes.

Requisitos de recursos:

  • CPU:2
  • Memoria:8 GB (necesitará memoria adicional para la implementación de la aplicación).
  • Almacenamiento:20 GB

Miniturno

Minishift es un proyecto basado en OKD, el upstream detrás de OpenShift. Cuando instale Minishift, le proporcionará un clúster OpenShift de un solo nodo que se ejecuta dentro de VirtualBox o KVM.

Requisitos de recursos:

  • CPU:2
  • Memoria:4GB
  • Almacenamiento:20GB

Minishift es fácil de instalar y brinda más flexibilidad en comparación con otros proyectos porque puede instalarlo en Linux, Windows y macOS.

Dado que Minishift se basa en OKD, aprenderá no solo los conceptos básicos de Kubernetes, sino también Openshift y algunos de los componentes disponibles en Minishift.

El inconveniente de Minishift es que solo es compatible con OKD 3.11, por lo que no podrá obtener la experiencia completa de la nueva versión de OKD 4. Minishift se reemplaza por CodeReady Containers para obtener la experiencia completa de OKD 4, como se describe aquí.

Contenedores CodeReady (CRC) 

CRC se basa en OKD 4.1, que proporciona una configuración de un solo nodo en su computadora portátil. Funciona casi exactamente como Minishift y minikube. La instalación también es fácil; la documentación se puede encontrar aquí.

Requisitos de recursos:

  • CPU:4
  • Memoria:8GB
  • Almacenamiento:30GB

[ Obtenga este libro electrónico gratuito:Administrar sus clústeres de Kubernetes para principiantes. ]

Conclusiones

Hay muchas formas de implementar Kubernetes localmente para comenzar su propio viaje hacia el dominio de las habilidades importantes que están en el centro de la revolución de TI actual.

Si recién está comenzando, le sugiero que aprenda Kubernetes usando minikube porque descubrí que este es el más fácil para los principiantes. Una vez que esté familiarizado con el concepto de Kubernetes, el siguiente paso es pasar a CRC. Esto elevará sus habilidades de Kubernetes al siguiente nivel para que pueda aprender los componentes listos para la empresa que la mayoría de los adaptadores avanzados ya están usando.

Como se mencionó anteriormente, aprender Kubernetes es como aprender los sistemas operativos Linux nuevamente. No se desanime si se encuentra con un obstáculo. Tener una sólida comprensión de esta tecnología es como invertir en su futuro y, en cierto modo, lo ayuda a prepararse para el futuro.


Linux
  1. Cómo implementar su primer pod en un clúster de Kubernetes

  2. Cómo empezar a aprender un lenguaje de programación

  3. ¿Cómo copiar un archivo desde un servidor remoto a una máquina local?

  4. Conexión a una VPN de SonicWall desde una máquina con Linux

  5. Cómo obtener varios archivos de una máquina remota a una local con Ansible

Envíe sus escaneos a una máquina Linux a través de su red

Cómo instalar el clúster de Kubernetes (k8s) en RHEL 8

Componentes principales de un clúster de Kubernetes

Creación de su primera implementación en un clúster de Kubernetes

Clúster de Kubernetes usando K3S con Multipass de Canonical

Utilizando Grafana y Prometheus Kubernetes Cluster Monitoring