Tareas

Edit This Page

Instalar y Configurar 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 de ejemplo.

Antes de empezar

Debes usar una versión de kubectl que esté a menos de una versión menor de diferencia con tu clúster. Por ejemplo, un cliente v1.2 debería funcionar con un máster v1.1, v1.2, y v1.3. Usar la última versión de kubectl ayuda a evitar problemas inesperados.

Instalar kubectl

Estos son algunos métodos para instalar kubectl.

Instalar el binario de kubectl usando gestión nativa de paquetes


sudo apt-get update && sudo apt-get install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubectl

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
yum install -y kubectl

Instalar con snap en Ubuntu

Si usas Ubuntu o alguna de las otras distribuciones de Linux que soportan el gestor de paquetes snap, kubectl está disponible como una aplicación snap.

  1. Cambia al usuario de snap y ejecuta el comando de instalación:

    sudo snap install kubectl --classic
    
  2. Para asegurar que la versión utilizada sea la más actual puedes probar:

    kubectl version
    

Instalar con Homebrew en macOS

Si estás usando macOS y el gestor de paquetes es Homebrew, puedes instalar kubectl con Homebrew.

  1. Ejecuta el comando de instalación:

    brew install kubernetes-cli
    
  2. Para asegurar que la versión utilizada sea la más actual puedes probar:

    kubectl version
    

Instalar con Macports en macOS

Si estás en macOS y usando el gestor de paquetes Macports, puedes instalar kubectl con Macports.

  1. Ejecuta los comandos de instalación:

    sudo port selfupdate
    sudo port install kubectl
    
  2. Para asegurar que la versión utilizada sea la más actual puedes probar:

    kubectl version
    

Instalar con Powershell desde PSGallery

Si estás en Windows y usando el gestor de paquetes Powershell Gallery, puedes instalar y actualizar kubectl con Powershell.

  1. Ejecuta los comandos de instalación (asegurándote de especificar una DownloadLocation):

    Install-Script -Name install-kubectl -Scope CurrentUser -Force
    install-kubectl.ps1 [-DownloadLocation <path>]
    
    Nota: Si no especificas una DownloadLocation, kubectl se instalará en el directorio temporal del usuario.

    El instalador crea $HOME/.kube y crea un archivo de configuración

  2. Para asegurar que la versión utilizada sea la más actual puedes probar:

    kubectl version
    
    Nota: Actualizar la instalación se realiza mediante la re-ejecución de los dos comandos listados en el paso 1.

Instalar en Windows usando Chocolatey o scoop

Para instalar kubectl en Windows puedes usar bien el gestor de paquetes Chocolatey o el instalador de línea de comandos scoop.

choco install kubernetes-cli
scoop install kubectl

  1. Para asegurar que la versión utilizada sea la más actual puedes probar:

    kubectl version
    
  2. Navega a tu directorio de inicio:

    cd %USERPROFILE%
    
  3. Crea el directorio .kube:

    mkdir .kube
    
  4. Cambia al directorio .kube que acabas de crear:

    cd .kube
    
  5. Configura kubectl para usar un clúster remoto de Kubernetes:

    New-Item config -type file
    
    Nota: Edita el fichero de configuración con un editor de texto de tu elección, como Notepad.

Descarga como parte del Google Cloud SDK

Puedes instalar kubectl como parte del Google Cloud SDK.

  1. Instala el Google Cloud SDK.
  2. Ejecuta el comando de instalación de kubectl:

    gcloud components install kubectl
    
  3. Para asegurar que la versión utilizada sea la más actual puedes probar:

    kubectl version
    

