Contextos y herramientas de terceros
Objetivos del capítulo y requisitos previos
Kubernetes es una herramienta relativamente compleja. Antes de continuar con la creación de clústeres, descubrirá algunas herramientas interesantes que podrá utilizar cuando se presente algún problema o para simplificar su vida.
En primer lugar, se abordará la noción de contextos y se presentarán las herramientas para manipularlos (kubectx, kubens, kube-ps1). También se dedicará tiempo a agregar un contexto en la línea de comandos del usuario para saber rápidamente en qué clúster está trabajando.
A continuación, se presentarán las diferentes herramientas que le facilitarán las cosas, como, por ejemplo, supervisar el estado de los pods o capturar el tráfico de red de un contenedor.
Gestión de los contextos con kubectl
1. Origen de la necesidad
Antes de probar los clústeres de Kubernetes de diferentes orígenes, es interesante entender cómo se almacena de manera local la información de conexión, para:
-
poder cambiar fácilmente de un clúster a otro,
-
almacenar la información en algún lugar (para archivarla, por ejemplo).
2. Listar los contextos
Al iniciar Minikube, el lector ha creado un contexto predeterminado: minikube.
Una buena manera de averiguarlo es utilizar el comando kubectl seguido de la opción config y la palabra clave get-contexts:
$ kubectl config get-contexts
En caso de que haya configurado el acceso a minikube, así como a un clúster creado en Google, el resultado podría ser similar al siguiente:
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
gke-test gke-test gke-test
* minikube minikube minikube
Siempre con la opción config, la subopción current-context permite recuperar el campo NAME del contexto predeterminado:
$ kubectl config current-context
En caso de que minikube sea el contexto predeterminado, el comando devolverá el siguiente resultado:
minikube
3. Variable de entorno KUBECONFIG
a. Especificar la ubicación del archivo
La variable de entorno KUBECONFIG permite que varios clústeres coexistan, además de especificar un archivo diferente al predeterminado (~/.kube/config).
La exportación de la variable entorno se realiza de la siguiente manera:
$ export KUBECONFIG=~/kubeconfig/cluster-prod
Consulte de nuevo los contextos que muestra el comando kubectl:
$ kubectl config get-contexts
Los contextos son diferentes a los que había la última vez:
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
* hp-a.ex.com hp-a.ex.com hp-a.ex.com
b. Especificar varios...
Herramientas de Kubernetes
1. k9s: interfaz de texto de seguimiento
a. Contexto
En caso de problemas durante el despliegue, puede llamar al comando kubectl. A continuación, deberá pasar por las diferentes opciones en función de lo que quiera consultar:
-
get pods para obtener el estado de los pods.
-
describe pods, seguido del nombre del pod, para obtener eventos relacionados.
-
logs, seguido del nombre del pod, para consultar los logs.
El comando k9s ofrece guiar al usuario en estas operaciones a traves de una interfaz de texto rudimentaria, pero muy efectiva.
Para más detalles, consulte la siguiente dirección: https://github.com/derailed/k9s
b. Instalar k9s
La utilidad k9s está disponible en Arkade. Para instalarla, ejecute el siguiente comando:
$ arkade get k9s
c. Ejecutar k9s
Desde un terminal, ejecute k9s:
$ k9s
De forma predeterminada, k9s se conectará automáticamente al clúster activo en el contexto actual.
Pantalla de bienvenida de k9s en un clúster minikube
Desde la interfaz de inicio, puede seleccionar un pod con la tecla [Intro]. A continuación, puede consultar la lista de contenedores del pod y, al validar el contenedor, acceder al registro de actividad del contenedor.
La vuelta atrás se realiza con la tecla [Esc].
Algunos accesos directos le permiten ejecutar acciones:
-
lanzar un Shell con la tecla s,
-
eliminar un pod con la tecla CTRL - d,
-
describir un pod con la tecla d,
-
consultar el log con la tecla l.
La utilidad también permite ver cualquier tipo de objeto en el clúster. Para hacer esto, utilice los dos puntos (:), seguidos del tipo de objetos que desea consultar (service, deployment, pvc, etc.). Para cambiar el espacio de nombres, utilice el tipo namespaces (o su acceso directo ns) y después seleccione el espacio de nombres que desea consultar. Seguidamente, pulse la tecla [Intro].
Observe que también es posible consultar los charts Helm presentes indicando el tipo helm.
2. Kubespy: trazar la actividad
a. Presentación de Kubespy
Kubespy es una herramienta para supervisar la actividad de un recurso en Kubernetes como consecuencia de una actualización.
Para más detalles, consulte la siguiente dirección: https://github.com/pulumi/kubespy
b. Instalar Kubespy
Esta herramienta tiene la forma de archivo binario para instalar en su máquina.
Para instalarlo en Linux...