Comando Set de Kubernetes

KubernetesKubernetesBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

El comando set en Kubernetes es una herramienta versátil que te permite modificar la configuración de los recursos existentes de Kubernetes. Este comando permite realizar ajustes como actualizar las imágenes de contenedores y configurar las solicitudes y límites de recursos, todo sin editar directamente los archivos YAML. Simplifica la gestión de recursos y mejora la eficiencia operativa.

Al final de este laboratorio, entenderás cómo:

  • Iniciar un clúster de Kubernetes.
  • Actualizar la imagen de contenedor de un despliegue (deployment).
  • Configurar las solicitudes y límites de recursos para un despliegue (deployment).
  • Modificar las etiquetas (labels) y anotaciones (annotations) en un despliegue (deployment) utilizando los comandos relevantes.

Este laboratorio está diseñado para principiantes y asume que estás trabajando en un sistema Linux Ubuntu con las herramientas de Kubernetes instaladas. No se requiere experiencia previa con Kubernetes.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL kubernetes(("Kubernetes")) -.-> kubernetes/BasicsGroup(["Basics"]) kubernetes(("Kubernetes")) -.-> kubernetes/BasicCommandsGroup(["Basic Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/ClusterInformationGroup(["Cluster Information"]) kubernetes(("Kubernetes")) -.-> kubernetes/TroubleshootingandDebuggingCommandsGroup(["Troubleshooting and Debugging Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/ConfigurationandVersioningGroup(["Configuration and Versioning"]) kubernetes/BasicsGroup -.-> kubernetes/initialization("Initialization") kubernetes/BasicCommandsGroup -.-> kubernetes/get("Get") kubernetes/BasicCommandsGroup -.-> kubernetes/create("Create") kubernetes/BasicCommandsGroup -.-> kubernetes/set("Set") kubernetes/BasicCommandsGroup -.-> kubernetes/run("Run") kubernetes/BasicCommandsGroup -.-> kubernetes/annotate("Annotate") kubernetes/ClusterInformationGroup -.-> kubernetes/cluster_info("Cluster Info") kubernetes/TroubleshootingandDebuggingCommandsGroup -.-> kubernetes/describe("Describe") kubernetes/ConfigurationandVersioningGroup -.-> kubernetes/label("Label") subgraph Lab Skills kubernetes/initialization -.-> lab-8424{{"Comando Set de Kubernetes"}} kubernetes/get -.-> lab-8424{{"Comando Set de Kubernetes"}} kubernetes/create -.-> lab-8424{{"Comando Set de Kubernetes"}} kubernetes/set -.-> lab-8424{{"Comando Set de Kubernetes"}} kubernetes/run -.-> lab-8424{{"Comando Set de Kubernetes"}} kubernetes/annotate -.-> lab-8424{{"Comando Set de Kubernetes"}} kubernetes/cluster_info -.-> lab-8424{{"Comando Set de Kubernetes"}} kubernetes/describe -.-> lab-8424{{"Comando Set de Kubernetes"}} kubernetes/label -.-> lab-8424{{"Comando Set de Kubernetes"}} end

Iniciar un clúster de Kubernetes

Antes de interactuar con los recursos de Kubernetes, asegúrate de que un clúster de Kubernetes esté en ejecución. Para este laboratorio, utilizaremos Minikube para configurar un clúster de Kubernetes de un solo nodo.

  1. Abre una terminal y inicia Minikube:

    minikube start

    Esto inicializa un clúster de Kubernetes local. Minikube asigna automáticamente los recursos adecuados, pero puedes personalizarlos utilizando opciones (flags) como --cpus y --memory si es necesario.

  2. Verifica que Minikube esté en ejecución:

    kubectl cluster-info

    Asegúrate de que la salida confirme que el clúster está operativo.

Crear un despliegue (deployment)

Una vez que el clúster esté en ejecución, crea un simple despliegue (deployment) de Kubernetes llamado hello-world utilizando la imagen nginx.

  1. Ejecuta el siguiente comando para crear el despliegue:

    kubectl create deployment hello-world --image=nginx

    Este comando crea un despliegue llamado hello-world con una réplica del contenedor nginx.

  2. Verifica que el despliegue se haya creado correctamente:

    kubectl get deployments

    Revisa la salida para asegurarte de que hello-world aparezca en la lista de despliegues.

Explorar el comando kubectl set

El comando kubectl set proporciona múltiples subcomandos para configurar y modificar los recursos de una aplicación. Ayuda a gestionar aspectos específicos como variables de entorno, imágenes de contenedores y configuraciones de recursos.

  1. Ejecuta el siguiente comando para ver los subcomandos disponibles de kubectl set:

    kubectl set -h

    Verás la siguiente salida:

    Configure application resources.
    
    These commands help you make changes to existing application resources.
    
    Available Commands:
      env              Update environment variables on a pod template
      image            Update the image of a pod template
      resources        Update resource requests/limits on objects with pod templates
      selector         Set the selector on a resource
      serviceaccount   Update the service account of a resource
      subject          Update the user, group, or service account in a role binding or cluster role binding
    
    Usage:
      kubectl set SUBCOMMAND [options]
    
    Use "kubectl --help" for more information about a given command. Use "kubectl options" for a list of global command-line options (applies to all commands).

    Revisa los subcomandos disponibles y sus descripciones para entender cómo se puede utilizar kubectl set.

  2. Utiliza kubectl set --help para explorar detalles adicionales sobre cada subcomando según sea necesario.

Actualizar la imagen de contenedor

A continuación, actualiza la imagen de contenedor en el despliegue (deployment) hello-world a una versión específica.

  1. Utiliza el comando kubectl set para actualizar la imagen de contenedor a nginx:1.19.10:

    kubectl set image deployment/hello-world nginx=nginx:1.19.10

    Este comando actualiza el contenedor nginx en el despliegue hello-world.

  2. Verifica la actualización de la imagen consultando la imagen de contenedor:

    kubectl get deployment hello-world -o jsonpath='{.spec.template.spec.containers[0].image}'

    Asegúrate de que la salida muestre nginx:1.19.10.

Configurar solicitudes y límites de recursos

La gestión de recursos es esencial para los despliegues (deployments) de Kubernetes. Establece solicitudes y límites de recursos para el despliegue hello-world.

  1. Configura las solicitudes y límites de CPU y memoria:

    kubectl set resources deployment/hello-world --limits=cpu=1,memory=512Mi --requests=cpu=500m,memory=256Mi

    Este comando establece las solicitudes de recursos en 500m de CPU y 256Mi de memoria, y los límites en 1 CPU y 512Mi de memoria.

  2. Verifica la configuración de recursos describiendo el despliegue:

    kubectl describe deployment hello-world

    Revisa las secciones Limits y Requests en la salida para confirmar la configuración.

Modificar etiquetas (labels) en el despliegue

Las etiquetas (labels) ayudan a categorizar y organizar los recursos de Kubernetes. Utiliza el comando kubectl label para agregar o modificar etiquetas en el despliegue.

  1. Agrega una etiqueta environment=development al despliegue hello-world:

    kubectl label deployment hello-world environment=development

    Este comando agrega una nueva etiqueta al despliegue.

  2. Verifica que la etiqueta se haya aplicado:

    kubectl get deployment hello-world --show-labels

    Revisa la columna LABELS para encontrar la etiqueta environment=development.

Actualizar anotaciones en el despliegue

Las anotaciones (annotations) proporcionan metadatos a los recursos de Kubernetes. Utiliza el comando kubectl annotate para agregar o actualizar anotaciones en el despliegue.

  1. Agrega una anotación owner=team-alpha al despliegue hello-world:

    kubectl annotate deployment hello-world owner=team-alpha

    Este comando agrega una anotación al despliegue.

  2. Verifica que la anotación se haya aplicado:

    kubectl describe deployment hello-world

    Revisa la sección Annotations para encontrar owner=team-alpha.

Resumen

En este laboratorio, aprendiste cómo utilizar el comando set de Kubernetes para gestionar los despliegues (deployments) de manera efectiva. Realizaste lo siguiente:

  • Iniciaste un clúster de Kubernetes.
  • Creaste un despliegue.
  • Actualizaste la imagen de contenedor.
  • Configuraste solicitudes y límites de recursos.
  • Modificaste etiquetas (labels) y anotaciones (annotations) utilizando los comandos adecuados.

Estas habilidades son esenciales para gestionar aplicaciones de Kubernetes de manera eficiente.