Instalar el binario de kubectl usando curl

  1. Descarga la última entrega:

    curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl
    

    Para descargar una versión específica, remplaza el comando $(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt) con la versión específica.

    Por ejemplo, para descargar la versión v1.17.0 en macOS, teclea:

    curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.17.0/bin/darwin/amd64/kubectl
    
  2. Haz el binario de kubectl ejecutable.

    chmod +x ./kubectl
    
  3. Mueve el binario dentro de tu PATH.

    sudo mv ./kubectl /usr/local/bin/kubectl
    
  1. Descarga la última entrega con el comando:

    curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
    

    Para descargar una versión específica, remplaza el trozo del comando $(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt) con la versión específica.

    Por ejemplo, para descargar la versión v1.17.0 en Linux, teclea:

    curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.17.0/bin/linux/amd64/kubectl
    
  2. Haz el binario de kubectl ejecutable.

    chmod +x ./kubectl
    
  3. Mueve el binario dentro de tu PATH.

    sudo mv ./kubectl /usr/local/bin/kubectl
    
  1. Descarga la última entrega v1.17.0 desde este enlace.

    O si tienes curl instalado, usa este comando:

    curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.17.0/bin/windows/amd64/kubectl.exe
    

    Para averiguar la última versión estable (por ejemplo, para secuencias de comandos), echa un vistazo a https://storage.googleapis.com/kubernetes-release/release/stable.txt.

  2. Añade el binario a tu PATH.

Configurar kubectl

Para que kubectl pueda encontrar y acceder a un clúster de Kubernetes, necesita un fichero kubeconfig, que se crea de forma automática cuando creas un clúster usando kube-up.sh o despliegas de forma satisfactoria un clúster de Minikube. Revisa las guías para comenzar para más información acerca de crear clústers. Si necesitas acceso a un clúster que no has creado, ver el documento de Compartir Acceso a un Clúster. Por defecto, la configuración de kubectl se encuentra en ~/.kube/config.

Comprobar la configuración kubectl

Comprueba que kubectl está correctamente configurado obteniendo el estado del clúster:

kubectl cluster-info

Si ves una respuesta en forma de URL, kubectl está correctamente configurado para acceder a tu clúster.

Si ves un mensaje similar al siguiente, kubectl no está correctamente configurado o no es capaz de conectar con 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 intentas ejecutar un clúster de Kubernetes en tu portátil (localmente), necesitarás una herramienta como minikube que esté instalada primero y entonces volver a ejecutar los comandos indicados arriba.

Si kubectl cluster-info devuelve la respuesta en forma de url, pero no puedes acceder a tu clúster, para comprobar si está configurado adecuadamente, usa:

kubectl cluster-info dump

Habilitar el auto-completado en el intérprete de comandos

kubectl provee de soporte para auto-completado para Bash y Zsh, ¡que te puede ahorrar mucho uso del teclado!

Abajo están los procedimientos para configurar el auto-completado para Bash (incluyendo la diferencia entre Linux y macOS) y Zsh.

Introducción

La secuencia de comandos de completado de kubectl para Bash puede ser generado con el comando kubectl completion bash. Corriendo la secuencia de comandos de completado en tu intérprete de comandos habilita el auto-completado de kubectl.

Sin embargo, la secuencia de comandos de completado depende de *bash-completion**, lo que significa que tienes que instalar primero este programa (puedes probar si ya tienes bash-completion instalado ejecutando type _init_completion).

Instalar bash-completion

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

Los comandos de arriba crean /usr/share/bash-completion/bash_completion, que es la secuencia de comandos principal de bash-completion. Dependiendo de tu gestor de paquetes, tienes que correr manualmente este archivo en tu ~/.bashrc.

Para averiguarlo, recarga tu intérprete de comandos y ejecuta type _init_completion. Si el comando tiene éxito, ya has terminado; si no, añade lo siguiente a tu ~/.bashrc:

source /usr/share/bash-completion/bash_completion

recarga tu intérprete de comandos y verifica que bash-completion está correctamente instalado tecleando type _init_completion.

Habilitar el auto-completado de kubectl

