Hoja de trucos de Kubernetes: arquitectura, componentes, hoja de comandos
Publicado: 2020-12-15Kubernetes 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.