Principales 6 comandos de Kubectl y consejos de Kubectl

Principales 6 comandos de Kubectl y consejos de Kubectl
Los 6 mejores comandos de Kubectl y consejos de Kubectl
Los 6 mejores comandos de Kubectl y consejos de Kubectl

El comando kubectl puede ser el comando más utilizado que puedes escribir al trabajar con el ecosistema de Kubernetes. Como sabes, kubectl es la puerta de entrada a todo el mundo de Kubernetes, ya que prácticamente todas nuestras interacciones pasan por esa parte, a menos que estés utilizando un enfoque de CLI.

Entonces, basándonos en los principios de productividad, si puedes mejorar solo un 1% en la tarea que realizas más, la mejora global será masiva. Así que, veamos cómo podemos hacer eso aquí.

kubectl es un comando con muchas opciones diferentes que podrían ayudar a aumentar tu productividad mucho. Pero al mismo tiempo, como tiene tantas opciones, es bastante complejo conocerlas todas o estar al tanto de que hay una forma más rápida de hacer el trabajo, y por eso me gustaría agregar algunas opciones aquí para intentar ayudarte con este conjunto de consejos de kubectl.

Consejos de Comandos de Kubectl

Comencemos con los primeros comandos de kubectl que ayudan mucho a mejorar tu productividad:

kubectl explain <resource-object>

Este comando mostrará la referencia de la API para cualquier Objeto de Kubernetes, por lo que te ayudará a conocer la ortografía exacta de la opción que siempre escribes mal.

kubectl get <resource-object> —watch-output

La opción —watch-output añadida a cualquier comando de kubectl funcionará de la misma manera que el comando watch en sí, por lo que actualizará el mismo comando cada 2.0 segundos para ver la versión en tiempo real de ese comando y evitar que necesites escribirlo de nuevo o depender de un comando externo como watch

kubectl get events --sort-by=".lastTimestamp"

Este comando te ayudará cuando quieras ver los eventos en tu contexto actual, pero la principal diferencia es que ordenará la salida por la marca de tiempo de más reciente a más antiguo, por lo que evitarás tener que desplazarte para encontrar los últimos eventos.

kubectl logs --previous

Siempre hablamos de una de las necesidades de una Arquitectura de Agregación de Logs porque los logs son desechables, pero ¿qué pasa si quieres obtener los logs en un contenedor eliminado? Puedes usar la bandera --previous para acceder a los logs de un contenedor que se ha terminado recientemente. Esto no eliminará la necesidad de una técnica de agregación de logs, pero ayudará a solucionar problemas cuando Kubernetes comience a eliminar cosas y necesites saber qué sucedió.

kubectl create <object> <options> -o=yaml --dry-run=client

kubectl create nos permite crear un objeto de nuestra preferencia proporcionando los argumentos requeridos de manera imperativa, pero si añadimos la opción -o=yaml --dry-run=client, no obtendremos nuestro objeto creado. En su lugar, tendremos un archivo YAML que define ese objeto. Así que podemos modificarlo fácilmente a nuestras necesidades sin tener que hacerlo desde cero buscando en Google un ejemplo para comenzar.

kubectl top pods --all-namespaces --sort-by='memory'

Este comando alterará el orden estándar de top pods para mostrar los pods y los recursos que están consumiendo, y al mismo tiempo, ordenará esa salida por el uso de memoria. Así que, en entornos con muchos pods, proporcionará justo en la parte superior aquellos en los que deberías centrarte primero para optimizar los recursos de todo tu clúster.

Alias de Kubectl

Un paso más allá es simplificar esos comandos añadiendo un alias a esto. Como puedes ver, la mayoría de estos comandos son bastante largos ya que tienen muchas opciones, por lo que escribir cada una de estas opciones tomará un tiempo.

Entonces, si quieres ir un paso más allá en esta optimización, siempre puedes añadir un alias a ese comando para simplificarlo mucho. Y si quieres aprender más sobre esos alias, recomiendo encarecidamente el repositorio de GitHub de Ahmet Alp Balkan:

📚 Want to dive deeper into Kubernetes? This article is part of our comprehensive Kubernetes Architecture Patterns guide, where you’ll find all fundamental and advanced concepts explained step by step.

¿Cómo mejorar tus posibilidades de dominar tu examen de certificación de Kubernetes (CKAD)?

person writing on white paper

