Comando de anotación 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

En este laboratorio, exploraremos el comando kubectl annotate, que es una herramienta poderosa utilizada en Kubernetes para agregar o modificar anotaciones de metadatos a los recursos de Kubernetes. Las anotaciones se utilizan para adjuntar metadatos arbitrarios a los recursos de Kubernetes en forma de pares clave-valor, y se pueden utilizar para almacenar información adicional sobre un recurso que es posible que no sea utilizada por el propio sistema de Kubernetes, pero que puede ser utilizada por herramientas o procesos externos.

A lo largo de este laboratorio, comenzaremos con ejemplos simples y gradualmente avanzaremos hacia casos de uso más complejos del comando kubectl annotate, mostrando su versatilidad y utilidad en diversos escenarios.

Requisitos previos

  • Un conocimiento básico de los conceptos y comandos de Kubernetes.
  • Un clúster de Kubernetes configurado con kubectl instalado y configurado.

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL kubernetes(("Kubernetes")) -.-> kubernetes/BasicsGroup(["Basics"]) kubernetes(("Kubernetes")) -.-> kubernetes/BasicCommandsGroup(["Basic Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/AdvancedCommandsGroup(["Advanced Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/TroubleshootingandDebuggingCommandsGroup(["Troubleshooting and Debugging Commands"]) kubernetes/BasicsGroup -.-> kubernetes/initialization("Initialization") kubernetes/BasicCommandsGroup -.-> kubernetes/get("Get") kubernetes/BasicCommandsGroup -.-> kubernetes/annotate("Annotate") kubernetes/AdvancedCommandsGroup -.-> kubernetes/apply("Apply") kubernetes/TroubleshootingandDebuggingCommandsGroup -.-> kubernetes/describe("Describe") subgraph Lab Skills kubernetes/initialization -.-> lab-9679{{"Comando de anotación de Kubernetes"}} kubernetes/get -.-> lab-9679{{"Comando de anotación de Kubernetes"}} kubernetes/annotate -.-> lab-9679{{"Comando de anotación de Kubernetes"}} kubernetes/apply -.-> lab-9679{{"Comando de anotación de Kubernetes"}} kubernetes/describe -.-> lab-9679{{"Comando de anotación de Kubernetes"}} end

Iniciar el clúster de Minikube

Antes de crear recursos, necesitas un clúster de Kubernetes en ejecución. Minikube es un entorno ligero de Kubernetes que se ejecuta en tu máquina local.

  1. Navegar a tu directorio de trabajo:

    Abre la terminal y navega hasta la carpeta de proyecto predeterminada:

    cd /home/labex/project
  2. Iniciar Minikube:

    Inicia Minikube para inicializar un clúster de Kubernetes:

    minikube start
    • Este comando configura un clúster de Kubernetes de un solo nodo en tu máquina local.
    • Minikube puede tardar unos minutos en iniciarse dependiendo del rendimiento de tu sistema.
  3. Verificar que Minikube esté en ejecución:

    Comprueba el estado del clúster de Minikube:

    minikube status
    • Busca componentes como kubelet y apiserver listados como Running (En ejecución).
    • Si el clúster no está en ejecución, vuelve a ejecutar minikube start.

Si encuentras problemas al iniciar Minikube, utiliza minikube delete para restablecer el entorno si es necesario.

Explorar el comando kubectl annotate

El comando kubectl annotate se utiliza para actualizar o eliminar anotaciones en los recursos de Kubernetes. Las anotaciones son pares clave-valor que almacenan metadatos, que pueden incluir cadenas arbitrarias o JSON estructurado. Son útiles para que las herramientas y extensiones almacenen sus datos.

Ejecuta el siguiente comando para ver las opciones disponibles para kubectl annotate:

kubectl annotate -h

Verás la siguiente salida:

Actualiza las anotaciones en uno o más recursos.

Todos los objetos de Kubernetes admiten la capacidad de almacenar datos adicionales con el objeto como anotaciones. Las anotaciones son
pares clave/valor que pueden ser más grandes que las etiquetas y que incluyen valores de cadena arbitrarios, como JSON estructurado. Las herramientas y
las extensiones del sistema pueden utilizar las anotaciones para almacenar sus propios datos.

Intentar establecer una anotación que ya existe fallará a menos que se establezca --overwrite. Si se especifica --resource-version y no coincide con la versión actual del recurso en el servidor, el comando fallará.

Utilice "kubectl api-resources" para obtener una lista completa de los recursos admitidos.

Ejemplos:
  ## Actualiza el pod 'foo' con la anotación 'description' y el valor 'my frontend'
  ## Si se establece la misma anotación varias veces, solo se aplicará el último valor
  kubectl annotate pods foo description='my frontend'

  ## Actualiza un pod identificado por tipo y nombre en "pod.json"
  kubectl annotate -f pod.json description='my frontend'

  ## Actualiza el pod 'foo' con la anotación 'description' y el valor 'my frontend running nginx', sobrescribiendo cualquier
  valor existente
  kubectl annotate --overwrite pods foo description='my frontend running nginx'

  ## Actualiza todos los pods en el espacio de nombres
  kubectl annotate pods --all description='my frontend running nginx'

  ## Actualiza el pod 'foo' solo si el recurso no se ha modificado desde la versión 1
  kubectl annotate pods foo description='my frontend running nginx' --resource-version=1

  ## Actualiza el pod 'foo' eliminando una anotación llamada 'description' si existe
  ## No requiere la bandera --overwrite
  kubectl annotate pods foo description-

Anotar un Pod con un solo par clave-valor

En este paso, comenzaremos con un ejemplo sencillo de anotar un Pod con un solo par clave-valor utilizando el comando kubectl annotate.

  1. Crea un archivo llamado pod.yaml en el directorio /home/labex/project con el siguiente contenido:
apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
    - name: nginx
      image: nginx

Crea el Pod con el siguiente comando:

kubectl apply -f pod.yaml
  1. Utiliza el comando kubectl annotate para agregar una anotación al Pod:
kubectl annotate pod my-pod my-annotation-key=my-annotation-value
  1. Verifica que la anotación se haya agregado al Pod:
kubectl describe pod my-pod | grep Annotations

Debes ver la anotación my-annotation-key con el valor my-annotation-value en la salida.

Anotar un Pod con múltiples pares clave-valor

En este paso, exploraremos cómo agregar múltiples anotaciones a un Pod utilizando el comando kubectl annotate.

  1. Utiliza el comando kubectl annotate para agregar múltiples anotaciones al Pod:
kubectl annotate pod my-pod my-annotation-key-1=my-annotation-value-1 my-annotation-key-2=my-annotation-value-2
  1. Verifica que las anotaciones se hayan agregado al Pod:
kubectl describe pod my-pod | grep my-annotation-key

Debes ver ambas anotaciones my-annotation-key-1 y my-annotation-key-2 con sus valores correspondientes en la salida.

Actualizar una anotación existente

En este paso, aprenderemos cómo actualizar una anotación existente en un Pod utilizando el comando kubectl annotate.

  1. Utiliza el comando kubectl annotate para actualizar el valor de una anotación existente en el Pod:
kubectl annotate pod my-pod my-annotation-key-1=new-value --overwrite=true
  1. Verifica que la anotación se haya actualizado en el Pod:
kubectl describe pod my-pod | grep my-annotation-key-1

Debes ver el valor actualizado de my-annotation-key-1 en la salida.

Eliminar una anotación

En este paso, veremos cómo eliminar una anotación de un Pod utilizando el comando kubectl annotate.

  1. Utiliza el comando kubectl annotate con la bandera --overwrite para eliminar una anotación del Pod:
kubectl annotate pod my-pod my-annotation-key-2- ## Note the trailing dash
  1. Verifica que la anotación se haya eliminado del Pod:
kubectl describe pod my-pod | grep my-annotation-key-2

No debes ver la anotación my-annotation-key-2 en la salida.

Anotar un recurso diferente

En este paso, exploraremos cómo utilizar el comando kubectl annotate para anotar un recurso diferente, como un Deployment (Despliegue).

  1. Crea un archivo llamado deployment.yaml en el directorio /home/labex/project con el siguiente contenido:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
        - name: nginx
          image: nginx

Crea el despliegue con el siguiente comando:

kubectl apply -f deployment.yaml
  1. Utiliza el comando kubectl annotate para agregar una anotación al Despliegue:
kubectl annotate deployment my-deployment my-annotation-key=my-annotation-value
  1. Verifica que la anotación se haya agregado al Despliegue:
kubectl describe deployment my-deployment

Debes ver la anotación my-annotation-key con el valor my-annotation-value en la salida.

Resumen

En este laboratorio, aprendimos cómo utilizar el comando kubectl annotate para agregar, actualizar y eliminar anotaciones de los recursos de Kubernetes. Comenzamos con ejemplos simples de anotar un Pod con pares clave-valor individuales y múltiples, y luego exploramos casos de uso más avanzados, como actualizar una anotación existente y anotar un recurso diferente como un Deployment (Despliegue). Las anotaciones pueden ser una herramienta poderosa para adjuntar metadatos adicionales a los recursos de Kubernetes y proporcionar información útil para herramientas o procesos externos.