Cómo comenzar a administrar un clúster de Kubernetes con Portainer

Portainer es una de las interfaces de gestión de contenedores más populares. Aunque Portainer comenzó centrándose en Docker y Docker Compose, también funciona con clústeres administrados por orquestadores que incluyen Docker Swarm y Kubernetes.

En este artículo, aprenderá cómo conectar Portainer a un clúster de Kubernetes. Podrá usar Portainer para ver e interactuar con objetos de Kubernetes, como pods, implementaciones y ConfigMaps. Portainer puede implementar gráficos de Helm y exponer información básica a nivel de clúster también. Es una alternativa viable al tablero oficial y otras opciones como Lens para una administración simple de Kubernetes.

Índice de contenidos
  1. Implementación de Portainer en su clúster
  2. Adición de un clúster de Kubernetes a una instalación de Portainer existente
  3. Uso de Portainer para administrar Kubernetes
  4. Resumen

Implementación de Portainer en su clúster

Asegúrese de tener acceso a un clúster de Kubernetes en funcionamiento antes de continuar. Puede aprovisionar uno usando [a managed cloud service] o ejecute el suyo localmente usando una solución como MicroK8s o Minikube. También necesitará tener Helm instalado para simplificar el proceso de instalación de Portainer.

Agregue el repositorio de Portainer a Helm usando los siguientes comandos:

$ helm repo add portainer https://portainer.github.io/k8s/ 
$ helm repo update

A continuación, ejecute uno de los siguientes comandos para implementar la aplicación Portainer.

Exponer Portainer con un NodePort

$ helm install --create-namespace -n portainer portainer portainer/portainer

Este es el método más simple. Podrá acceder a Portainer a través de HTTP utilizando el puerto 30777 en el nodo que ejecuta Portainer Pod. El tráfico HTTPS se servirá en el puerto 30779 mediante un certificado autofirmado. Consulte la documentación de Portainer si desea proporcionar su propio certificado SSL al implementar con este método.

Exponga Portainer con un balanceador de carga

$ helm install --create-namespace -n portainer portainer portainer/portainer 
    --set service.type=LoadBalancer

Este método es similar a NodePort pero utilizará un balanceador de carga frente a sus Nodos. Visite el puerto 9000 en la IP del balanceador de carga para comunicarse con Portainer a través de HTTP. HTTPS es compatible con el puerto 9443.

Exponer portainer con una ruta de ingreso

helm install --create-namespace -n portainer portainer portainer/portainer 
  --set service.type=ClusterIP 
  --set ingress.enabled=true 
  --set ingress.annotations.'kubernetes.io/ingress.class'=nginx 
  --set ingress.annotations."nginx.ingress.kubernetes.io/backend-protocol"=HTTPS 
  --set ingress.hosts[0].host=portainer.example.com 
  --set ingress.hosts[0].paths[0].path="https://www.howtogeek.com/"

Este método expone a Portainer mediante una ruta de ingreso. Necesitará un controlador Ingress como NGINX Ingress dentro de su clúster. Modificar el host y path variables en el comando para personalizar la ruta Portainer. En este ejemplo, podrá acceder a Portainer visitando portainer.example.comdespués de configurar un registro DNS adecuado.

Configurar una ruta de ingreso es la mejor manera de servir a Portainer a largo plazo, ya que admite el equilibrio de carga entre nodos y le permite asignar un dominio específico. Las opciones NodePort o LoadBalancer son opciones más sencillas cuando experimenta con clústeres que no tienen un controlador de entrada disponible.

Una vez que haya completado su implementación, cargue Portainer en su navegador visitando el host de Ingress o la dirección IP y el número de puerto correspondientes. Rellene la pantalla de configuración para crear su cuenta de usuario.

imagen de la página de configuración de Portainer

Portainer ahora estará listo para usar con su clúster de Kubernetes: la implementación directa en Kubernetes descubre automáticamente su entorno. Haga clic en el botón "Comenzar" para completar la instalación.

imagen de Portainer "empezando" pantalla

Adición de un clúster de Kubernetes a una instalación de Portainer existente

Puede agregar un clúster de Kubernetes a una instalación existente de Portainer. Puede optar por ejecutar Portainer fuera de su host para que no consuma recursos del clúster.

Comience iniciando sesión en su instancia de Portainer. Haga clic en el enlace "Entornos" en la parte inferior de la barra lateral izquierda. Haga clic en el botón azul "Agregar entorno" en la parte superior de la pantalla.

imagen de agregar un entorno a Portainer

A continuación, presione el mosaico "Kubernetes" y luego el botón "Iniciar asistente" en la parte inferior de la pantalla.

imagen de agregar un entorno a Portainer

