¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. Kubernetes
  3. Instalar el entorno Kubernetes
Extrait - Kubernetes Administre la plataforma de despliegue de sus aplicaciones en contenedores
Extractos del libro
Kubernetes Administre la plataforma de despliegue de sus aplicaciones en contenedores
3 opiniones
Volver a la página de compra del libro

Instalar el entorno Kubernetes

Objetivos del capítulo y requisitos previos

Para abordar este capítulo, debe dominar un mínimo de habilidades en la administración de Linux, así como en el uso de la línea de comandos.

El objetivo de este capítulo es configurar un entorno de prueba local con Minikube y kubectl. Si ya tiene un clúster funcional, puede omitir la parte dedicada a Minikube y pasar directamente a la parte relacionada con kubectl.

Otra parte del capítulo tendrá como objetivo preparar su entorno, para que sea lo más eficiente posible con mecanismos de autocompletado (con bash o zsh).

Finalmente, se abordarán algunas nociones necesarias del formato YAML.

Alternativa a la instalación en local

1. ¿Por qué estas alternativas?

Implementar Kubernetes no es una operación sencilla y requiere muchos conocimientos a nivel de sistema. También es muy recomendable tener un conocimiento sólido de Linux o, al menos, de Unix en general:

  • Gestión de procesos del sistema.

  • Gestión de usuarios.

  • Gestión del espacio en disco.

En caso de que instalar comandos kubectl o implementar Minikube pudiera ser un obstáculo, existen alternativas bastante viables para abordar el funcionamiento de Kubernetes.

2. Utilizar un servicio gestionado

La mayoría de los proveedores informáticos en la nube (en inglés cloud provider) ofrecen clústeres de Kubernetes en forma de servicios gestionados con créditos de uso.

En el momento de escribir este libro, los principales proveedores ofrecían las siguientes ofertas:

  • 300$ en Google para consumir durante un año.

  • 200$ en Azure para consumir durante un año.

  • Período de prueba gratuito en Amazon durante 1 año.

Otro aspecto que es preciso tener en cuenta: Google y Azure ofrecen una consola en línea de comandos, directamente desde la interfaz del navegador web. Por lo tanto, es posible probar el servicio de forma completa sin instalar nada en local.

Atención: el uso de estos servicios puede impedirle ejecutar determinados ejemplos del libro, aunque en general sean compatibles...

Implementar el comando kubectl

1. ¿Para qué sirve kubectl?

Kubernetes se administra mediante una API, disponible a través de una interfaz HTTP, y se puede usar con un lenguaje de programación como Python, Java, o mediante llamadas a curl en shell Unix.

Sin embargo, kubectl sigue siendo mucho más fácil de usar para las primeras interacciones con un clúster de Kubernetes. De hecho, este último permite soportar todas las operaciones comunes del tipo consulta, creación o eliminación de elementos en un clúster, así como los mecanismos de autenticación.

2. Instalar kubectl

Las instrucciones de instalación se pueden encontrar en la siguiente ubicación: https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl

a. Instalación en Debian/Ubuntu

La instalación requiere instalar un paquete Debian. A continuación, se muestran los comandos que se deben pasar para instalar esta herramienta:

  • Añadir las claves:

$ wget -O - https://packages.cloud.google.com/apt/doc/apt-key.gpg\ 
         | sudo apt-key add - 
  • Instrucción de las fuentes Kubernetes:

$ echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" \ 
         | sudo tee -a /etc/apt/sources.list.d/kubernetes.list 
  • Actualización de las fuentes de paquetes:

$ sudo apt update 
  • Instalación del paquete kubectl:

$ sudo apt install kubectl 

b. Instalación en CentOS/RHEL o Fedora

La instalación de kubectl requiere la instalación de un paquete RPM. A continuación, se detallan las operaciones que es preciso realizar:

  • Declarar un archivo /etc/yum.repos.d/kubernetes.repo que apunte al repositorio de RPM:

cat <<EOF > /etc/yum.repos.d/kubernetes.repo 
[kubernetes] 
name=Kubernetes 
baseurl=https://packages.cloud.google.com/yum/repos/ 
kubernetes-el7-x86_64 
enabled=1 
gpgcheck=1 
repo_gpgcheck=1 
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg 
https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg 
EOF 
  • Instalar el paquete RPM:

yum install -y kubectl 

c. Instalación con ayuda de Arkade

La administración de Kubernetes requiere muchas utilidades que rara vez están disponibles como paquetes de sistema listos para usar o que, cuando...

Implementar Minikube

1. ¿Por qué llamar a Minikube?

Minikube es un proyecto que tiene como objetivo proporcionar un entorno aislado para que un usuario experimente el funcionamiento de Kubernetes.

Este mecanismo no se utiliza para alojar aplicaciones en producción, sino para experimentar el funcionamiento de Kubernetes de forma segura.

