Las 20 preguntas y respuestas principales de la entrevista de Kubernetes que necesita saber en 2022

Publicado: 2021-01-04

Kubernetes es una de las herramientas de orquestación de contenedores más buscadas en el mercado actual. Este sistema, de código abierto de Google en 2014, se ha convertido en el favorito de empresas como SoundCloud, SAP, The New York Times, eBay, Huawei y muchas otras.

Pero solo hay unos pocos expertos capacitados para satisfacer la gran demanda de profesionales certificados en Kubernetes. Además, los procedimientos actuales de selección de puestos de trabajo otorgan un valor inmenso a los conceptos técnicos. Por lo tanto, siempre es recomendable preparar sus respuestas a las preguntas de la entrevista de Kubernetes de antemano.

La idea básica detrás de Kubernetes es abstraer los recursos informáticos subyacentes. Saca las máquinas, el almacenamiento y las redes de sus implementaciones físicas. Sin duda, el impulso detrás de la plataforma va en aumento. Kubernetes se está llamando el sistema operativo de la nube. Obtenga más información sobre Kubernetes y sus redes.

Si está pensando en seguir una carrera en este campo, lea las preguntas de la entrevista de Kubernetes que se detallan a continuación. ¡Da el primer paso y familiarízate con los fundamentos!

Preguntas y respuestas de la entrevista de Kubernetes 2022

1. Defina Kubernetes.

Kubernetes es mucho más que una plataforma de contenedores. Automatiza las tareas de implementación, escalado y balanceo de carga de aplicaciones. Además, esta herramienta de administración de múltiples contenedores funciona bien con la mayoría de los proveedores de la nube y se beneficia de las contribuciones de una comunidad experta de código abierto. Kubernetes está escrito en lenguajes de programación Go.

2. Enumere algunas características clave de Kubernetes.

    1. Programación automatizada: programador avanzado para lanzar contenedores en nodos de clúster.
    2. Autorreparación: puede reprogramar, reemplazar y reiniciar contenedores que han muerto.
    3. Implementaciones y reversiones automatizadas: admite implementaciones y reversiones.
    4. Escalado horizontal: capacidades de escalar aplicaciones hacia arriba o hacia abajo según los requisitos.
  1. Enumere las diferencias entre Kubernetes y Docker Swarms.

Docker Swarm es una herramienta para construir contenedores para la gestión de su ciclo de vida. Kubernetes es más extenso que Docker Swarm, ya que está destinado a orquestar clústeres y coordinar clústeres de nodos a escala. Aunque Kubernetes es altamente escalable, Docker Swarm es unas cinco veces más rápido de escalar que Kubernetes. Además, Docker Swarm equilibra automáticamente la carga del tráfico entre diferentes contenedores, para lo cual se necesita una intervención manual en Kubernetes.

Pero, Kubernetes tiene otras capacidades. Tiene herramientas integradas de registro y monitoreo junto con un mecanismo de reversión automática. Docker Swarm no puede realizar reversiones automáticas ni escalado automático como Kubernetes.

4. ¿En qué se diferencia la implementación de aplicaciones en hosts de la implementación en contenedores?

Cuando implementa una aplicación en hosts, el núcleo del sistema operativo permite que se instalen muchas bibliotecas en él. Todas las aplicaciones comparten las diversas bibliotecas presentes en ese sistema operativo. Sin embargo, la arquitectura de implementación de aplicaciones en contenedores es un poco diferente.

En la arquitectura contenedorizada, el kernel es lo único común entre las aplicaciones. Otras aplicaciones no pueden invadir las bibliotecas y los archivos binarios que necesita una aplicación. Por lo tanto, existen aislados del resto del sistema. Por ejemplo, si una aplicación en particular requiere Python, solo esa aplicación tendrá acceso a ella.

5. ¿Qué entiendes por orquestación de contenedores? ¿Por qué lo necesitas?

