Instalar herramientas

Configurar las herramientas de Kubernetes en su computadora.

kubectl

Usa la herramienta de línea de comandos de Kubernetes, kubectl, para desplegar y gestionar aplicaciones en Kubernetes. Usando kubectl, puedes inspeccionar recursos del clúster; crear, eliminar, y actualizar componentes; explorar tu nuevo clúster y arrancar aplicaciones.

Ver Instalar y Configurar kubectl para más información sobre cómo descargar y instalar kubectl y configurarlo para acceder su clúster.

Ver la guía de instalación y configuración de kubectl

También se puede leer la documentación de referencia de kubectl.

kind

kind le permite usar Kubernetes en su máquina local. Esta herramienta require que Docker instalado y configurado.

En la página de inicio rápido encontrarás toda la información necesaria para empezar con kind.

Ver la guía de inicio rápido

minikube

De forma similar a kind, minikube es una herramienta que le permite usar Kubernetes en su máquina local. minikube le permite ejecutar un único nodo en su computadora personal (PC de Windows, macOS y Linux) para que se pueda probar Kubernetes, o para su trabajo de desarrollo.

Se puede seguir la guía oficial de minikube si su enfoque esta instalando la herramienta.

Ver la guía de minikube

Una vez minikube ha terminado de instalarse, está lista para desplegar un aplicación de ejemplo (/docs/tutorials/hello-minikube/).

kubeadm

Se puede usar la utilidad kubeadm para crear y gestionar clústeres de Kubernetes.

En instalando kubeadm se muestra como instalar kubeadm. Una vez instalado, se puede utilizar para crear un clúster.

Ver la guía de instalación

1 - Instalar y Configurar kubectl en Linux

Antes de empezar

Se debe utilizar la versión de kubectl con una minor versión de diferencia con tu cluster. Por ejemplo, un cliente con versión v1.31 se puede comunicar con las siguientes versiones de plano de control v1.30, v1.31 y v1.32. Utilizar la última versión compatible de kubectl evita posibles errores.

Instalar kubectl en Linux

Existen los siguientes métodos para instalar kubectl en Linux:

Instalación del binario para Linux de kubectl con Curl

  1. Descargar la última versión con el siguiente comando:

    
       curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
       

    
       curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/arm64/kubectl"
       
  2. Validación del binario (paso opcional)

    Descargar el archivo checksum:

    
       curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"
       

    
       curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/arm64/kubectl.sha256"
       

    Validar el binario de kubectl contra el archivo checksum:

    echo "$(cat kubectl.sha256)  kubectl" | sha256sum --check
    

    Si es válido, va a obtener la siguiente respuesta:

    kubectl: OK
    

    En caso de falla, sha256 terminará con un estado diferente a cero con una salida similar a:

    kubectl: FAILED
    sha256sum: WARNING: 1 computed checksum did NOT match
    
  3. Instalar kubectl

    sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
    
  4. Test para asegurar que la versión instalada está actualizada:

    kubectl version --client
    

    O puedes utilizar lo siguiente para una vista detallada de la versión:

    kubectl version --client --output=yaml
    

