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:
- Instalar kubectl en macOS
- Verificar la configuración de kubectl
- Configuraciones y plugins opcionales para kubectl
Instalación del binario para macOS 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/darwin/amd64/kubectl"
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl"
Nota:
Para descargar una versión específica, reemplaza la siguiente parte del comando con la versión que deseas instalar
$(curl -L -s https://dl.k8s.io/release/stable.txt)
Por ejemplo, para descargar la versión 1.31.0 en macOS:
curl -LO "https://dl.k8s.io/release/v1.31.0/bin/darwin/amd64/kubectl"
Para macOS con procesador Apple Silicon, ejecuta:
curl -LO "https://dl.k8s.io/release/v1.31.0/bin/darwin/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/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
Nota:
Descargue la misma versión del binario y el checksum.Dar permisos de ejecución al binario.
chmod +x ./kubectl
Mover el binario de kubectl al
PATH
de tu sistema.sudo mv ./kubectl /usr/local/bin/kubectl sudo chown root: /usr/local/bin/kubectl
Nota:
Asegúrate que el PATH/usr/local/bin
forme parte de las variables de entorno.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
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.
Ejecute el comando para instalar:
brew install kubectl
ó
brew install kubernetes-cli
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.
Ejecute el comando para instalar:
sudo port selfupdate sudo port install kubectl
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.
Advertencia:
Hay dos versiones de bash-complete, v1 y v2. V1 es para Bash 3.2 ( que es el predeterminado en macOS), y v2 es para Bash 4.1+. El script de completado de kubectl no funciona correctamente con bash-complete v1 y Bash 3.2. Requiere bash-complete v2 y Bash 4.1+. Por lo tanto, para poder usar correctamente la finalización de kubectl en macOS, debe instalar y usar Bash 4.1+ (instrucciones). Las siguientes instrucciones asumen que usa Bash 4.1+ (es decir, cualquier versión de Bash de 4.1 o posterior).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
Nota:
Como se mencionó antes, estas instrucciones asumen que usa Bash 4.1+, lo que significa que instalará bash-completacion v2 (a diferencia de Bash 3.2 y bash-deployment v1, en cuyo caso el completado de kubectl no funcionará).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.Nota:
La instalación de Homebrew de bash-completion v2 genera todos los archivos en el directorioBASH_COMPLETION_COMPAT_DIR
, es por eso que los dos últimos métodos funcionan.
En cualquier caso, después de recargar su shell, el completado de kubectl debería estar funcionando.
Nota:
Se requiere kubectl 1.23 o superior para utilizar el autocompletado de Fish.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
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"
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
Nota:
Descargue la misma versión del binario y del checksum.Dar permisos de ejecución al binario.
chmod +x ./kubectl-convert
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
Nota:
Asegúrese que el PATH/usr/local/bin
forme parte de las variables de entorno.Verificar si el plugin fue instalado correctamente
kubectl convert --help
Si no visualiza ningún error quiere decir que el plugin fue instalado correctamente.
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
Ubique el binario de
kubectl
en su sistema:which kubectl
Elimine el binario de
kubectl
:sudo rm <path>
Reemplace
<path>
con el path que apunta al binario dekubectl
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
- 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