Tenga en cuenta que existen alternativas como k3s, kind o el cliente Docker.

2. Descargar e instalar Minikube

Minikube se presenta como un archivo binario para descargar. Para poder utilizarlo, se debe colocar en las rutas del usuario (variable de entorno PATH).

Si Arkade ya está presente, use la siguiente instrucción:

$ arkade get minikube 

De lo contrario, utilice las siguientes instrucciones para completar la instalación:

  • Descargar Minikube:

$ MINIKUBE_URL=https://storage.googleapis.com/minikube/releases 
$ curl -Lo minikube \ 
          $MINIKUBE_URL/latest/minikube-linux-amd64 
  • Mover el archivo Minikube a /usr/local/bin:

sudo mv minikube /usr/local/bin 
  • Establecer los permisos de ejecución:

sudo chmod +x /usr/local/bin/minikube 

Copiar el archivo Minikube al directorio /usr/local/bin hace que el comando sea accesible automáticamente. Por lo tanto, no es necesario modificar la variable de entorno PATH.

3. Verificar la instalación de Minikube

Ejecutar el comando minikube sin parámetros devolverá la ayuda en línea....

Instalar el clúster de Kubernetes con Minikube

1. Opciones de ejecución

La instalación del clúster de Kubernetes por parte de Minikube se realiza mediante un contenedor Docker o una máquina virtual (controlada por un hipervisor). De forma predeterminada, Minikube intentará detectar automáticamente la mejor solución. Posteriormente, se dará un ejemplo basado en Docker o utilizando un hipervisor.

Tenga en cuenta que hay muchas opciones de hipervisores. Este libro solo tratará el caso de VirtualBox y KVM en Linux.

Los dos hipervisores son relativamente parecidos. Por lo tanto, no es necesario instalar ambos. Elija la solución que más le convenga. En caso de que no tenga ninguno de los dos, priorice la solución basada en Docker.

2. Instalar Docker

a. Instalar Docker Community Edition en Ubuntu

Docker ofrece sus propios archivos binarios como paquetes. En el caso de distribuciones compatibles con Ubuntu, esta instalación se realiza siguiendo estas instrucciones:

  • Añadir los paquetes que se requieren:

sudo apt-get install \ 
    apt-transport-https \ 
    ca-certificates \ 
    curl \ 
    gnupg-agent \ 
    software-properties-common 
  • Recuperar la clave del repositorio de paquetes Docker:

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg |  
sudo apt-key add - 
  • Añadir la fuente de paquetes Docker:

$ sudo add-apt-repository \ 
  "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ 
  $(lsb_release -cs) \ 
  stable" 
  • Actualizar la lista de paquetes:

$ sudo apt update 
  • Para terminar, instalar Docker:

$ sudo apt-get install docker-ce docker-ce-cli containerd.io 

Para más detalles, no dude en consultar la siguiente dirección: https://docs.docker.com/engine/install/ubuntu/

b. Instalación alternativa

En el caso de utilizar otra distribución de Linux o cualquier otro tipo de sistema operativo (Windows o macOS), no dude en visitar la documentación oficial en la siguiente dirección: https://docs.docker.com/

c. Configurar los accesos a Docker

De forma predeterminada, la ejecución de comandos en el demonio Docker se debe realizar con sudo. Es posible evitar esta escalada añadiendo su usuario al grupo docker...

Algunas nociones sobre el formato YAML

El comando kubectl permite interactuar con Kubernetes para crear ciertos objetos (despliegue, dirección de servicio, proxy inverso, etc.). Por otro lado, como se trata de llevar un poco más allá la gestión (automatización, actualización de elementos, etc.), se vuelve necesario hacerlo con archivos YAML.

Principalmente, YAML permite escribir estructuras de datos. Estos datos pueden adoptar la forma de listas o diccionarios. Este lenguaje permite escribir las mismas estructuras de varias maneras, en función del enfoque deseado: legibilidad o compacidad (aunque, en general, la legibilidad es prioritaria).

En YAML, el formato JSON se puede usar tal cual; la principal diferencia entre las notaciones JSON y YAML se centra principalmente en términos de legibilidad.

1. Declaraciones de pares clave/valor

El lenguaje YAML se utiliza para declarar pares clave/valor. La clave tiene la forma de una secuencia de caracteres seguida de dos puntos (:) que, a su vez, está seguida de un carácter de espacio.

El nombre de estas claves no tiene limitación. Por otro lado, es preferible dar prioridad a nombres sencillos que utilicen letras, números y guiones bajos (_).

Ejemplos de nombres de claves: kind, apiVersion, spec, data...

A continuación, el contenido se almacena después de la clave. Este contenido puede tener las siguientes formas:

  • Contenido simple (cadena de caracteres, número entero o decimal, etc.).

  • Un subobjeto.

  • Una matriz de elementos (puede estar compuesta...