Instalación mediante el administrador de paquetes nativo

  1. Actualiza el índice del paquete apt, luego instala los paquetes necesarios para Kubernetes:

    sudo apt-get update
    # apt-transport-https may be a dummy package; if so, you can skip that package
    sudo apt-get install -y apt-transport-https ca-certificates curl gnupg
    
  2. Descarga la llave pública firmada para los repositorios de Kubernetes. La misma llave firmada es usada para todos los repositorios por lo que se puede obviar la versión en la URL:

    curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.31/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
    
  3. Agregar el repositorio apropiado de Kubernetes. Si quieres una versión de Kubernetes diferente a v1.31, reemplace v1.31 con la versión deseada en el siguiente comando:

    # Esto sobrescribe cualquier configuración existente en el archivo /etc/apt/sources.list.d/kubernetes.list
    echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.31/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
    
  1. Actualiza el índice de apt, luego instala kubectl:

    sudo apt-get update
    sudo apt-get install -y kubectl
    

  1. Agregar Kubernetes al repositorio yum. Si deseas usar una versión de Kubernetes diferente a v1.31, reemplaza v1.31 con la versión deseada en el siguiente comando:

    # Lo siguiente reemplaza cualquier configuración existente en /etc/yum.repos.d/kubernetes.repo
    cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
    [kubernetes]
    name=Kubernetes
    baseurl=https://pkgs.k8s.io/core:/stable:/v1.31/rpm/
    enabled=1
    gpgcheck=1
    gpgkey=https://pkgs.k8s.io/core:/stable:/v1.31/rpm/repodata/repomd.xml.key
    EOF
    
  1. Instalar kubectl utilizando yum:

    sudo yum install -y kubectl
    

  1. Agregar Kubernetes al repositorio zypper. Si deseas usar una versión de Kubernetes diferente a v1.31, reemplaza v1.31 con la versión deseada en el siguiente comando:

    # Lo siguiente reemplaza cualquier configuración existente en /etc/zypp/repos.d/kubernetes.repo
    cat <<EOF | sudo tee /etc/zypp/repos.d/kubernetes.repo
    [kubernetes]
    name=Kubernetes
    baseurl=https://pkgs.k8s.io/core:/stable:/v1.31/rpm/
    enabled=1
    gpgcheck=1
    gpgkey=https://pkgs.k8s.io/core:/stable:/v1.31/rpm/repodata/repomd.xml.key
    EOF
    
  1. Instalar kubectl usando zypper:

    sudo zypper install -y kubectl
    

Instalación usando otro administrador de paquetes

Si utilizas Ubuntu o alguna distribución que soporte el administrador de páquetes snap, kubectl está disponible como una aplicación de snap.

snap install kubectl --classic
kubectl version --client

Si utilizas Homebrew en Linux, kubectl está disponible para su instalación.

brew install kubectl
kubectl version --client

Verificar la configuración de kubectl

Para que kubectl encuentre y acceda a un clúster de Kubernetes, necesita un archivo kubeconfig, que se crea automáticamente cuando creas un clúster usando kube-up.sh o implementar con éxito un clúster de Minikube. De forma predeterminada, la configuración de kubectl se encuentra en ~/.kube/config.

Verifique que kubectl esté configurado correctamente obteniendo el estado del clúster:

kubectl cluster-info

Si ve una respuesta de URL, kubectl está configurado correctamente para acceder a su clúster.

Si ve un mensaje similar al siguiente, kubectl no está configurado correctamente o no puede conectarse a un clúster de Kubernetes.

The connection to the server <server-name:port> was refused - did you specify the right host or port?

Por ejemplo, si tiene la intención de ejecutar un clúster de Kubernetes en su computadora portátil (localmente), primero necesitará instalar una herramienta como Minikube y luego volver a ejecutar los comandos indicados anteriormente.

Si kubectl cluster-info devuelve la respuesta de la URL pero no puede acceder a su clúster, para verificar si está configurado correctamente, use:

kubectl cluster-info dump

Configuraciones opcionales y plugins de kubectl

Habilitar el autocompletado en la shell

Kubectl tiene soporte para autocompletar en Bash, Zsh, Fish y Powershell, lo que puede agilizar el tipeo.

A continuación están los procedimientos para configurarlo en Bash, Fish y Zsh.

Introducción

El script de completado de kubectl para Bash se puede generar con el comando kubectl completion bash. Obtener el script de completado en su shell habilita el autocompletado de kubectl.

Sin embargo, el script de completado depende de bash-completion, lo que significa que primero debe instalar este software (puedes probar si tienes bash-completion ya instalado ejecutando type _init_completion).

Instalar bash-complete

El completado de bash es proporcionado por muchos administradores de paquetes (ver aquí). Puedes instalarlo con apt-get install bash-completion o yum install bash-completion, etc.

Los comandos anteriores crean /usr/share/bash-completion/bash_completion, que es el script principal de bash-complete. Dependiendo de su administrador de paquetes, debe obtener manualmente este archivo de perfil en su ~/.bashrc.

Para averiguarlo, recargue su shell y ejecute type _init_completion. Si el comando tiene éxito, ya está configurado; de lo contrario, agregue lo siguiente a su archivo ~/.bashrc:

source /usr/share/bash-completion/bash_completion

Vuelva a cargar su shell y verifique que la finalización de bash esté correctamente instalada escribiendo type _init_completion.

Habilitar el autocompletado de kubectl

