Hoja de trucos de Kubernetes: arquitectura, componentes, hoja de comandos

Publicado: 2020-12-15

Kubernetes se ha convertido en una parte esencial de las industrias y está cambiando el mundo de la tecnología. Janet Kuo, copresidenta de KubeCon, abordó las características de Kubernetes y su importancia en el futuro. Habla sobre las extensiones y soluciones de Kubernetes que cambiarán el mundo .

Esta hoja de trucos proporcionará una referencia para los profesionales que trabajan en la implementación de Kubernetes. Contiene todos los detalles necesarios para ayudar a los principiantes que son nuevos en Kubernetes. La hoja de trucos de Kubernetes es un medio rápido y práctico para consultar todos los conceptos y comandos esenciales de Kubernetes.

Tabla de contenido

Acerca de Kubernetes

Una plataforma de código abierto para la implementación automática y el escalado de contenedores en los clústeres de hosts para proporcionar una infraestructura centrada en contenedores se conoce como Kubernetes (también conocido como "Kube" o k8s). Permite una gestión fácil y eficiente de diferentes hosts que ejecutan contenedores de Linux al agruparlos.

Kubernetes es una plataforma que está diseñada para administrar completamente el ciclo de vida de las aplicaciones y los servicios en contenedores. Un usuario de Kubernetes puede definir las formas en que una aplicación debe ejecutarse e interactuar con diferentes aplicaciones.

Los usuarios pueden cambiar el tráfico entre diferentes versiones de aplicaciones, realizar actualizaciones, aumentar y reducir los servicios, etc. con Kubernetes. Ofrece a los usuarios un alto grado de flexibilidad, fiabilidad y potencia en la gestión de aplicaciones.

Algunas de las características principales de Kubernetes son:

  • Maximice los recursos haciendo un mejor uso del hardware.
  • Un orquestador de contenedores en varios hosts.
  • Automatice el proceso de implementación y las actualizaciones.
  • Capaz de ejecutar un contenedor de Linux.
  • El escalado automático ayuda a lanzar contenedores en los nodos del clúster.
  • Escalando hacia arriba y hacia abajo según sea necesario.
  • Autorreparación reemplazando, reprogramando y reiniciando los contenedores muertos.
  • Rollbacks y rollouts automatizados.
  • Equilibrio de carga y descubrimiento de servicios.
  • Reinicio automático, colocación automática y replicación automática, etc.

Leer: Algoritmo de aprendizaje profundo

Arquitectura de Kubernetes

La arquitectura de Kubernetes consta de capas: capas superiores e inferiores. La complejidad de abstraer la capa superior se puede encontrar en las capas inferiores. Las máquinas físicas o virtuales individuales se reúnen en un clúster. Se utiliza una red compartida para la comunicación entre cada servidor. Entonces, al igual que otras plataformas distribuidas, Kubernetes tiene un maestro (al menos) y múltiples nodos de cómputo.

  • El maestro de Kubernetes programa las implementaciones, expone la API y administra el clúster general de Kubernetes.
  • El nodo ejecuta un tiempo de ejecución del contenedor, un agente para comunicarse con el maestro y otros componentes de monitoreo, registro, etc.

Componentes de la arquitectura de Kubernetes

Echemos un vistazo al propósito y los componentes del maestro y los nodos en la arquitectura de Kubernetes.

Maestría

El maestro mantiene el estado deseado del clúster. Dado que administra todo el clúster, se le llama maestro. Contiene:

  • Servidor de API: servidor de API de Kubernetes
  • Programador: se utiliza para la programación de pods en nodos trabajadores.
  • Controlador: administra la replicación de pods
  • Etcd: un servicio de metadatos

Nodos

Contiene los servicios necesarios que son importantes para ejecutar los pods. El maestro gestiona los nodos. También se le llama Minion. Contiene:

  • Pod: Grupo de contenedores
  • Docker: tecnología basada en contenedores, espacio de usuario del sistema operativo.
  • Kubelet: Agentes contenedores que se encargan de mantener el conjunto de pods.
  • Kube-proxy: enruta el tráfico que llega a un nodo desde el servicio

Ahora, comprendamos los comandos importantes de Kubernetes.

Comandos de Kubectl

Kubectl es la herramienta de línea de comandos para Kubernetes. Los comandos básicos de Kubectl se pueden dividir en:

  • Introspección de pods y contenedores
  • Introspección de clúster
  • depuración
  • Comandos rápidos
  • Objetos

Introspección de contenedores y pods

Funcionalidad Mando
Para describir los nombres de los pods Kubectl describe pod<nombre>
Para listar todos los pods actuales Kubectl obtiene pods
Para enumerar todos los controladores de replicación Kubectl obtener rc
Para mostrar el nombre del controlador de replicación Kubectl describe rc <nombre>
Para enumerar los controladores de replicación en un espacio de nombres Kubectl obtiene rc –namespace=”namespace”
Para mostrar un nombre de servicio Kubectl describe svc<nombre>
Para listar servicios Kubectl obtener cvc
Para observar nodos continuamente. Kubectl obtener nodos -w
Para eliminar un pod Kubectl eliminar pod<nombre>

Introspección de clúster

Funcionalidad Mando
Para obtener información relacionada con la versión Versión Kubectl
Para obtener detalles de configuración Vista de configuración g de Kubectl
Para obtener información relacionada con el clúster Información del clúster de Kubectl
Para obtener información sobre un nodo Kubectl describe el nodo <nodo>

