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.30 se puede comunicar con las siguientes versiones de plano de control v1.29, v1.30 y v1.31. 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
- Instalación mediante el administrador de paquetes nativo
- Instalación usando otro administrador de paquetes
Instalación del binario para Linux de kubectl con Curl
-
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"
Nota:
Para descargar una versión específica reemplaza la siguiente parte del comando con la versión que desea instalar
$(curl -L -s https://dl.k8s.io/release/stable.txt)
Por ejemplo, para descargar la versión 1.30.0 en linux x86-64:
curl -LO https://dl.k8s.io/release/v1.30.0/bin/linux/amd64/kubectl
Y para Linux ARM64:
curl -LO https://dl.k8s.io/release/v1.30.0/bin/linux/arm64/kubectl
-
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
Nota:
Descarga la misma versión del binario y el checksum. -
Instalar kubectl
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
Nota:
Si no tienes acceso root en el sistema donde se busca instalar, puedes colocar el binario kubectl en el directorio
~/.local/bin
:chmod +x kubectl mkdir -p ~/.local/bin mv ./kubectl ~/.local/bin/kubectl # Y después agrega el directorio ~/.local/bin a tu $PATH
-
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
-
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
-
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.30/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
-
Agregar el repositorio apropiado de Kubernetes. Si quieres una versión de Kubernetes diferente a v1.30, reemplace v1.30 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.30/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
Nota:
Para actualizar kubectl a una minor release diferente, se debe reemplazar la versión en el archivo/etc/apt/sources.list.d/kubernetes.list
antes de ejecutar apt-get update
y apt-get upgrade
. Este procedimiento se describe con más detalle en Cambiando el Repositorio de Kubernetes.-
Actualiza el índice de
apt
, luego instala kubectl:sudo apt-get update sudo apt-get install -y kubectl
Nota:
En versiones anteriores a Debian 12 y Ubuntu 22.04 el directorio/etc/apt/keyrings
no existe por defecto, puede ser creado usando el comando sudo mkdir -m 755 /etc/apt/keyrings
-
Agregar Kubernetes al repositorio
yum
. Si deseas usar una versión de Kubernetes diferente a v1.30, reemplaza v1.30 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.30/rpm/ enabled=1 gpgcheck=1 gpgkey=https://pkgs.k8s.io/core:/stable:/v1.30/rpm/repodata/repomd.xml.key EOF
Nota:
Para actualizar kubectl a otra versión, será necesario modificar la versión en/etc/yum.repos.d/kubernetes.repo
antes de ejecutar yum update
. Este procedimiento se describe con más detalle en Changing The Kubernetes Package Repository.-
Instalar kubectl utilizando
yum
:sudo yum install -y kubectl
-
Agregar Kubernetes al repositorio
zypper
. Si deseas usar una versión de Kubernetes diferente a v1.30, reemplaza v1.30 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.30/rpm/ enabled=1 gpgcheck=1 gpgkey=https://pkgs.k8s.io/core:/stable:/v1.30/rpm/repodata/repomd.xml.key EOF
Nota:
Para actualizar kubectl a otra versión será necesario modificar la versión en/etc/zypp/repos.d/kubernetes.repo
antes de ejecutar zypper update
. Este procedimiento se describe con más detalle en Changing The Kubernetes Package Repository.-
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
Nota:
El código fuente de bash-complete todos los scripts se encuentra en/etc/bash_completion.d
.Ambos enfoques son equivalentes. Después de recargar su shell, el autocompletado de kubectl debería estar funcionando.
Nota:
El autocompletado para Fish necesita de kubectl versión 1.23 o superior.El script de autocompletado de Fish para kubectl puede ser generado con el comando kubectl completion fish
. Ejecutando este comando en tu shell habilitará el autocompletado de kubectl para Fish.
Para qué funcione en sus futuras sesiones shell, debes agregar la siguiente línea al 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
-
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"
-
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
Nota:
Descargue la misma versión del binario y del checksum. -
Instalar kubectl-convert
sudo install -o root -g root -m 0755 kubectl-convert /usr/local/bin/kubectl-convert
-
Verificar si el plugin fue instalado correctamente
kubectl convert --help
Si no visualizas ningún error quiere decir que el plugin fue instalado correctamente.
-
Después de instalar el plugin elimina los archivos de instalación:
rm kubectl-convert kubectl-convert.sha256
Siguientes pasos
- Instalar Minikube
- Consulte las guías de introducción para obtener más información sobre la creación de clústeres.
- Aprenda a iniciar y exponer su aplicación.
- Si necesita acceso a un clúster que no creó, consulte la guia de Compartir el acceso al clúster.
- Lea los documentos de referencia de kubectl