Ahora debe asegurarse de que el script de completado de kubectl se obtenga en todas sus sesiones de shell. Hay dos formas de hacer esto:

  • Obtenga el script de completado en su perfil ~/.bashrc:

    echo 'source <(kubectl completion bash)' >>~/.bashrc
    
  • Agregue el script de completado al directorio de /etc/bash_completion.d:

    kubectl completion bash >/etc/bash_completion.d/kubectl
    

Si tiene un alias para kubectl, puede extender el completado del shell para trabajar con ese alias:

echo 'alias k=kubectl' >>~/.bashrc
echo 'complete -o default -F __start_kubectl k' >>~/.bashrc

Ambos enfoques son equivalentes. Después de recargar su shell, el autocompletado de kubectl debería estar funcionando.

El script de autocompletado de Fish puede ser generado con el comando kubectl completion fish. Leyendo este archivo en su Shell habilita el autocompletado de kubectl.

Para hacer esto en todas sus sesiones agregue la siguiente linea a su archivo ~/.config/fish/config.fish:

kubectl completion fish | source

Después de recargar tu shell, el autocompletado para kubectl estará funcionando automáticamente.

El script de completado de kubectl para Zsh se puede generar con el comando kubectl completion zsh. Obtener el script de completado en su shell habilita el autocompletado de kubectl.

Para hacerlo en todas sus sesiones de shell, agregue lo siguiente a su perfil ~/.zshrc:

source <(kubectl completion zsh)

Si tiene un alias para kubectl, puede extender el completado del shell para trabajar con ese alias:

echo 'alias k=kubectl' >>~/.zshrc
echo 'compdef __start_kubectl k' >>~/.zshrc

Después de recargar su shell, el autocompletado de kubectl debería estar funcionando.

Si recibe un error como complete:13: command not found: compdef, luego agregue lo siguiente al comienzo de su perfil ~/.zshrc:

autoload -Uz compinit
compinit

Instalar el plugin kubectl convert

Un plugin para la herramienta de línea de comandos de Kubernetes kubectl, que le permite convertir manifiestos entre diferentes versiones de la API. Esto puede ser particularmente útil para migrar manifiestos a una versión no obsoleta de la API con la versión más reciente de Kubernetes. Para obtener más información, visite migrar a APIs no obsoletas

  1. Descarga la última versión con el siguiente comando:

    
       curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl-convert"
       

    
       curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/arm64/kubectl-convert"
       
  2. Valida el binario (opcional)

    Descarga el checksum de kubectl-convert:

    
       curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl-convert.sha256"
       

    
       curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/arm64/kubectl-convert.sha256"
       

    Ahora se puede validar el binario utilizando el checksum:

    echo "$(cat kubectl-convert.sha256) kubectl-convert" | sha256sum --check
    

    Si es válido, la salida será:

    kubectl-convert: OK
    

    En caso de falla, sha256 terminará con un estado diferente a cero con una salida similar a esta:

    kubectl-convert: FAILED
    sha256sum: WARNING: 1 computed checksum did NOT match
    
  3. Instalar kubectl-convert

    sudo install -o root -g root -m 0755 kubectl-convert /usr/local/bin/kubectl-convert
    
  4. Verificar si el plugin fue instalado correctamente

    kubectl convert --help
    

    Si no visualizas ningún error quiere decir que el plugin fue instalado correctamente.

  5. Después de instalar el plugin elimina los archivos de instalación:

    rm kubectl-convert kubectl-convert.sha256
    

Siguientes pasos

2 - Instalar y Configurar kubectl en macOS

Antes de empezar

Se debe utilizar la versión de kubectl con la menor diferencia de versión de respecto de su clúster. Por ejemplo, un cliente con versión v1.31 se puede comunicar con los siguientes versiones de plano de control v1.30, v1.31, and v1.32. Utilizar la última versión compatible de kubectl evita posibles errores.

Instalar kubectl en macOS

Existen los siguientes métodos para instalar kubectl en macOS:

