Que é Kubernetes?

Que é Kubernetes?

Introdución a Kubernetes: Que é, para que serve e cando empregalo

Kubernetes, coñecido tamén como K8s, é unha plataforma de orquestración de contedores que automatiza a implementación, xestión, escalado e mantemento de aplicacións en contedores. Foi desenvolvido orixinalmente por Google e logo liberado como proxecto de código aberto en 2014. Hoxe é mantido pola comunidade e forma parte da Cloud Native Computing Foundation (CNCF).

Que é Kubernetes?

Pensa en Kubernetes como un director de tráfico para aplicacións modernas. Nun mundo onde as aplicacións se dividen en múltiples contedores (pequenas unidades que encapsulan unha aplicación e as súas dependencias), pode ser complexo asegurarse de que:

  • Estes contedores se executen no lugar axeitado.
  • Estean sempre dispoñibles.
  • Poidan escalar cando sexa necesario.
  • Se recuperen automaticamente se algo falla.

Kubernetes resolve todos estes problemas ao actuar como unha capa de orquestración, é dicir, coordina e xestiona os contedores para que funcionen de maneira eficiente.

Para que serve Kubernetes?

Kubernetes permite:

  1. Despregue automático de aplicacións: Poder implementar unha aplicación nunha infraestrutura con só dar unhas instrucións.
  2. Escalado automático: Se a túa aplicación recibe máis usuarios do habitual, Kubernetes pode engadir máis recursos automaticamente.
  3. Alta dispoñibilidade: Se un contedor falla, Kubernetes pode substituílo por outro sen interrupcións.
  4. Xestión de actualizacións: Implementa novas versións dunha aplicación sen tempo de inactividade, mediante métodos como as actualizacións por etapas (rolling updates).
  5. Optimización do uso de recursos: Utiliza de forma eficiente os recursos dispoñibles do hardware e a nube.

Estrutura básica de Kubernetes

  • Clúster: Un conxunto de máquinas (físicas ou virtuais) onde Kubernetes opera.
  • Master Node: A "torre de control" que xestiona o clúster.
  • Worker Nodes: Máquinas onde realmente se executan os contedores.
  • Pods: A unidade máis pequena de Kubernetes, que normalmente contén un ou máis contedores.
  • Services: Permiten conectar aplicacións entre si ou co mundo exterior.
  • Ingress: Manexa o tráfico HTTP/HTTPS cara aos contedores.

Cando é recomendable o uso de Kubernetes?

Kubernetes é moi potente, pero non sempre é necesario. Considérao nos seguintes casos:

  1. Aplicacións baseadas en contedores: Se a túa aplicación está ou será implementada en contedores (como Docker).
  2. Necesidade de escalabilidade: Se esperas que o tráfico ou a carga de traballo aumente ou varíe ao longo do tempo.
  3. Alta dispoñibilidade: Cando queres asegurarte de que a túa aplicación estea dispoñible 24/7, mesmo fronte a fallos.
  4. Infraestrutura dinámica: Se traballas nunha infraestrutura distribuída (por exemplo, varias máquinas en diferentes rexións ou provedores de nube).
  5. Automatización e eficiencia: Se queres automatizar tarefas repetitivas como despregues, xestión de fallos ou distribución de recursos.

Cando non empregar Kubernetes?

  1. Proxectos pequenos: Se tes unha aplicación simple ou non esperas moito tráfico, Kubernetes pode ser excesivamente complexo.
  2. Recursos limitados: A configuración inicial de Kubernetes require tempo, coñecemento técnico e recursos de hardware. Non é ideal para experimentos pequenos ou rápidos.
  3. Alternativas máis simples: Podes empregar Docker Compose ou servizos de PaaS (Plataforma como Servizo) como Heroku para proxectos máis modestos.

En resumo, Kubernetes é unha ferramenta clave para traballar con aplicacións modernas que requiren escalabilidade e robustez, pero hai que avaliar se o seu uso está xustificado en función das necesidades do proxecto.