Una guía para principiantes para Kubernetes

Una guía para principiantes para Kubernetes
Esta guía le presentará cómo funciona Kubernetes y cómo comenzar con Kubernetes.

¿Qué es Kubernetes??

Kubernetes o K8S es una plataforma gratuita de código abierto para administrar entornos y servicios de aplicaciones contenedores. Kubernetes le permite crear aplicaciones contenedores portátiles y altamente extensibles que son fáciles de implementar y administrar. Se usa comúnmente junto con Docker para desarrollar un mejor control de aplicaciones y servicios en contenedores.

Características de Kubernetes

Las siguientes son las características esenciales ofrecidas por Kubernetes:

  1. Llenes y reversiones automatizadas en caso de que ocurran errores.
  2. Infraestructura automática.
  3. Escala horizontal
  4. Balanceador de carga
  5. Comprobaciones de salud automatizadas y capacidades de autocuración.
  6. Infraestructura altamente predecible
  7. Montes y sistema de almacenamiento para ejecutar aplicaciones
  8. Uso eficiente de recursos
  9. Cada unidad de Kubernetes está ligeramente atada entre sí, y cada una puede actuar como un componente independiente.
  10. Gestión automática de componentes de seguridad, red y red.

Arquitectura de Kubernetes

Comprender la arquitectura de Kubernetes lo ayudará a obtener un conocimiento más profundo de cómo trabajar con Kubernetes.

Los siguientes son componentes de hardware de la arquitectura de Kubernetes:

Un nodo es una representación de una sola máquina en un clúster de Kubernetes. El nodo representa una máquina de trabajadores individuales, ya sea en una máquina virtual o hardware físico.

Cada nodo en Kubernetes comprende varios componentes de software de Kubernetes, como PODS, Kubulet, Kube-Proxy y el tiempo de ejecución del contenedor, como Docker.

Una cápsula se refiere a una o más aplicaciones contenedores agrupadas. Kubernetes administra las cápsulas respectivas en lugar de los contenedores y crea réplicas si una de ellas falla. Los POD proporcionan recursos compartidos como interfaces de red y dispositivos de almacenamiento.

Contenedor/contenedor-runtime

Un contenedor es un paquete de software aislado y autónomo. Un contenedor contiene todo lo requerido para ejecutar una aplicación, que incluye el código, las bibliotecas del sistema y otras dependencias. Una vez que se implementa un contenedor, no puede cambiar el código ya que son inmutables. Por defecto, Docker proporciona tiempo de ejecución del contenedor de Kubernetes.

Kubelet

El kubelet es una aplicación simple que permite la comunicación entre el nodo y el nodo maestro. Es responsable de administrar las vainas y los contenedores. El nodo maestro utiliza el kubectl para realizar las acciones necesarias al nodo específico.

Kube-proxy

El Kube-Proxy es un proxy de red que está disponible en todos los nodos de Kubernetes. Administra las comunicaciones de red dentro y fuera del clúster.

Grupo

Un clúster es una colección de nodos Kubernetes que agregan sus recursos para crear una máquina poderosa. Los recursos compartidos por los nodos de Kubernetes incluyen memoria, CPU y discos.

Un clúster de Kubernetes está formado por un nodo maestro y otros nodos esclavos. El nodo maestro controla el clúster de Kubernetes, incluidas las aplicaciones de programación y escala, empuje y aplicando actualizaciones, y administrar los estados del clúster.

Volúmenes persistentes

Los volúmenes persistentes se utilizan para almacenar datos en un clúster de Kubernetes. Los volúmenes persistentes están hechos de varios volúmenes de los nodos del clúster. Una vez que se elimina o se agrega un nodo en el clúster, el nodo maestro distribuye el trabajo de manera eficiente.

Ingreso

La entrada de Kubernetes es un objeto API que permite el acceso al servicio Kubernetes fuera del clúster. Ingress generalmente utiliza el protocolo HTTP/HTTPS para exponer los servicios. Se implementa una entrada en un clúster utilizando un controlador de ingreso o un equilibrador de carga.

Maestro

El maestro, también conocido como plano de control, se refiere al componente de control central para la arquitectura de Kubernetes. Es responsable de gestionar la carga de trabajo e interfactar la comunicación entre el clúster y sus miembros.

El maestro se compone de varios componentes. Éstas incluyen:

  1. Gerente de control
  2. Planificador
  3. Servidor API
  4. Etcd

Gerente de control

El administrador de control o el manager de Kube-Control es responsable de ejecutar y administrar el clúster. El Daemon de control recopila información sobre el clúster y los informa al servidor API.

Planificador

El Kube-Scheduler o simplemente el planificador es responsable de la distribución de la carga de trabajo. Realiza funciones como determinar si el clúster es saludable, la creación de contenedores y más.

Realiza un seguimiento de los recursos como la memoria y la CPU y las cápsulas de horarios a los nodos de cómputo apropiados.

Servidor API

El Kube-Apiserver es una interfaz front-end para el maestro de Kubernetes. Te permite hablar con el clúster Kubernetes. Una vez que el servidor API recibe una solicitud, determina si la solicitud es válida y la procesa si es verdadero.

