# Kubectl

## Qué es Kubectl?

No me voy a cansar de contarles, que para todo hay que ir a las [fuentes](https://kubernetes.io/docs/reference/kubectl/)

"The Kubernetes command-line tool, kubectl, allows you to run commands against Kubernetes clusters. You can use kubectl to deploy applications, inspect and manage cluster resources, and view logs"

Con esta herramienta de linea de comandos lo que hacemos es utilizar la API de kubernetes para darle ordenes al cluster de hacer tal o cual cosa...

### Instalando Kubectl

Vamos a instalarlo siguiendo la [guía oficial](https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/)

Particularmente me gusta hacerlo, si es posible, usando el package manager de la distribución que usamos. En mi caso ubuntu.


Actualizamos el repositorio de apt

```
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl
```

Descargamos la KEY pública de google cloud

```
sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
```

Agregamos el repositorio de kubernetes 

```
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
```


Actualizamos la lista de paquetes y luego instalamos kubectl

```
sudo apt update
sudo apt install -y kubectl
```

Eso es todo, ya tenemos la herramienta configurada y lista para interactuar con K8S. Para esto por defecto kubectl busca la configuración en la ruta  **$HOME/.kube/config** aunque podemos cambiar esta ruta seteando la variable de entorno **KUBECONFIG**.

 > [Les dejo documentación sobre la configuración del archivo de config](https://kubernetes.io/docs/tasks/access-application-cluster/)