Suponga que hay 4-5 microservicios para una aplicación. Ahora, estos microservicios estarían en contenedores individuales. Por lo tanto, se requeriría la orquestación de contenedores para permitir que los servicios se comuniquen entre sí y trabajen juntos para satisfacer las necesidades del servidor. El proceso es como una orquesta musical donde diferentes instrumentos se tocan en armonía para formar una composición.

6. ¿Qué es Kubelet?

Kubelet es un servicio de agente que ejecuta pods. Un pod no es más que un grupo de contenedores implementados en el mismo host o que tienen algunos recursos comunes, como una sola IP, volúmenes, etc. El kubelet funciona con las descripciones de estos contenedores proporcionadas en PodSpec. Su objetivo principal es ejecutarse en cada nodo, garantizar que los contenedores estén en buen estado y en funcionamiento, y permitir aún más la comunicación entre los nodos principal y trabajador.

Leer: Preguntas y respuestas de la entrevista de pila completa

7. ¿Cuál es el papel de los clústeres en Kubernetes?

Kubernetes le permite hacer cumplir la administración de estado requerida mediante la alimentación de servicios de clúster de una configuración específica. Luego, estos servicios de clúster ejecutan esa configuración en la infraestructura. Los siguientes pasos están involucrados en el proceso:

  • El archivo de implementación contiene todas las configuraciones que se alimentarán a los servicios de clúster.
  • El archivo de implementación se alimenta a la API.
  • Ahora, los servicios de clúster programan los pods en el entorno.
  • Los servicios de clúster también garantizan que se esté ejecutando la cantidad correcta de pods

Por lo tanto, el clúster de Kubernetes se compone esencialmente de la API, los nodos trabajadores y el proceso Kubelet de los nodos.

8. ¿Para qué sirve Kubectl?

Kubectl es una herramienta para controlar clústeres de Kubernetes. De hecho, “ctl” significa control. Es una interfaz de línea de comandos que le permite pasar comandos al clúster y administrar el componente de Kubernetes.

9. Defina Google Container Engine.

Google Container Engine (GKE) es una plataforma de administración que admite contenedores y clústeres de Docker que se ejecutan dentro de los servicios de nube pública de Google. Es un motor de código abierto basado en Kubernetes.

10. Explique el uso de nodos en Kubernetes.

Un nodo proporciona los servicios necesarios para ejecutar pods. También conocidos como minions, los nodos pueden ejecutarse en una máquina física o virtual según el clúster. En Kubernetes, un nodo es la máquina de trabajo principal y los componentes maestros administran cada nodo en el sistema.

Ahora que está al día con los conceptos básicos, veamos algunas preguntas y respuestas más de la entrevista de Kubernetes para obtener claridad.

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

El nodo maestro y el nodo trabajador conforman la arquitectura de Kubernetes. Ambos componentes tienen múltiples servicios integrados dentro de ellos. Por ejemplo, el componente maestro tiene kube-controller-manager, kube-scheduler, etcd y kube-apiserver. El nodo trabajador tiene servicios como container runtime, kubelet y kube-proxy ejecutándose en cada nodo.

Leer: Reaccionar preguntas y respuestas de la entrevista

12. Defina kube-apiserver y kube-scheduler.

Kube-apiserver es el front-end del panel de control del nodo máser que expone todas las API de los componentes. Establece la comunicación entre los nodos de Kubernetes y los componentes maestros. El kube-scheduler administra la carga de trabajo de los nodos trabajadores. Realiza un seguimiento de la utilización de los recursos para garantizar que la programación se realice en los nodos adecuados.

13. Explique brevemente la función del administrador del controlador de Kubernetes.

En Kubernetes, varios procesos se ejecutan en el nodo maestro y se compilan juntos en forma de Administrador de controladores de Kubernetes. Es un demonio que incorpora controladores, incluidos los siguientes:

  • Controlador de nodos: gestiona el estado, es decir, la creación, actualización y eliminación de nodos
  • Controlador de replicación: mantiene pods para cada objeto de replicación
  • Cuenta de servicio y controlador de tokens: relacionado con las cuentas predeterminadas y los tokens de acceso a la API para nuevos espacios de nombres
  • Controlador de punto final: cuida los objetos del punto final (pods y servicios)
  1. ¿Qué hace un administrador de controladores en la nube?

