Instalar y configurar kubectl en macOS
Antes de empezar
Debes usar una versión de kubectl que esté dentro de una diferencia de versión menor de tu clúster. Por ejemplo, un cliente v1.29 puede comunicarse con v1.28, v1.29, y v1.30 del plano de control. El uso de la última versión de kubectl ayuda a evitar problemas imprevistos.
Instalar kubectl en macOS
Existen los siguientes métodos para instalar kubectl en macOS:
- Instalar el binario de kubectl con curl en macOS
- Instalar con Homebrew en macOS
- Instalar con Macports en macOS
Instalar el binario de kubectl con curl en macOS
-
Descargue la última versión:
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, reemplace el
$(curl -L -s https://dl.k8s.io/release/stable.txt)
parte del comando con la versión específica.Por ejemplo, para descargar la versión 1.29.2 en Intel macOS, escriba:
curl -LO "https://dl.k8s.io/release/v1.29.2/bin/darwin/amd64/kubectl"
Y para macOS en Apple Silicon, escriba:
curl -LO "https://dl.k8s.io/release/v1.29.2/bin/darwin/arm64/kubectl"
-
Validar el binario (opcional)
Descargue el archivo de comprobación de kubectl:
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"
Valide el binario kubectl con el archivo de comprobación:
echo "$(<kubectl.sha256) kubectl" | shasum -a 256 --check
Si es válido, la salida es:
kubectl: OK
Si la verificación falla,
shasum
arroja un valor distinto de cero e imprime una salida similar a:kubectl: FAILED shasum: WARNING: 1 computed checksum did NOT match
Nota: Descargue la misma versión del binario y el archivo de comprobación. -
Hacer ejecutable el binario de kubectl.
chmod +x ./kubectl
-
Mueva el binario kubectl a una ubicación de archivo en su sistema
PATH
.sudo mv ./kubectl /usr/local/bin/kubectl sudo chown root: /usr/local/bin/kubectl
Nota: Asegúrese de que/usr/local/bin
se encuentre definida en su variable de entorno PATH. -
Para asegurarse de que la versión que instaló se encuentra actualizada, ejecute:
kubectl version --client
Instalar con Homebrew en macOS
Si está en macOS y usa Homebrew como administrador de paquetes, puede instalar kubectl con Homebrew.
-
Ejecute el comando de instalación:
brew install kubectl
or
brew install kubernetes-cli
-
Para asegurarse de que la versión que instaló se encuentra actualizada, ejecute:
kubectl version --client
Instalar con Macports en macOS
Si está en macOS y usa Macports como administrador de paquetes, puede instalar kubectl con Macports.
-
Ejecute el comando de instalación:
sudo port selfupdate sudo port install kubectl
-
Para asegurarse de que la versión que instaló se encuentra actualizada, ejecute:
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
Plugins y configuraciones opcionales de kubectl
Habilitar el autocompletado de shell
kubectl proporciona soporte de autocompletado para Bash y Zsh, lo que puede ahorrarle mucho tiempo al escribir.
A continuación, se muestran los procedimientos para configurar el autocompletado para Bash 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.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.
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
-
Descargue la última versión con el 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"
-
Validar el binario (opcional)
Descargue el archivo de comprobación de kubectl:
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"
Valide el binario kubectl-convert con el archivo de comprobación:
echo "$(<kubectl-convert.sha256) kubectl-convert" | shasum -a 256 --check
Si es válido, la salida es:
kubectl-convert: OK
Si la verificación falla,
shasum
arroja un valor distinto de cero e imprime una salida similar a:kubectl-convert: FAILED shasum: WARNING: 1 computed checksum did NOT match
Nota: Descargue la misma versión del binario y el archivo de comprobación. -
Hacer ejecutable el binario de kubectl-convert
chmod +x ./kubectl-convert
-
Mueva el binario kubectl-convert a una ubicación de archivo en su sistema
PATH
.sudo mv ./kubectl-convert /usr/local/bin/kubectl-convert sudo chown root: /usr/local/bin/kubectl-convert
Nota: Asegúrese de que/usr/local/bin
se encuentre definida en su variable de entorno PATH. -
Verifique que el complemento se haya instalado correctamente
kubectl convert --help
Si no ve algun error, significa que el complemento se instaló correctamente.
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