Aprende de mi propia experiencia para aprobar tu examen de certificación de Kubernetes

persona escribiendo en papel blanco
Foto de Nguyen Dang Hoang Nhu en Unsplash

Pero también me gustaría proporcionar algunos consejos prácticos basados en mi propia experiencia si esto puede ayudar a alguien más que esté pasando por el mismo proceso. Sé que hay muchos artículos similares, y la mayoría de ellos valen la pena porque cada uno proporciona una perspectiva y enfoque diferente. Así que aquí está el mío:

  • Rápido pero seguro. Tendrás alrededor de 2 horas para completar entre 15 a 20 preguntas prácticas, lo que te da aproximadamente 6 minutos cada una en promedio. Es tiempo suficiente para hacerlo, pero también debes ir rápido. Así que, trata de evitar el enfoque de leer todo el examen primero o moverte entre preguntas. Es mejor comenzar con la primera de inmediato y si te bloqueas, pasa a la siguiente. Al mismo tiempo, debes validar el resultado que estás obteniendo para asegurarte de que no te estás perdiendo nada. Intenta ejecutar cualquier comando para validar si los objetos se han creado correctamente y tienen los atributos y configuración correctos antes de pasar al siguiente. El tiempo es precioso. Tuve mucho tiempo al final del examen para revisar las preguntas, pero también es cierto que pasé 20 minutos porque escribí ngnix en lugar de nginx, ¡y no pude verlo!
  • Los comandos imperativos son el camino a seguir: Debes aprender la estructura YAML para los objetos principales. Deployment, Pod, CronJob, Jobs, etc. También necesitarás dominar los comandos imperativos para generar el resultado inicial rápidamente. Comandos imperativos como kubectl run, kubectl create, kubectl expose no proporcionarán el 100% de la respuesta, pero tal vez el 80% es la base para hacer arreglos y tener la solución a tu pregunta rápidamente. Recomiendo echar un vistazo a este recurso:
  • kubectl explain para evitar pasar por la documentación o pensar mucho. Tengo un problema para aprender el nombre exacto de un campo o la ubicación en el archivo YAML. Así que usé mucho el kubectl explain, especialmente con la bandera —rescursive. Proporciona la estructura YAML, así que, si no recuerdas si el nombre de la clave es configMap o ConfigMapRef o claimName o persitentVolumeClaim, esto será de gran ayuda. Si también agregas un comando grep -A 10 -B 5 para encontrar tu campo y su contexto, lo dominarás. Esto no reemplaza conocer la estructura YAML, pero ayudará a ser eficiente cuando no recuerdes el nombre exacto o la ubicación.
¿Cómo mejorar tus posibilidades de dominar tu examen de certificación de Kubernetes (CKAD)?
kubectl explain pod –recursive
  • No te olvides de docker/podman y helm: Con los cambios en la certificación en septiembre de 2021, también el proceso de construcción es esencial, por lo que es excelente si tienes suficiente tiempo en tu preparación para jugar con herramientas como docker/podman o helm para que domines cualquier pregunta relacionada con eso que puedas encontrar.
  • Usa el simulador: LinuxFoundation te proporciona dos sesiones en el simulador que, por un lado, te darán una experiencia de examen auténtica, para que enfrentes tipos de preguntas e interfaz similares y sientas que no es la primera vez que te enfrentas y al mismo tiempo podrías sentirte familiarizado con el entorno. Recomiendo usar ambas sesiones (ambas tienen la misma pregunta), una en medio de tu entrenamiento y la segunda uno o dos días antes de tu examen.

Así que, aquí están mis consejos, y espero que te gusten. Si te fueron útiles, por favor házmelo saber en redes sociales o por correo o cualquier otra forma de contacto que prefieras. ¡Todo lo mejor en tu preparación, y estoy seguro de que alcanzarás tus metas!

📚 Want to dive deeper into Kubernetes? This article is part of our comprehensive Kubernetes Architecture Patterns guide, where you’ll find all fundamental and advanced concepts explained step by step.

Mi opinión sobre la certificación de Kubernetes (CKAD)

girl in black t-shirt writing on white paper

Mi Experiencia y Sentimientos Después de Aprobar el Desarrollador de Aplicaciones Certificado de Kubernetes

chica con camiseta negra escribiendo en papel blanco
Foto por Jeswin Thomas en Unsplash