Un Cloud Controller Manager (CCM) es un demonio que permite incorporar bucles de control específicos de la nube. Abstrae el código del proveedor específico de la nube del código principal de Kubernetes. También ayuda a administrar la comunicación con los servicios en la nube subyacentes. Su diseño se basa en el mecanismo de complementos, lo que significa que los proveedores de la nube integran su código con el CCM mediante complementos.

15. ¿Cuál es el rol de un balanceador de carga?

Un equilibrador de carga proporciona una forma estándar de distribuir el tráfico de red entre diferentes servicios de back-end, lo que maximiza la escalabilidad. Según el entorno de trabajo, puede haber dos tipos de balanceador de carga: interno o externo.

El equilibrador de carga interno puede equilibrar automáticamente la carga y asignar la configuración necesaria a los módulos. Por otro lado, el balanceador de carga externo guía el tráfico de carga externo a los pods de back-end. En Kubernetes, los dos métodos de equilibrio de carga funcionan a través de la función kube-proxy.

16. ¿Cómo puede ejecutar Kubernetes localmente?

Puede ejecutar Kubernetes localmente con la herramienta Minikube. Ejecuta un clúster de un solo nodo dentro de una máquina virtual en su computadora portátil. Por lo tanto, proporciona una manera eficiente para los usuarios que recién comienzan y desean probar Kubernetes.

17. ¿Qué es Heapster?

Heapster es una herramienta de recopilación de métricas y supervisión del rendimiento compatible de forma nativa en el clúster de Kubernetes. Se ejecuta como cualquier otro pod en el clúster, descubre todos los nodos y consulta información de los nodos de Kubernetes. Esta herramienta de administración de contenedores funciona a través de un agente en la máquina.

18. ¿Qué es ETCD en Kubernetes?

Etcd es un almacén para la configuración, el estado y los metadatos de los clústeres de Kubernetes. Está escrito en el lenguaje de programación Go y representa el estado del clúster en un momento determinado. Este almacén de datos sirve como columna vertebral de los sistemas distribuidos.

19. ¿Qué entiendes por monitorización de recursos de contenedores?

Desde la perspectiva del usuario, es vital comprender la utilización de recursos en diferentes capas y niveles de abstracción, como contenedores, servicios y todo el clúster. Cada nivel se puede monitorear usando varias herramientas, a saber:

  • Grafana
  • Heapster
  • InflujoDB
  • CAsesor
  • Prometeo
  1. ¿Cómo puede garantizar la seguridad de su entorno mientras usa Kubernetes?

Puede seguir e implementar las siguientes medidas de seguridad mientras usa Kubernetes:

  • Restringir el acceso a ETCD
  • Limite el acceso directo a los nodos
  • Definir cuota de recursos
  • Todo debe registrarse en el entorno de producción.
  • Usar imágenes del repositorio autorizado
  • Cree reglas y políticas estrictas para los recursos
  • Llevar a cabo un escaneo continuo de seguridad y vulnerabilidad
  • Aplicar actualizaciones de seguridad regularmente

Obtenga un curso de desarrollo de software de las mejores universidades del mundo. Obtenga programas Executive PG, programas de certificados avanzados o programas de maestría para acelerar su carrera.

Terminando

En este artículo, cubrimos las preguntas esenciales de la entrevista de Kubernetes para ayudarlo a actualizar sus objetivos profesionales. ¡Así que acepta el desafío de aprender y no olvides repasar!

Si desea aprender y dominar Kubernetes, DevOps y más, consulte el programa Executive PG de IIIT-B y upGrad en el programa de desarrollo de software de pila completa.

Prepárate para una carrera del futuro

Aplicar ahora para Maestría en Ingeniería de Software