# Instalar y configurar kubectl en Linux

LLMS index: [llms.txt](/llms.txt)

---

## 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.36 puede comunicarse con v1.35, v1.36, y v1.37 del plano de control.
El uso de la última versión de kubectl ayuda a evitar problemas inesperados.

## Instalar kubectl en Linux

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

- [Instalar el binario kubectl con curl en Linux](#install-kubectl-binary-with-curl-on-linux)
- [Instalar usando la administración nativa de paquetes](#install-using-native-package-management)
- [Instalar usando otra administración de paquetes](#install-using-other-package-management)

### Instale el binario kubectl con curl en Linux

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

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

   
<div class="alert alert-info" role="note"><h4 class="alert-heading">Nota:</h4><p>Para descargar una versión específica, reemplace la parte de <code>$(curl -L -s https://dl.k8s.io/release/stable.txt)</code> del comando con la versión específica.</p>
<p>Por ejemplo, para descargar la versión 1.36.0 en Linux, escriba:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -LO https://dl.k8s.io/release/v1.36.0/bin/linux/amd64/kubectl
</span></span></code></pre></div></div>


1. Validar el binario (opcional)

   Descargue el archivo de comprobación de kubectl:

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

   Valide el binario kubectl con el archivo de comprobación:

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

   Si es válido, la salida es:

   ```console
   kubectl: OK
   ```

   Si la comprobación falla, `sha256` arroja un valor distinto de cero e imprime una salida similar a:

   ```bash
   kubectl: FAILED
   sha256sum: WARNING: 1 computed checksum did NOT match
   ```

   
<div class="alert alert-info" role="note"><h4 class="alert-heading">Nota:</h4>Descargue la misma versión del binario y el archivo de comprobación.</div>


1. Instalar kubectl

   ```bash
   sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
   ```

   
<div class="alert alert-info" role="note"><h4 class="alert-heading">Nota:</h4><p>Si no tiene acceso de root en el sistema de destino, aún puede instalar kubectl en el <code>~/.local/bin</code> directorio:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">chmod +x kubectl
</span></span><span class="line"><span class="cl">mkdir -p ~/.local/bin/kubectl
</span></span><span class="line"><span class="cl">mv ./kubectl ~/.local/bin/kubectl
</span></span><span class="line"><span class="cl"><span class="c1"># y luego agregue ~/.local/bin/kubectl en el $PATH</span>
</span></span></code></pre></div></div>


1. Para asegurarse de que la versión que instaló este actualizada ejecute:

   ```bash
   kubectl version --client
   ```

### Instalar usando la administración nativa de paquetes

<ul class="nav nav-tabs" id="tabs-kubectl-install" role="tablist"><li class="nav-item"><a data-bs-toggle="tab" class="nav-link active" href="#tabs-kubectl-install-0" role="tab" aria-controls="tabs-kubectl-install-0" aria-selected="true">Debian-based distributions</a></li>
	  
		<li class="nav-item"><a data-bs-toggle="tab" class="nav-link" href="#tabs-kubectl-install-1" role="tab" aria-controls="tabs-kubectl-install-1">Red Hat-based distributions</a></li></ul>

<div class="tab-content" id="tabs-kubectl-install-content"><div class="tab-body tab-pane fadeshow active"
        id="tabs-kubectl-install-0" role="tabpanel" aria-labelledby="tabs-kubectl-install-0-tab" tabindex="kubectl-install"><ol>
<li>
<p>Actualice el índice de paquetes de <code>apt</code> e instale los paquetes necesarios para usar Kubernetes con el repositorio <code>apt</code>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">sudo apt-get update
</span></span><span class="line"><span class="cl">sudo apt-get install -y apt-transport-https ca-certificates curl
</span></span></code></pre></div></li>
<li>
<p>Descargue la clave de firma pública de Google Cloud:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
</span></span></code></pre></div></li>
<li>
<p>Agregue el repositorio de Kubernetes a <code>apt</code>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main&#34;</span> <span class="p">|</span> sudo tee /etc/apt/sources.list.d/kubernetes.list
</span></span></code></pre></div></li>
<li>
<p>Actualice el índice de paquetes de <code>apt</code> con el nuevo repositorio e instale kubectl:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">sudo apt-get update
</span></span><span class="line"><span class="cl">sudo apt-get install -y kubectl
</span></span></code></pre></div></li>
</ol>
</div><div class="tab-body tab-pane fade"
        id="tabs-kubectl-install-1" role="tabpanel" aria-labelledby="tabs-kubectl-install-1-tab" tabindex="kubectl-install"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">cat <span class="s">&lt;&lt;EOF &gt; /etc/yum.repos.d/kubernetes.repo
</span></span></span><span class="line"><span class="cl"><span class="s">[kubernetes]
</span></span></span><span class="line"><span class="cl"><span class="s">name=Kubernetes
</span></span></span><span class="line"><span class="cl"><span class="s">baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch
</span></span></span><span class="line"><span class="cl"><span class="s">enabled=1
</span></span></span><span class="line"><span class="cl"><span class="s">gpgcheck=1
</span></span></span><span class="line"><span class="cl"><span class="s">repo_gpgcheck=1
</span></span></span><span class="line"><span class="cl"><span class="s">gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
</span></span></span><span class="line"><span class="cl"><span class="s">EOF</span>
</span></span><span class="line"><span class="cl">yum install -y kubectl
</span></span></code></pre></div></div></div>


### Instalar usando otra administración de paquetes

<ul class="nav nav-tabs" id="tabs-other-kubectl-install" role="tablist"><li class="nav-item"><a data-bs-toggle="tab" class="nav-link active" href="#tabs-other-kubectl-install-0" role="tab" aria-controls="tabs-other-kubectl-install-0" aria-selected="true">Snap</a></li>
	  
		<li class="nav-item"><a data-bs-toggle="tab" class="nav-link" href="#tabs-other-kubectl-install-1" role="tab" aria-controls="tabs-other-kubectl-install-1">Homebrew</a></li></ul>

<div class="tab-content" id="tabs-other-kubectl-install-content"><div class="tab-body tab-pane fadeshow active"
        id="tabs-other-kubectl-install-0" role="tabpanel" aria-labelledby="tabs-other-kubectl-install-0-tab" tabindex="other-kubectl-install"><p>Si está en Ubuntu u otra distribución de Linux que admita el administrador de paquetes <a href="https://snapcraft.io/docs/core/install">snap</a>, kubectl estará disponible como solicitud de <a href="https://snapcraft.io/">snap</a>.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">snap install kubectl --classic
</span></span><span class="line"><span class="cl">kubectl version --client
</span></span></code></pre></div></div><div class="tab-body tab-pane fade"
        id="tabs-other-kubectl-install-1" role="tabpanel" aria-labelledby="tabs-other-kubectl-install-1-tab" tabindex="other-kubectl-install"><p>Si está en Linux y usa <a href="https://docs.brew.sh/Homebrew-on-Linux">Homebrew</a> como administrador de paquetes, kubectl está disponible para <a href="https://docs.brew.sh/Homebrew-on-Linux#install">instalación</a>.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">brew install kubectl
</span></span><span class="line"><span class="cl">kubectl version --client
</span></span></code></pre></div></div></div>


## Verificar la configuración de kubectl


	<p>Para que kubectl encuentre y acceda a un clúster de Kubernetes, necesita un
<a href="/es/docs/concepts/configuration/organize-cluster-access-kubeconfig/">archivo kubeconfig</a>, que se crea automáticamente cuando creas un clúster usando
<a href="https://github.com/kubernetes/kubernetes/blob/master/cluster/kube-up.sh">kube-up.sh</a>
o implementar con éxito un clúster de Minikube.
De forma predeterminada, la configuración de kubectl se encuentra en <code>~/.kube/config</code>.</p>
<p>Verifique que kubectl esté configurado correctamente obteniendo el estado del clúster:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">kubectl cluster-info
</span></span></code></pre></div><p>Si ve una respuesta de URL, kubectl está configurado correctamente para acceder a su clúster.</p>
<p>Si ve un mensaje similar al siguiente, kubectl no está configurado correctamente o no puede conectarse a un clúster de Kubernetes.</p>
<pre tabindex="0"><code>The connection to the server &lt;server-name:port&gt; was refused - did you specify the right host or port?
</code></pre><p>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.</p>
<p>Si <code>kubectl cluster-info</code> devuelve la respuesta de la URL pero no puede acceder a su clúster, para verificar si está configurado correctamente, use:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">kubectl cluster-info dump
</span></span></code></pre></div>

## 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 interactuar con la herramienta.

A continuación, se muestran los procedimientos para configurar el autocompletado para Bash y Zsh.

<ul class="nav nav-tabs" id="tabs-kubectl-autocompletion" role="tablist"><li class="nav-item"><a data-bs-toggle="tab" class="nav-link active" href="#tabs-kubectl-autocompletion-0" role="tab" aria-controls="tabs-kubectl-autocompletion-0" aria-selected="true">Bash</a></li>
	  
		<li class="nav-item"><a data-bs-toggle="tab" class="nav-link" href="#tabs-kubectl-autocompletion-1" role="tab" aria-controls="tabs-kubectl-autocompletion-1">Zsh</a></li></ul>

<div class="tab-content" id="tabs-kubectl-autocompletion-content"><div class="tab-body tab-pane fadeshow active"
        id="tabs-kubectl-autocompletion-0" role="tabpanel" aria-labelledby="tabs-kubectl-autocompletion-0-tab" tabindex="kubectl-autocompletion"><h3 id="introducción">Introducción<a class="td-heading-self-link" href="#introducci%c3%b3n" aria-label="Heading self-link"></a></h3>
<p>El script de completado de kubectl para Bash se puede generar con el comando <code>kubectl completion bash</code>. Obtener el script de completado en su shell habilita el autocompletado de kubectl.</p>
<p>Sin embargo, el script de completado depende de <a href="https://github.com/scop/bash-completion"><strong>bash-completion</strong></a>, lo que significa que primero debe instalar este software (puedes probar si tienes bash-completion ya instalado ejecutando <code>type _init_completion</code>).</p>
<h3 id="instalar-bash-complete">Instalar bash-complete<a class="td-heading-self-link" href="#instalar-bash-complete" aria-label="Heading self-link"></a></h3>
<p>El completado de bash es proporcionado por muchos administradores de paquetes (ver <a href="https://github.com/scop/bash-completion#installation">aquí</a>). Puedes instalarlo con <code>apt-get install bash-completion</code> o <code>yum install bash-completion</code>, etc.</p>
<p>Los comandos anteriores crean <code>/usr/share/bash-completion/bash_completion</code>, que es el script principal de bash-complete. Dependiendo de su administrador de paquetes, debe obtener manualmente este archivo de perfil en su <code>~/.bashrc</code>.</p>
<p>Para averiguarlo, recargue su shell y ejecute <code>type _init_completion</code>. Si el comando tiene éxito, ya está configurado; de lo contrario, agregue lo siguiente a su archivo <code>~/.bashrc</code>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">source</span> /usr/share/bash-completion/bash_completion
</span></span></code></pre></div><p>Vuelva a cargar su shell y verifique que la finalización de bash esté correctamente instalada escribiendo <code>type _init_completion</code>.</p>
<h3 id="habilitar-el-autocompletado-de-kubectl">Habilitar el autocompletado de kubectl<a class="td-heading-self-link" href="#habilitar-el-autocompletado-de-kubectl" aria-label="Heading self-link"></a></h3>
<p>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:</p>
<ul>
<li>
<p>Obtenga el script de completado en su perfil <code>~/.bashrc</code>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s1">&#39;source &lt;(kubectl completion bash)&#39;</span> &gt;&gt;~/.bashrc
</span></span></code></pre></div></li>
<li>
<p>Agregue el script de completado al directorio de <code>/etc/bash_completion.d</code>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">kubectl completion bash &gt;/etc/bash_completion.d/kubectl
</span></span></code></pre></div></li>
</ul>
<p>Si tiene un alias para kubectl, puede extender el completado del shell para trabajar con ese alias:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s1">&#39;alias k=kubectl&#39;</span> &gt;&gt;~/.bashrc
</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s1">&#39;complete -o default -F __start_kubectl k&#39;</span> &gt;&gt;~/.bashrc
</span></span></code></pre></div>
<div class="alert alert-info" role="note"><h4 class="alert-heading">Nota:</h4>El código fuente de bash-complete todos los scripts se encuentra en <code>/etc/bash_completion.d</code>.</div>

<p>Ambos enfoques son equivalentes. Después de recargar su shell, el autocompletado de kubectl debería estar funcionando.</p>
</div><div class="tab-body tab-pane fade"
        id="tabs-kubectl-autocompletion-1" role="tabpanel" aria-labelledby="tabs-kubectl-autocompletion-1-tab" tabindex="kubectl-autocompletion"><p>El script de completado de kubectl para Zsh se puede generar con el comando <code>kubectl completion zsh</code>. Obtener el script de completado en su shell habilita el autocompletado de kubectl.</p>
<p>Para hacerlo en todas sus sesiones de shell, agregue lo siguiente a su perfil <code>~/.zshrc</code>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-zsh" data-lang="zsh"><span class="line"><span class="cl"><span class="nb">source</span> &lt;<span class="o">(</span>kubectl completion zsh<span class="o">)</span>
</span></span></code></pre></div><p>Si tiene un alias para kubectl, puede extender el completado del shell para trabajar con ese alias:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-zsh" data-lang="zsh"><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s1">&#39;alias k=kubectl&#39;</span> &gt;&gt;~/.zshrc
</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s1">&#39;compdef __start_kubectl k&#39;</span> &gt;&gt;~/.zshrc
</span></span></code></pre></div><p>Después de recargar su shell, el autocompletado de kubectl debería estar funcionando.</p>
<p>Si recibe un error como <code>complete:13: command not found: compdef</code>,
luego agregue lo siguiente al comienzo de su perfil <code>~/.zshrc</code>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-zsh" data-lang="zsh"><span class="line"><span class="cl">autoload -Uz compinit
</span></span><span class="line"><span class="cl">compinit
</span></span></code></pre></div></div></div>


### Instalar en pc `kubectl convert` plugin


	<p>Un plugin para la herramienta de línea de comandos de Kubernetes <code>kubectl</code>, 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 <a href="/docs/reference/using-api/deprecation-guide/#migrate-to-non-deprecated-apis">migrar a APIs no obsoletas</a></p>


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

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

1. Valide el binario (opcional)

   Descargue el archivo de comprobación kubectl-convert:

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

   Valide el binario kubectl-convert con el archivo de comprobación:

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

   Si es válido, la salida es:

   ```console
   kubectl-convert: OK
   ```

   Si la comprobación falla, `sha256` arroja un valor distinto de cero e imprime una salida similar a:

   ```bash
   kubectl-convert: FAILED
   sha256sum: WARNING: 1 computed checksum did NOT match
   ```

   
<div class="alert alert-info" role="note"><h4 class="alert-heading">Nota:</h4>Descargue la misma versión del binario y el archivo de comprobación.</div>


1. Instale kubectl-convert en pc

   ```bash
   sudo install -o root -g root -m 0755 kubectl-convert /usr/local/bin/kubectl-convert
   ```

1. Verifique que el plugin se haya instalado correctamente

   ```shell
   kubectl convert --help
   ```

   Si no ve un error, significa que el plugin se instaló correctamente.

## ¿Qué sigue?


	<ul>
<li><a href="https://minikube.sigs.k8s.io/docs/start/">Instalar Minikube</a></li>
<li>Consulte las <a href="/es/docs/setup/">guías de introducción</a> para obtener más información sobre la creación de clústeres.</li>
<li><a href="/docs/tasks/access-application-cluster/service-access-application-cluster/">Aprenda a iniciar y exponer su aplicación.</a></li>
<li>Si necesita acceso a un clúster que no creó, consulte la guia de
<a href="/docs/tasks/access-application-cluster/configure-access-multiple-clusters/">Compartir el acceso al clúster</a>.</li>
<li>Lea los <a href="/docs/reference/kubectl/kubectl/">documentos de referencia de kubectl</a></li>
</ul>
