Como você lê na página do Github :
O Kubernetes é um sistema de código aberto para gerenciar aplicativos em contêineres em vários hosts, fornecendo mecanismos básicos para implantação, manutenção e dimensionamento de aplicativos.
Kubernetes é:
lean: lightweight, simple, accessible
portable: public, private, hybrid, multi cloud
extensible: modular, pluggable, hookable, composable
self-healing: auto-placement, auto-restart, auto-replication
O Kubernetes tem uma década e meia de experiência no Google executando cargas de trabalho de produção em grande escala, combinadas com as melhores idéias e práticas da comunidade.
Para mim, o Kubernetes é uma ferramenta de orquestração de contêineres do Google. Devido ao seu design, você pode implementar a compatibilidade com qualquer mecanismo de contêiner, mas acho que agora está limitado ao Docker. Existem alguns conceitos importantes em sua arquitetura:
O Kubernetes trabalha com os seguintes conceitos:
Clusters são os recursos de computação sobre os quais seus contêineres são construídos. Kubernetes pode rodar em qualquer lugar! Consulte os Guias de Introdução para obter instruções sobre uma variedade de serviços.
Os pods são um grupo de contêineres do Docker com volumes compartilhados. Elas são as menores unidades implementáveis que podem ser criadas, agendadas e gerenciadas com o Kubernetes. Os pods podem ser criados individualmente, mas é recomendável que você use um controlador de replicação mesmo se estiver criando um único pod. Mais sobre pods.
Os controladores de replicação gerenciam o ciclo de vida dos pods. Eles garantem que um número especificado de pods esteja sendo executado a qualquer momento, criando ou eliminando pods, conforme necessário. Mais sobre controladores de replicação.
Os serviços fornecem um nome e endereço único e estável para um conjunto de pods. Eles agem como balanceadores de carga básicos. Mais sobre serviços.
Os rótulos são usados para organizar e selecionar grupos de objetos com base em pares chave: valor. Mais sobre rótulos.
Portanto, você tem um grupo de máquinas que forma um cluster em que seus contêineres são executados. Você também pode definir um grupo de contêineres que fornecem um serviço, da mesma forma que você faz com outras ferramentas como fig (por exemplo: o webapp pod pode ser um servidor rails e um banco de dados do postgres). Você também tem outras ferramentas para garantir vários contêineres / pods de um serviço em execução ao mesmo tempo, um armazenamento de valores-chave, um tipo de balanceador de carga interno ...
Se você sabe algo sobre coreos, é uma solução muito semelhante, mas do Google. Algo Kubernetes tem uma boa integração com o Google Cloud Engine.