Instalación del binario para macOS de kubectl con Curl

  1. Descargar la última versión con el siguiente comando:

    
       curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl"
       

    
       curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl"
       
  2. Validación del binario (paso opcional)

    Descargar el archivo checksum:

    
       curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl.sha256"
       

    
       curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl.sha256"
       

    Validar el binario de kubectl contra el archivo checksum:

    echo "$(cat kubectl.sha256)  kubectl" | shasum -a 256 --check
    

    Si es válido, vas a obtener la siguiente respuesta:

    kubectl: OK
    

    En caso de falla, sha256 terminará con un estado diferente a cero con una salida similar a:

    kubectl: FAILED
    shasum: WARNING: 1 computed checksum did NOT match
    
  3. Dar permisos de ejecución al binario.

    chmod +x ./kubectl
    
  4. Mover el binario de kubectl al PATH de tu sistema.

    sudo mv ./kubectl /usr/local/bin/kubectl
    sudo chown root: /usr/local/bin/kubectl
    
  5. Test para asegurar que la versión instalada está actualizada:

    kubectl version --client
    

    Se puede utilizar lo siguiente para una vista detallada de la versión:

    kubectl version --client --output=yaml
    
  6. Luego de instalar el plugin puede eliminar los archivos de instalación:

    rm kubectl kubectl.sha256
    

Instalar utilizando Homebrew en macOS

Si está utilizando Homebrew en macOS, puede instalar kubectl con Homebrew.

  1. Ejecute el comando para instalar:

    brew install kubectl
    

    ó

    brew install kubernetes-cli
    
  2. Test para asegurar que la versión instalada está actualizada:

    kubectl version --client
    

Instalar con Macports en macOS

Si esta en macOS y utiliza Macports, puedes instalar kubectl con Macports.

  1. Ejecute el comando para instalar:

    sudo port selfupdate
    sudo port install kubectl
    
  2. Test para asegurar que la versión instalada está actualizada:

    kubectl version --client
    

Verificar la configuración de kubectl

Para que kubectl encuentre y acceda a un clúster de Kubernetes, necesita un archivo kubeconfig, que se crea automáticamente cuando creas un clúster usando kube-up.sh o implementar con éxito un clúster de Minikube. De forma predeterminada, la configuración de kubectl se encuentra en ~/.kube/config.

Verifique que kubectl esté configurado correctamente obteniendo el estado del clúster:

kubectl cluster-info

Si ve una respuesta de URL, kubectl está configurado correctamente para acceder a su clúster.

Si ve un mensaje similar al siguiente, kubectl no está configurado correctamente o no puede conectarse a un clúster de Kubernetes.

The connection to the server <server-name:port> was refused - did you specify the right host or port?

Por ejemplo, si tiene la intención de ejecutar un clúster de Kubernetes en su computadora portátil (localmente), primero necesitará instalar una herramienta como Minikube y luego volver a ejecutar los comandos indicados anteriormente.

Si kubectl cluster-info devuelve la respuesta de la URL pero no puede acceder a su clúster, para verificar si está configurado correctamente, use:

kubectl cluster-info dump

Configuraciones opcionales y plugins de kubectl

Habilitar el autocompletado en la shell

Kubectl tiene soporte para autocompletar en Bash, Zsh, Fish y Powershell, lo que puede agilizar el tipeo.

A continuación están los procedimientos para configurarlo en Bash, Fisch y Zsh.

Introducción

El script de completado de kubectl para Bash se puede generar con kubectl completion bash. Obtener este script en su shell permite el completado de kubectl.

Sin embargo, el script de finalización de kubectl depende de bash-completion que, por lo tanto, debe instalar previamente.

Actualizar Bash

Las siguientes instrucciones asumen que usa Bash 4.1+. Puede verificar la versión de su Bash ejecutando:

echo $BASH_VERSION

Si es demasiado antiguo, puede instalarlo o actualizarlo usando Homebrew:

brew install bash

Vuelva a cargar su shell y verifique que se esté utilizando la versión deseada:

echo $BASH_VERSION $SHELL

Homebrew generalmente lo instala en /usr/local/bin/bash.

Instalar bash-complete

Puede probar si ya tiene instalado bash-complete v2 con type _init_completion. Si no es así, puede instalarlo con Homebrew:

brew install bash-completion@2

Como se indica en el resultado de este comando, agregue lo siguiente a su archivo ~/.bash_profile:

brew_etc="$(brew --prefix)/etc" && [[ -r "${brew_etc}/profile.d/bash_completion.sh" ]] && . "${brew_etc}/profile.d/bash_completion.sh"

Vuelva a cargar su shell y verifique que bash-complete v2 esté instalado correctamente con type _init_completion.

Habilitar el autocompletado de kubectl