La siguiente pantalla mostrará las instrucciones de instalación para el agente Portainer Kubernetes. Este componente está instalado dentro de su clúster. Portainer se comunica con el agente para extraer información de Kubernetes y aplicar las acciones solicitadas.

Puede elegir entre implementar el agente con un NodePort o un LoadBalancer. Seleccione la pestaña adecuada y luego copie el comando que se muestra. Ejecute esto en su terminal para agregar el Agente Portainer a su clúster. Portainer Agent está protegido mediante una firma digital que recibe la primera vez que la aplicación Portainer hace contacto. El Agente rechazará las comunicaciones de los clientes que no proporcionen la firma correcta.

A continuación, complete los campos "Nombre" y "URL del entorno" que se muestran en la interfaz de usuario web de Portainer. Puede elegir cualquier nombre que identifique su clúster.

imagen de la pantalla de configuración del agente Portainer K8s

Si está utilizando una conexión NodePort, la URL del entorno debe ser el puerto 30778 en la dirección IP de su nodo. Para las conexiones de LoadBalancer, encuentre la IP externa del balanceador de carga ejecutando kubectl get services -n portainer. El agente estará expuesto en el puerto 9001 en esta IP.

$ kubectl get services -n portainer
NAMESPACE     NAME              TYPE            CLUSTER-IP      EXTERNAL-IP       PORT(S)
portainer     portainer-agent   LoadBalancer    10.245.110.27   139.59.198.245    9001:30343/TCP

Haga clic en el botón "Conectar" para completar su conexión. Debería ver una alerta emergente verde que confirma que se ha agregado el entorno. Presione el botón "Finalizar" en la parte inferior de la pantalla para volver a la lista de entornos.

Uso de Portainer para administrar Kubernetes

La pantalla de inicio de Portainer muestra todos sus entornos configurados. Estos podrían ser clústeres de Kubernetes, instalaciones locales de Docker Engine o cualquier otro punto final compatible. Haga clic en su clúster para comenzar a administrarlo.

imagen que muestra diferentes puntos finales conectados en Portainer

La pantalla del tablero del clúster proporciona una descripción general de la cantidad de recursos en su clúster. Portainer actualmente se enfoca en interacciones con espacios de nombres, aplicaciones (sus pods e implementaciones), ConfigMaps y secretos, y volúmenes. Proporciona una capa de abstracción sobre algunos conceptos de Kubernetes.

imagen de la pantalla de descripción general del clúster de Portainer

Haga clic en el mosaico Aplicaciones o en el enlace de la barra lateral para ver sus pods e implementaciones en ejecución. La pantalla muestra todas las aplicaciones en su clúster, incluida la imagen que están usando y su URL externa cuando se configura una ruta de ingreso.

imagen de visualización de aplicaciones de Kubernetes con Portainer

Puede agregar una nueva aplicación cargando un archivo de manifiesto de Kubernetes o haciendo clic en el botón "Agregar aplicación con formulario" para configurar sus Pods de manera interactiva.

imagen de Portainer "agregar una nueva aplicación de Kubernetes" forma

Portainer también ofrece un resumen básico de la utilización de recursos de su clúster. Haga clic en el elemento de la barra lateral "Clúster" para ver los nodos en su clúster y sus reservas de memoria y CPU.

imagen de visualización de la utilización del clúster de Kubernetes con Portainer

Finalmente, la pantalla de configuración del clúster, a la que se accede navegando a Clúster> Configuración, controla las funciones de Portainer para habilitarlas en su entorno de Kubernetes. Puede usar esto para decirle a Portainer qué balanceadores de carga, controladores de entrada y clases de almacenamiento deben estar disponibles para los usuarios. Otras configuraciones incluyen la capacidad de cambiar si se permiten compromisos excesivos de recursos (donde se pueden solicitar más recursos de los que el clúster puede proporcionar) y la activación de la API de métricas para acceder a información de utilización más detallada. Esto requiere que la API de métricas ya esté instalada en su clúster.

imagen de la configuración de un clúster de Kubernetes con Portainer

Resumen

Portainer es una de las interfaces de gestión de contenedores más populares. Las versiones modernas de Portainer tienen soporte integrado para clústeres de Kubernetes. Puede implementar Portainer dentro de su clúster o usar el agente de Portainer para conectar Kubernetes a una instancia de aplicación existente.

Una vez que esté configurado, puede usar Portainer para ver e interactuar con Kubernetes Pods y otros objetos. Esto puede ser más conveniente que ejecutar comandos complejos de Kubectl en su terminal. Portainer le permite agregar todos sus entornos de contenedores en una sola plataforma, desde clústeres de Kubernetes hasta instalaciones de Docker de un solo nodo.

Descubre más contenido

Subir Change privacy settings