Más información en la guia k9s
This commit is contained in:
parent
8211478322
commit
53544b95b3
101
guias/06-k9s.md
101
guias/06-k9s.md
@ -1,12 +1,23 @@
|
|||||||
# K9s: Otro estilo de CLI para k8s
|
# K9s: Otro estilo de CLI para k8s
|
||||||
K9s es una interfaz de usuario basada en un terminal para interactuar con sus clústeres Kubernetes. El objetivo de este proyecto es facilitar la navegación, la observación y la gestión de sus aplicaciones desplegadas en la naturaleza. K9s observa continuamente a Kubernetes en busca de cambios y ofrece comandos posteriores para interactuar con sus recursos observados.
|
K9s es una interfaz de usuario basada en un terminal para interactuar con sus clústeres Kubernetes. El objetivo de este proyecto es facilitar la navegación, la observación y la gestión de sus aplicaciones desplegadas en la naturaleza. K9s observa continuamente a Kubernetes en busca de cambios y ofrece comandos posteriores para interactuar con sus recursos observados.
|
||||||
|
|
||||||
|
Preview de la web oficial:
|
||||||
|
|
||||||
|
[![asciicast](https://asciinema.org/a/305944.svg)](https://asciinema.org/a/305944)
|
||||||
|
|
||||||
**Índice**
|
**Índice**
|
||||||
- [K9s: Otro estilo de CLI para k8s](#k9s-otro-estilo-de-cli-para-k8s)
|
- [K9s: Otro estilo de CLI para k8s](#k9s-otro-estilo-de-cli-para-k8s)
|
||||||
- [Instalar k9s con el código](#instalar-k9s-con-el-código)
|
- [Instalar k9s con el código](#instalar-k9s-con-el-código)
|
||||||
- [Argumentos CLI](#argumentos-cli)
|
- [Argumentos CLI](#argumentos-cli)
|
||||||
- [Key Bindings](#key-bindings)
|
- [Key Bindings](#key-bindings)
|
||||||
|
- [Visualización de recursos](#visualización-de-recursos)
|
||||||
|
- [Buscar](#buscar)
|
||||||
|
- [Navegando por los recursos de Kubernetes](#navegando-por-los-recursos-de-kubernetes)
|
||||||
|
- [Logs de los recursos de Kubernetes](#logs-de-los-recursos-de-kubernetes)
|
||||||
|
- [Operaciones en recursos Kubernetes](#operaciones-en-recursos-kubernetes)
|
||||||
|
- [Herramientas de monitorización](#herramientas-de-monitorización)
|
||||||
|
- [Aliases](#aliases)
|
||||||
|
- [Popeye scanning](#popeye-scanning)
|
||||||
|
|
||||||
## Instalar k9s con el código
|
## Instalar k9s con el código
|
||||||
|
|
||||||
@ -31,13 +42,14 @@ make build && ./execs/k9s
|
|||||||
mv k9s .k9s
|
mv k9s .k9s
|
||||||
```
|
```
|
||||||
```shell
|
```shell
|
||||||
# Se exporta el path del archivo de ejecución
|
# Se copia el binario a bin local
|
||||||
export PATH=/home/v/.k9s/execs
|
sudo cp .k9s/execs/k9s /usr/local/bin/.
|
||||||
```
|
```
|
||||||
```shell
|
```shell
|
||||||
#Se comprueba si podemos entrar al cluster de nuestro contexto
|
#Se comprueba si podemos entrar al cluster de nuestro contexto
|
||||||
k9s
|
k9s
|
||||||
```
|
```
|
||||||
|
No es muy ortodoxo pero es funcional.
|
||||||
|
|
||||||
## Argumentos CLI
|
## Argumentos CLI
|
||||||
|
|
||||||
@ -66,6 +78,8 @@ k9s --context coolCtx
|
|||||||
# Inicie K9s en modo de sólo lectura - con todos los comandos de modificación deshabilitados
|
# Inicie K9s en modo de sólo lectura - con todos los comandos de modificación deshabilitados
|
||||||
k9s --readonly
|
k9s --readonly
|
||||||
```
|
```
|
||||||
|
Por defecto k9s leerá el KUBECONFIG actual, que a su vez se lee por defecto de $HOME/.kube/config. En todo caso se le puede indicar
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
# Exportar archivo de configuración de kubectl
|
# Exportar archivo de configuración de kubectl
|
||||||
k9s --kubeconfig .kube/config
|
k9s --kubeconfig .kube/config
|
||||||
@ -98,6 +112,89 @@ Lanzar la vista de pulsos | `:pulsos o pu`⏎
|
|||||||
Lanzar vista XRay | `:xray RECURSO [NAMESPACE]`⏎ | RECURSO puede ser uno de po, svc, dp, rs, sts, ds, NAMESPACE es opcional
|
Lanzar vista XRay | `:xray RECURSO [NAMESPACE]`⏎ | RECURSO puede ser uno de po, svc, dp, rs, sts, ds, NAMESPACE es opcional
|
||||||
Lanzar la vista de Popeye | `:popeye o pop`⏎ | Ver https://popeyecli.io
|
Lanzar la vista de Popeye | `:popeye o pop`⏎ | Ver https://popeyecli.io
|
||||||
|
|
||||||
|
##Usando k9s
|
||||||
|
|
||||||
|
Ya con `k9s` iniciado tendremos una pantalla de visualización en la que podremos darle [ordenes](#key-bindings). Por ejemplo, y como se indica en la anterior tabla, `?` es para pedir ayuda.
|
||||||
|
|
||||||
|
### Visualización de recursos
|
||||||
|
|
||||||
|
Si estás familiarizado con los [comandos de vim](https://gitea.vergaracarmona.es/man-linux/Guia-VIM), te sentirás como en casa con K9s. La forma de cambiar de introducir las ordenes es con dos puntos. Así, para ver los pods del cluster se debe escribir `:pods` y pulsar enter. Para ver los nodos se escribe `:node` e Intro. Se pueden ver sugerencias en la línea de comandos a medida que escribes, por lo que se puede aprovechar la opción de completar con el tabulador y ahorrar en pulsaciones. Así, para ver todos los espacios de nombres del clúster, sólo tendrá que escribir:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
:na <tab> <enter
|
||||||
|
```
|
||||||
|
|
||||||
|
### Buscar
|
||||||
|
|
||||||
|
Si tienes muchos recursos de un tipo particular en un cluster, puedes buscar rápidamente a través de ellos usando el comando /. Si, por ejemplo, quieres filtrar todos los espacios de nombres que has recuperado en la sección anterior hasta llegar a los que contienen "kube" en su nombre, escribirías
|
||||||
|
|
||||||
|
```shell
|
||||||
|
/kube
|
||||||
|
```
|
||||||
|
|
||||||
|
### Navegando por los recursos de Kubernetes
|
||||||
|
|
||||||
|
Podrás moverte por los recursos usando `j` para bajar y `k` para subir. ¿Te suena? También es como vim. Para aquellos que nunca han aprendido a navegar con vim, las teclas de flecha funcionan igual de bien.
|
||||||
|
|
||||||
|
Puedes seleccionar el recurso que quieras y pulsar `d` para describirlo.
|
||||||
|
|
||||||
|
### Logs de los recursos de Kubernetes
|
||||||
|
|
||||||
|
Puedes ver los logs de cualquier pod, job u otro recurso de Kubernetes utilizando el comando `l` con el recurso seleccionado. Sin embargo, ¿qué pasa con la visualización de eventos pasados, si un recurso ha sido reemplazado por una nueva instancia de sí mismo que ahora está escribiendo sus propios logs? K9s permite ver logs anteriores para ese recurso con el comando `p`, que es increíblemente útil para rastrear errores u otros problemas.
|
||||||
|
|
||||||
|
Si estás viendo los registros y quieres ver exactamente cuándo ocurrió un evento, puedes usar `t` para insertar automáticamente marcas de tiempo.
|
||||||
|
|
||||||
|
### Operaciones en recursos Kubernetes
|
||||||
|
|
||||||
|
Con K9s puedes **editar configuraciones** sobre la marcha. Pulsando `e` en cualquier recurso, se presentará el editor por defecto (probablemente vim si no has especificado otro) para editar el yaml de configuración de ese pod, despliegue u recurso en concreto.
|
||||||
|
|
||||||
|
Obviamente, editando estas configuraciones afectará al clúster inmediatamente pero si se utiliza CI/CD podrá ser sobrescritas por posteriores despliegues.
|
||||||
|
|
||||||
|
También se puede realizar **operaciones a nivel de nodo** con K9. Por ejemplo, se puede acordonar un nodo, o incluso vaciarlo para poder eliminarlo del pool o realizar otro tipo de mantenimiento en él.
|
||||||
|
|
||||||
|
Si existe algún pod que se está comportando mal, también **se puede eliminar**. En la vista `:pods`, se selecciona y se pulsa `CTRL +d`. Pide confirmación de la eliminación.
|
||||||
|
|
||||||
|
Otra cosa que se pueda haces es **configurar port-forwarding** desde un pod específico utilizando `SHIFT+f` y eligiendo el puerto local. Por ejemplo, si se elige el 3000 se podrá ver el recurso en `localhost:3000`.
|
||||||
|
|
||||||
|
Aun hay más, se puede **abrir un intérprete de comandos** en un pod que se esta ejecutando, claro, si lo soporta. Se selecciona el pod y se pulsa `s`. Esto es el equivalente a ejecutar `kubectl exec --stdin --tty <nombredelpod> -- /bin/bash`. Para salir es igual, con `exit`.
|
||||||
|
|
||||||
|
### Herramientas de monitorización
|
||||||
|
|
||||||
|
K9s dispone de un conjunto de herramientas de monitorización, además del polling periódico del recurso seleccionado (pod, nodo, etc) que se obtiene en la pantalla principal. Una de las visualizaciones más interesantes es el modo `:pulses`. Con esta vista aparecen gráficos live-updating y codificados por colores de los principales aspectos del clúster.
|
||||||
|
|
||||||
|
![pulses](https://k9scli.io/assets/screens/pulses.png)
|
||||||
|
|
||||||
|
Permite navegar para profundizar en cada pulso mostrado utilizando el tabulador o seleccionando el número correspondiente al recurso concreto en la barra superior.
|
||||||
|
|
||||||
|
Para salir de cualquier vista es pulsando `Esc`.
|
||||||
|
|
||||||
|
### Aliases
|
||||||
|
|
||||||
|
Al igual que con la shell se pueden crear alias en K9s para acelerar los comandos comunes que se ejecuten. Para crear un alias, necesitas crear un archivo en el directorio `.k9s/`. Por defecto, éste se encuentra en la HOME de usuario: `$HOME/.k9s`. Es necesario crear un archivo llamado `alias.yml` en este directorio.
|
||||||
|
|
||||||
|
El formato de las definiciones de alias es en forma de `alias:grupo/versión/recurso`. Por ejemplo, si quieres hacer un alias `dep` para ver todos los despliegues, tendrías que definirlo en `alias.yml` como
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
alias:
|
||||||
|
dep: apps/v1/deployments
|
||||||
|
```
|
||||||
|
|
||||||
|
Ahora en k9s se podrá escribir `:dep <enter>` y ver sus despliegues.
|
||||||
|
|
||||||
|
En la [documentación oficial](https://k9scli.io/topics/aliases/) hay más detalles sobre la estructura y el uso del archivo de alias.
|
||||||
|
|
||||||
|
### Popeye scanning
|
||||||
|
|
||||||
|
K9s incluye la herramienta de desinfección de Kubernetes Popeye. Permite comparar la configuración de un clúster con las mejores prácticas. Se abre con el comando `:popeye`. Esto abrirá una página de resumen de escaneo que dará una puntuación general y los componentes que Popeye ha analizado. Puede desglosar cualquier componente, como los conjuntos de demonios, para ver las razones de los resultados.
|
||||||
|
|
||||||
|
Para mitigar alguno de los problemas de configuración detectados por el análisis de Popeye se puede buscar el mensaje de error concreto.
|
||||||
|
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
Si aun tienes dudas puedes ver los [Vídeo-tutoriales](https://k9scli.io/topics/video/) de [Fernand Galiana](https://github.com/derailed).
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
[01 Instalación kubctl](guias/01-kubectl.md) --> [02 Clústers](guias/02-clusters.md) --> [03 manifiestos](guias/03-manifiestos.md) --> [04 Cheatsheet kubernetes](guias/04-cheatsheet.md) --> [05 Helm: Control de despliegues en Kubernetes](guias/05-helm.md)
|
[01 Instalación kubctl](guias/01-kubectl.md) --> [02 Clústers](guias/02-clusters.md) --> [03 manifiestos](guias/03-manifiestos.md) --> [04 Cheatsheet kubernetes](guias/04-cheatsheet.md) --> [05 Helm: Control de despliegues en Kubernetes](guias/05-helm.md)
|
Loading…
Reference in New Issue
Block a user