Ahora debe asegurarse de que el script de completado de kubectl se obtenga en todas sus sesiones de shell. Hay varias formas de lograrlo:

  • Obtenga el script de finalización en su perfil ~/.bash_profile:

    echo 'source <(kubectl completion bash)' >>~/.bash_profile
    
  • Agregue el script de completado al directorio /usr/local/etc/bash_completion.d:

    kubectl completion bash >/usr/local/etc/bash_completion.d/kubectl
    
  • Si tiene un alias para kubectl, puede extender el completado del shell para trabajar con ese alias:

    echo 'alias k=kubectl' >>~/.bash_profile
    echo 'complete -o default -F __start_kubectl k' >>~/.bash_profile
    
  • Si instaló kubectl con Homebrew (como se explica aquí), entonces el script de completado de kubectl ya debería estar en /usr/local/etc/bash_completion.d/kubectl. En ese caso, no necesita hacer nada.

En cualquier caso, después de recargar su shell, el completado de kubectl debería estar funcionando.

El script de autocompletado de Fish puede ser generado con el comando kubectl completion fish. Leyendo este archivo en su Shell habilita el autocompletado de kubectl.

Para hacer esto en todas sus sesiones agregue la siguiente linea a su archivo ~/.config/fish/config.fish:

kubectl completion fish | source

Después de recargar tu shell, el autocompletado para kubectl estará funcionando automáticamente.

El script de completado de kubectl para Zsh se puede generar con el comando kubectl completion zsh. Obtener el script de completado en su shell habilita el autocompletado de kubectl.

Para hacerlo en todas sus sesiones de shell, agregue lo siguiente a su perfil ~/.zshrc:

source <(kubectl completion zsh)

Si tiene un alias para kubectl, puede extender el completado del shell para trabajar con ese alias:

echo 'alias k=kubectl' >>~/.zshrc
echo 'compdef __start_kubectl k' >>~/.zshrc

Después de recargar su shell, el autocompletado de kubectl debería estar funcionando.

Si recibe un error como complete:13: command not found: compdef, luego agregue lo siguiente al comienzo de su perfil ~/.zshrc:

autoload -Uz compinit
compinit

Instalar el plugin kubectl convert

Un plugin para la herramienta de línea de comandos de Kubernetes kubectl, que le permite convertir manifiestos entre diferentes versiones de la API. Esto puede ser particularmente útil para migrar manifiestos a una versión no obsoleta de la API con la versión más reciente de Kubernetes. Para obtener más información, visite migrar a APIs no obsoletas

  1. Descarga la última versión con el siguiente comando:

    
       curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl-convert"
       

    
       curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl-convert"
       
  2. Valide el binario (opcional)

    Descargue el checksum de kubectl-convert:

    
       curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl-convert.sha256"
       

    
       curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl-convert.sha256"
       

    Ahora se puede validar el binario utilizando el checksum:

    echo "$(cat kubectl-convert.sha256)  kubectl-convert" | shasum -a 256 --check
    

    Si es válido, la salida será:

    kubectl-convert: OK
    

    En caso de falla, sha256 terminará con un estado diferente a cero con una salida similar a esta:

    kubectl-convert: FAILED
    shasum: WARNING: 1 computed checksum did NOT match
    
  3. Dar permisos de ejecución al binario.

    chmod +x ./kubectl-convert
    
  4. Mover el binario de kubectl al PATH de su sistema.

    sudo mv ./kubectl-convert /usr/local/bin/kubectl-convert
    sudo chown root: /usr/local/bin/kubectl-convert
    
  5. Verificar si el plugin fue instalado correctamente

    kubectl convert --help
    

    Si no visualiza ningún error quiere decir que el plugin fue instalado correctamente.

  6. Después de instalar el plugin elimine los archivos de instalación:

    rm kubectl-convert kubectl-convert.sha256
    

Eliminar kubectl en macOS

Dependiendo de como haya instalado kubectl puede utilizar uno de los siguientes métodos.

Eliminar kubectl usando la linea de comandos

  1. Ubique el binario de kubectl en su sistema:

    which kubectl
    
  2. Elimine el binario de kubectl:

    sudo rm <path>
    

    Reemplace <path> con el path que apunta al binario de kubectl del paso anterior. Por ejemplo, sudo rm /usr/local/bin/kubectl

Eliminar kubectl utilizando homebrew

Si instaló kubectl utilizando Homebrew ejecute el siguiente comando:

brew remove kubectl

Siguientes pasos