La semana pasada aprobé la certificación de Desarrollador de Aplicaciones Certificado de Kubernetes (CKAD) con una puntuación de 95/100, y fue más difícil de lo que parece, aunque esta es la más fácil de las certificaciones de Kubernetes, la forma en que está diseñado el examen y las habilidades que se evalúan en él te hacen dudar de tu conocimiento.

He estado usando Kubernetes diariamente durante más de tres años. Debido a mi trabajo, es necesario implementar, definir, solucionar problemas de cargas de trabajo basadas en Kubernetes en diferentes plataformas (Openshift, EKS, AKS… cualquier cosa), por lo que podrías pensar que no debería necesitar prepararme para este tipo de examen, y esa podría ser también la impresión. Pero esto está lejos de la realidad.

Siento que no hay ninguna certificación que puedas aprobar sin preparación porque la certificación no mide cuán hábil eres en ningún otro tema que no sea el proceso de certificación en sí. Puedes ser el maestro de cualquier tecnología, pero si vas a un examen de certificación sin ninguna preparación específica para el examen, tienes muchas posibilidades de fallar.

Incluso en este caso en que hemos pasado de la tradicional pregunta de caso teórico a una más práctica, no es diferente. Porque sí, no necesitas aprender nada, y sí, requiere que realmente puedas hacer cosas, no solo saber sobre algo, pero todo lo demás es igual.

Te preguntarán sobre cosas que nunca usarás en la vida real, necesitarás usar comandos que solo vas a usar en el examen, y necesitarás hacerlo de la manera específica que se espera también porque así es como funciona la certificación. ¿Es malo? Probablemente… ¿hay alguna otra forma de hacerlo? No hemos encontrado aún ninguna mejor.

Debo admitir que creo que este proceso es mucho más justo que el de caso de prueba, aunque prefiero el caso de prueba solo por una cuestión de tiempo durante el proceso.

Entonces, probablemente, te estás preguntando si esa es mi opinión, ¿por qué intento aprobar la certificación en primer lugar? Hay varias razones para hacerlo. En primer lugar, creo que la certificación es una gran manera de establecer un estándar de conocimiento para cualquiera. Eso no significa que las personas con la certificación sean más competentes o mejor capacitadas que las personas sin la certificación. No me considero más calificado hoy que hace un mes cuando comencé a prepararme para la certificación, pero al menos estableció alguna base de lo que puedes esperar.

Además de eso, es un desafío para ti mismo, para mostrarte que puedes hacerlo, y siempre es genial empujar tus límites un poco más allá de lo que es obligatorio para el trabajo. Y finalmente, es algo que se ve bien en tu CV, eso es seguro.

¿Aprendí algo nuevo? Sí, por supuesto, muchas cosas. Incluso me mejoré a mí mismo porque usualmente hago algunas tareas, y solo eso ya valió la pena. Incluso si fallara, creo que valió la pena porque siempre te da algo más para agregar a tu cadena de herramientas, y eso siempre es bueno.

Además, este examen no asegura que seas un buen Desarrollador de Aplicaciones de Kubernetes. En mi opinión, creo que el enfoque del examen está centrado en mostrar que eres un Implementador de Kubernetes justo. ¿Por qué digo eso? Vamos a añadir algunos puntos:

  • No obtienes ningún punto por proporcionar la mejor solución para un problema. La pregunta es tan específica que se trata de traducir lo que está escrito en inglés simple a acciones y objetos de Kubernetes.
  • Hay preguntas de solución de problemas, sí, pero también hay algunas bastante básicas que no aseguran que tu proceso de pensamiento sea eficiente. Nuevamente, la eficiencia no se evalúa en el proceso.

Entonces, probablemente estoy echando de menos un examen de Arquitectura Certificada de Kubernetes donde puedas tener la definición de un problema, y necesitas proporcionar una solución. Serás evaluado en base a eso. Incluso con alguna forma de justificar la decisión que estás tomando y el proceso de pensamiento, no creo que alguna vez veamos eso. ¿Por qué? Porque, y eso es muy importante porque cualquier nuevo examen de certificación que enfrentemos necesita ser lo suficientemente específico para que pueda ser evaluado automáticamente.

📚 Want to dive deeper into Kubernetes? This article is part of our comprehensive Kubernetes Architecture Patterns guide, where you’ll find all fundamental and advanced concepts explained step by step.