Kubernetes

Por: Artiko
portainerkubernetesk8shelm

Kubernetes

Portainer ofrece una capa de administración amigable sobre Kubernetes. No reemplaza a kubectl, pero abstrae buena parte de su complejidad: desplegás aplicaciones con formularios, gestionás namespaces con cuotas y aplicás manifiestos o Helm charts desde la UI. Es especialmente útil para equipos que migran de Docker a K8s.

Conectar un cluster

Necesitás instalar el agent de Portainer dentro del cluster. Hay dos vías.

Opción A — Manifiesto (kubectl)

Aplicás el manifiesto del agent, que crea el namespace portainer y expone el agent. Con un Service tipo LoadBalancer:

kubectl apply -n portainer \
  -f https://downloads.portainer.io/ce-lts/portainer-agent-k8s-lb.yaml

Si tu cluster no tiene LoadBalancer (ej. on-prem), usás la variante NodePort (portainer-agent-k8s-nodeport.yaml). Luego, en Portainer: Add environment → Kubernetes → Agent, con la dirección del agent.

Opción B — Helm (instalar Portainer completo en el cluster)

Si querés que el propio Server corra dentro de Kubernetes:

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

helm upgrade --install portainer portainer/portainer \
  --create-namespace -n portainer

Esto despliega Server y agent en el cluster. Accedés por el Service publicado.

flowchart TD
    S["Portainer Server"] --> AG["Agent (Deployment + Service)"]
    AG --> API["kube-apiserver"]
    API --> NS1["namespace: app"]
    API --> NS2["namespace: data"]

Desplegar una aplicación

La forma guiada: Applications → + Create from form. Completás:

Portainer traduce el formulario a los objetos de K8s (Deployment, Service, PVC) y los aplica.

Desplegar desde manifiesto o Git

Create from manifest: pegás YAML de Kubernetes, lo subís o lo apuntás a un repositorio Git (con auto-update por polling/webhook, igual que los stacks). Es la vía GitOps para K8s en Portainer.

Helm charts desde la UI

Portainer integra Helm: agregás repositorios de charts y los instalás desde la UI completando los values. Útil para desplegar software empaquetado (bases de datos, ingress controllers) sin usar la CLI de Helm.

Namespaces y recursos

Los namespaces son la unidad de aislamiento y multi-tenancy en K8s. Desde Portainer:

Esto convierte a un cluster compartido en algo gobernable: cada equipo tiene su namespace con su cuota.

Otros recursos visibles

Portainer expone también ConfigMaps, Secrets, Services, Ingresses y Volumes (PV/PVC) del cluster, cada uno con su vista para crear, editar y eliminar.

Límite honesto: para operaciones muy específicas de Kubernetes (CRDs, operadores, debugging avanzado de scheduling) seguirás necesitando kubectl. Portainer cubre el 80% cotidiano, no el 100%.


AnteriorCapítulo 9: Docker Swarm · SiguienteCapítulo 11: Edge