Debes asegurarte que la secuencia de comandos de completado de kubectl corre en todas tus sesiones de tu intérprete de comandos. Hay dos formas en que puedes hacer esto:

  • Corre la secuencia de comandos de completado en tu ~/.bashrc:

    echo 'source <(kubectl completion bash)' >>~/.bashrc
  • Añade la secuencia de comandos de completado al directorio /etc/bash_completion.d:

    kubectl completion bash >/etc/bash_completion.d/kubectl
Nota: bash-completion corre todas las secuencias de comandos de completado en /etc/bash_completion.d.

Ambas estrategias son equivalentes. Tras recargar tu intérprete de comandos, el auto-completado de kubectl debería estar funcionando.

Advertencia: macOS incluye Bash 3.2 por defecto. La secuencia de comandos de completado de kubectl requiere Bash 4.1+ y no funciona con Bash 3.2. Una posible alternativa es instalar una nueva versión de Bash en macOS (ver instrucciones aquí). Las instrucciones de abajo sólo funcionan si estás usando Bash 4.1+.

Introducción

La secuencia de comandos de completado de kubectl para Bash puede generarse con el comando kubectl completion bash. Corriendo la secuencia de comandos de completado en tu intérprete de comandos habilita el auto-completado de kubectl.

Sin embargo, la secuencia de comandos de completado depende de *bash-completion**, lo que significa que tienes que instalar primero este programa (puedes probar si ya tienes bash-completion instalado ejecutando type _init_completion).

Instalar bash-completion

Puedes instalar bash-completion con Homebrew:

brew install bash-completion@2
Nota: El @2 simboliza bash-completion 2, que es requerido por la secuencia de comandos de completado de kubectl (no funciona con bash-completion 1). Luego, bash-completion 2 requiere Bash 4.1+, eso es por lo que necesitabas actualizar Bash.

Como se indicaba en la salida de brew install (sección “Caveats”), añade las siguientes líneas a tu ~/.bashrc o ~/.bash_profile:

export BASH_COMPLETION_COMPAT_DIR=/usr/local/etc/bash_completion.d
[[ -r /usr/local/etc/profile.d/bash_completion.sh ]] && . /usr/local/etc/profile.d/bash_completion.sh

Recarga tu intérprete de comandos y verifica que bash-completion está correctamente instalado tecleando type _init_completion.

Habilitar el auto-completado de kubectl

Debes asegurarte que la secuencia de comandos de completado de kubectl corre en todas tus sesiones de tu intérprete de comenados. Hay múltiples formas en que puedes hacer esto:

  • Corre la secuencia de comandos de completado en tu ~/.bashrc:

    echo 'source <(kubectl completion bash)' >>~/.bashrc
  • Añade la secuencia de comandos de completado al directorio /usr/local/etc/bash_completion.d:

    kubectl completion bash >/usr/local/etc/bash_completion.d/kubectl
  • Si has instalado kubectl con Homebrew (como se explica aquí), entonces la secuencia de comandos de completado se instaló automáticamente en /usr/local/etc/bash_completion.d/kubectl. En este caso, no tienes que hacer nada.

Nota: bash-completion (si se instaló con Homebrew) corre todas las secuencias de comandos de completado en el directorio que se ha puesto en la variable de entorno BASH_COMPLETION_COMPAT_DIR.

Todas las estrategias son equivalentes. Tras recargar tu intérprete de comandos, el auto-completado de kubectl debería funcionar.

La secuencia de comandos de completado de kubectl para Zsh puede ser generada con el comando kubectl completion zsh. Corriendo la secuencia de comandos de completado en tu intérprete de comandos habilita el auto-completado de kubectl.

Para hacerlo en todas tus sesiones de tu intérprete de comandos, añade lo siguiente a tu ~/.zshrc:

source <(kubectl completion zsh)

Tras recargar tu intérprete de comandos, el auto-completado de kubectl debería funcionar.

Si obtienes un error como complete:13: command not found: compdef, entonces añade lo siguiente al principio de tu ~/.zshrc:

autoload -Uz compinit
compinit

Siguientes pasos

Aprender cómo lanzar y exponer tu aplicación.

Comentarios