Comandos de depuración

Funcionalidad Mando
Para mostrar las métricas de un pod Cápsula superior de Kubectl
Para mostrar métricas para un nodo Nodo superior de Kubectl
Para ver registros de Kubelet Mire -n 2 cat/var/log/kublet.log
Para obtener registros del servicio para el contenedor Registros de Kubectl -f<nombre>>[-c< $contenedor>]
Para la ejecución del comando en servicio seleccionando un contenedor Kubectl exec<servicio><comandos>[-c< $contenedor>]

Comandos rápidos

Los siguientes comandos rápidos se usan a menudo y, por lo tanto, son muy útiles.

Funcionalidad Mando
Para lanzar un pod con un nombre y una imagen. Kubectl run<nombre> — image=<nombre-imagen>
Para crear un servicio descrito en <manifest.yaml> Kubectl create -f <manifiesto.yaml>
Para escalar el contador de replicación para contar el número de instancias. Escala de Kubectl –replicas=<recuento>rc<nombre>
Para asignar el puerto externo al puerto de replicación interno. Exponer rc<nombre> –port=<externo>–target-port=<interno>
Por detener todos los pods en <n> Drenaje de Kubectl<n>– delete-local-data–force–ignore-daemonset
Para crear un espacio de nombres. Kubectl crear espacio de nombres <espacio de nombres>
Para permitir que el nodo maestro ejecute pods. Kubectltaintnodes –all-node-role.kuernetes.io/master-

Objetos

Algunos de los objetos familiares utilizados en Kubernetes son los siguientes:

Lista de objetos comunes
Todos Revisiones del controlador
cm= conf gmaps Enlaces de roles de clúster
cronjobs cs=estados de los componentes
Implementar = implementaciones límites = rangos límite
ev= eventos hpa = ajuste de escala automático de pod horizontal
trabajos ds= conjuntos de demonios
No = nodos ns= espacios de nombres
po = vainas Preajuste de pod
Psp=políticas de seguridad de pod Pv= volúmenes persistentes
cuota = cuotas de recursos rs = conjuntos de réplicas
roles rc= controladores de replicación
sc= clases de almacenamiento pdb= presupuestos de distribución de pods
clusterroles misterios
crd=definición de recurso personalizado Plantillas de cápsulas
csr= solicitudes de firma de certificado sa= cuentas de servicio
Políticas de red Netpol Enlaces de roles
ing = ingreso pvc= siniestros de volumen persistente
ep=puntos finales sts= conjuntos con estado

Lea también: Regularización en aprendizaje profundo

Hoja de referencia de comandos de Kubernetes

Toda la información básica sobre Kubernetes, su arquitectura y comandos se muestra a continuación en la hoja de trucos de Kubernetes:

Si está interesado en obtener más información sobre técnicas de aprendizaje profundo, aprendizaje automático, consulte el Diploma PG en aprendizaje automático e inteligencia artificial de IIIT-B y upGrad, que está diseñado para profesionales que trabajan y ofrece más de 450 horas de capacitación rigurosa, más de 30 estudios de casos y asignaciones, estado de exalumno de IIIT-B, más de 5 proyectos prácticos finales prácticos y asistencia laboral con las mejores empresas.

¿Qué es Kubernetes?

Kubernetes es una plataforma de código abierto para automatizar la implementación, el escalado y la gestión de contenedores. Un contenedor es un paquete de software listo para ejecutar que contiene todo lo necesario para ejecutar la aplicación: código, entorno de tiempo de ejecución, aplicación y bibliotecas del sistema. Los contenedores son como unidades lógicas de aplicación, y cuando Kubernetes los agrupa, se vuelve fácil administrar y descubrir los contenedores. Estos contenedores se implementan y escalan entre hosts para proporcionar una infraestructura centrada en contenedores. En definitiva, es una plataforma que gestiona todo el ciclo de vida de las aplicaciones en contenedores.

¿Cuáles son los principales componentes de la arquitectura de Kubernetes?

Hay dos componentes principales en la arquitectura de Kubernetes: el nodo maestro y el nodo trabajador. Un nodo es la máquina de trabajo principal que es importante para ejecutar un grupo de clústeres llamados pods. El nodo maestro administra todo el clúster, mientras que el nodo trabajador realiza las tareas asignadas por el nodo maestro. Estos nodos tienen muchos componentes incorporados dentro de ellos. El nodo principal contiene el servidor API de Kubernetes, el programador de Kubernetes, el controlador de Kubernetes y Etcd. El nodo trabajador tiene pod, docker, kubelet y kube-proxy.

¿Qué hacen kubelet y kube-proxy?

Kubelet, que está presente en todos los nodos, garantiza que los contenedores funcionen bien en un pod. Lo hace tomando un conjunto de PodSpecs proporcionado principalmente a través de un servidor y verificando los contenedores presentes en esos PodSpecs. Un PodSpec es un objeto YAML o JSON que describe un pod. El proxy de red de Kubernetes, también conocido como kube-proxy, mantiene las reglas de red en los nodos. La comunicación desde las sesiones de red dentro o fuera del clúster a los pods es posible a través de estas reglas de red. Kube-proxy reenvía el tráfico si la capa de filtrado de paquetes del sistema operativo no está disponible.