kube shell: herramienta rica en funciones para un uso sencillo de la CLI de Kubernetes
Hoy mostraremos cómo instalar y usar kube-shell. Es un shell basado en Python y Go que ofrece autocompletado, historial y muchas otras ventajas para el conocido comando kubectl de Kubernetes. Todavía usa kubectl, de ninguna manera lo reemplaza, pero puede ser útil para la productividad y el aprendizaje.
Requisitos previos:
- Linux destkop o computadora portátil
- VirtualBox
- Python con pip instalado
Instalación de VirtualBox
Como vamos a probar kube-shell en un clúster de minikube local, necesitamos VirtualBox. La instalación de VirtualBox para su distribución debería ser fácil, pero aún así le proporcionaremos información sobre las más populares:
En Fedora con RPMFusion habilitado
sudo dnf install VirtualBox
En Ubuntu
sudo apt-get install virtualbox
En CentOS con RPMfusion habilitado
sudo yum install VirtualBox
Instalación de kubectl y minikube y kubectl
Instalar el Minikube es el siguiente paso. El siguiente comando le buscará un binario de minikube y lo pondrá en / usr
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && chmod +x minikube
Y este lo moverá a su ruta para que pueda llamarlo sin especificar la ruta completa del binario.
sudo mv minikube /usr/local/bin/
Por supuesto, también necesitará el binario kubectl. Entonces podemos buscarlo con este comando.
curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl && chmod +x kubectl
Y luego pon kubectl en la ruta también.
sudo mv kubectl /usr/local/bin/
Creando un clúster
Una vez que tengamos todo esto configurado, podemos crear un clúster de minikube en nuestra máquina. Asegúrese de no tener KVM ejecutándose ya que VirtualBox entra en conflicto con él, y luego ejecute el siguiente comando.
minikube start
Necesita una conexión a Internet activa para que esto funcione, ya que los archivos deben obtenerse de Internet para instalar el sistema operativo en una VM VirtualBox que será nuestro clúster. Su salida debería ser algo como este gif:
Cuando el clúster está activo, puede ejecutar el comando get nodes para ver si está funcionando. La salida debería ser similar a esta:
$ kubectl get nodes NAME STATUS AGE VERSION minikube Ready 7m v1.7.0
Además, hay un estado de comando minikube
$ minikube status minikube: Running localkube: Running kubectl: Correctly Configured: pointing to minikube-vm at 192.168.99.100
Instalación de kube-shell
Ahora, cuando tengamos el clúster en funcionamiento, instalaremos kube-shell. Como mencionamos, es un programa de Python y se instala a través del administrador de paquetes de Python, llamado pip. En algunas distribuciones de Linux, puede tener Python instalado sin pip. Así que asegúrese de tener tanto pip como Python.
En centOS con EPEL habilitado, ejecuta este comando
sudo yum install python-pip
En Ubuntu
sudo apt-get install python-pip
En Fedora
sudo dnf install python-pip
Después de asegurarse de que pip esté instalado, simplemente ejecute este comando
sudo pip instalar kube-shell
¡Y aquí vamos, kube shell está instalado!
Usando kube-shell
En primer lugar, instalemos alguna aplicación en nuestro clúster. Esa puede ser la aplicación hello-minikube
kubectl run hello-minikube --image=gcr.io/google_containers/echoserver:1.7 --port=8080
A continuación, ingresemos kube-shell con simple kube-shell
mando.
En kube-shell, exponga la implementación al mundo exterior
kube-shell> kubectl expose deployment hello-minikube --type=NodePort
Veamos cómo kube-shell hace su magia en este GIF.
Solo necesita comenzar a escribir el subcomando después de kubectl y se mostrará la lista de finalizaciones disponibles. Además, después de la palabra «implementación», obtendrá las implementaciones disponibles que puede exponer. También los elige de los menús desplegables. Después de eso, puede escribir
minikube service hello-minikube --url http://192.168.99.100:31698
Y obtendrá una URL que puede visitar para ver la aplicación. A continuación, escalemos la aplicación y veamos cómo kube-shell nos ayuda a eliminar pods.
kube-shell> kubectl scale deployment --replicas=5 hello-minikube
Y usaremos la funcionalidad de autocompletar kube-shell para elegir una de las réplicas para su eliminación.
El uso de kube-shell no necesita más ejemplos, es completamente intuitivo. Puede recorrer el historial usando la tecla de flecha hacia arriba, o puede recorrer las opciones de autocompletado mientras escribe usando la tecla de tabulación o las teclas de flecha hacia arriba y hacia abajo. Para salir de kube-shell y volver a bash, simplemente escriba exit. El kube-shell todavía tiene algunas características sin terminar, en particular, no completa los parámetros después de – marque como, por ejemplo, –type = NodePort. Pero está completamente abierto a la contribución y disponible en github para que cualquier pirata informático de Python pueda mejorarlo. Con eso, terminamos con este artículo.