Para interactuar con el servidor API, debe usar llamadas REST a través de las herramientas de control de la línea de comandos como Kubectl o Kubeadm.

Etcd

El ETCD es una base de datos de valor clave responsable de almacenar datos de configuración e información sobre el estado del clúster Kubernetes. Recibe comandos de otros componentes del clúster y realiza las acciones necesarias.

Ejecutando Kubernetes

Esta sección cubre cómo comenzar con Kubernetes. Esta ilustración se prueba en un sistema Debian.

Inicie el terminal y actualice su sistema.

actualización de sudo apt-get
actualización de sudo apt-get

A continuación, instale varios requisitos como se muestra en el comando a continuación:

sudo apt-get instalación curl gnupg ca certificados apt-transport-https

Instalar Docker

A continuación, necesitamos instalar Docker, ya que Kubernetes lo usará como tiempo de ejecución del contenedor. Las instrucciones a continuación son para el sistema operativo Debian. Aprenda a instalar Docker en su sistema.

Agregue la tecla GPG oficial de Docker:

curl -fssl https: // descargar.estibador.com/Linux/Debian/GPG | sudo
GPG--Dearmor -o/usr/share/keyrings/docker-archive-keyring.gpg

A continuación, configure los repositorios de Docker en las fuentes como se muestra en el comando:

eco \
"Deb [Arch = amd64 firmado-by =/usr/share/keyrings/docker-archive-keyring.gpg] https: // descargar.estibador.com/Linux/Debian \
$ (lsb_release -cs) estable "| sudo tee/etc/apt/fuentes.lista.D/Docker.Lista> /dev /null

A continuación, actualice e instale Docker:

sudo apt-get actualización && sudo apt-get install docker-centerd.IO Docker-CE-Cli

Finalmente, comience y habilite el servicio Docker

sudo systemctl habilitar Docker.servicio
sudo systemctl start docker.servicio

Instalar kubernetes

A continuación, necesitamos instalar Kubernetes en el sistema. Del mismo modo, las instrucciones en esta guía se prueban en un sistema Debian.

Aprenda a instalar Kubernetes en su sistema

Comience descargando la clave de firma de Google Cloud:

sudo curl -fsslo/usr/share/keyrings/kubernetes-archive-keyring.gpg https: // paquetes.nube.Google.com/apt/doc/apt-key.gpg

A continuación, agregue el repositorio de Kubernetes:

echo "Deb [firmado-by =/usr/share/keyrings/kubernetes-archive-keyring.gpg] https: // apt.Kubernetes.IO/Kubernetes-Xenial Main "| Sudo Tee/etc/apt/fuentes.lista.D/Kubernetes.lista

Finalmente, actualice e instale los componentes de Kubernetes

actualización de sudo apt-get

sudo apt-get install kubectl kubelet kubeadm kubernetes kubernetes-cni

Inicialiaze Kubernetes nodo maestro

El siguiente paso es iniciar el nodo maestro de Kubernetes. Antes de hacer esto, se recomienda apagar el intercambio.

Para hacer esto, use el comando:

sudo swapoff -a

Una vez que apague el intercambio, inicialice el nodo maestro con los comandos:

sudo kubeadm init

Una vez que el comando se ejecuta correctamente, debe obtener tres comandos.

Copiar y ejecutar los comandos como:

mkdir -p $ home/.Kube \
sudo cp -i/etc/kubernetes/admin.conf $ casa/.Kube/config \
sudo chown $ (id -u): $ (id -g) $ home/.Kube/config

Implementar la red de pod

El siguiente paso es implementar una red POD. En esta guía, utilizaremos el AWS VPC CNI para Kubernetes.

Use el comando como:

sudo kubectl aplicar -f https: // raw.githubusercontent.com/aws/amazon-vpc-cni-k8s/v1.8.0/config/v1.8/AWS-K8S-CNI.yaml

Al finalizar, asegúrese de que el clúster esté en funcionamiento ejecutando el comando:

sudo kubectl cluster-info

Sería mejor si obtuviera la salida como se muestra:

El plano de control de Kubernetes se ejecuta en https: // 192.168.43.29: 6443
Coredns se ejecuta en https: // 192.168.43.29: 6443/API/V1/Spaces/Kube-System/Services/Kube-DNS: DNS/Proxy

Para mostrar todos los nodos en ejecución, use el comando:

sudo kubectl obtiene nodos

Implementar una aplicación

Implementemos una aplicación MySQL y expongamos el servicio en el puerto 3306. Use el comando como se muestra:

sudo kubectl aplicar -f https: // k8s.IO/Ejemplos/Application/MySQL/MySQL-Deployment.yaml
sudo kubectl expone la implementación mysql --port = 3306 --name = mysql-server

Para mostrar la lista de implementaciones, use el comando:

Kubectl obtiene implementaciones

Para obtener información sobre las cápsulas, use el comando:

sudo kubectl describe vainas

Para resumir

Kubernetes es una herramienta robusta de implementación y gestión de contenedores. Este tutorial solo rasca la superficie de Kubernetes y sus capacidades.