O que é Kubernetes?
O kubernetes, geralmente abreviado como "k8s", serve para orquestrar aplicativos em contêinerespara serem executados em um cluster de hosts, ele automatiza a implantação e o gerenciamento de aplicativos nativos da nuvem utilizando uma infraestrutura local ou plataformas de nuvem pública. Ele também aloca amramzenamento e volumes persistentes para contêineres em execução, fornece o dimensionamento automático e trabalha continuamente para manter o estado desejado dos aplicativos tornando assim a aplicação resiliente.
Recursos do Kubernetes
O Kubernetes tem muitos recursos que ajudam a orquestrar contêineres em vários hosts, automatizar o gerenciamento de clusters K8s e maximizar o uso de recursos por meio de uma melhor utilização da infraestrutura. Recursos importantes incluem:
- Escalonamento automático - Aumente ou diminua automaticamente os aplicativos em contêineres e seus recursos com base no uso
- Gestão do ciclo de vida - Automatize implantações e atualizações com a capacidade de:
- Reversão para versões anteriores
- Pausar e continuar uma implantação
- Modelo declarativo - Declare o estado desejado e o K8s trabalha em segundo plano para manter esse estado e se recuperar de qualquer falha
- Resiliência e autocura - Posicionamento automático, reinicialização automática, replicação automática e dimensionamento automático fornecem autocorreção do aplicativo
- Armazenamento persistente - Capacidade de montar e adicionar armazenamento dinamicamente
- Balanceamento de carga - O Kubernetes oferece suporte a uma variedade de opções de balanceamento de carga interno e externo para atender a diversas necessidades
- Suporte a DevSecOps - O DevSecOps é uma abordagem avançada de segurança que simplifica e automatiza as operações de contêiner nas nuvens, integra a segurança em todo o ciclo de vida do contêiner e permite que as equipes forneçam software seguro e de alta qualidade com mais rapidez. A combinação de práticas de DevSecOps e Kubernetes melhora a produtividade do desenvolvedor.
Vantagens do Kubernetes
A Plataforma Kubernetes se tornou popular porque tem uma série de vantagens importantesm entre elas estão:
- Portabilidade - Os Contêineres são portateis e funcionam em ambientes virtuais ou bare metal, é suportado em todas as principais nuvens públicase você pode executar aplicativos conteinerizados em K8s em muito ambientes diferentes.
- Integração e extensibilidade - É extesível para trabalhar em conjunto com as ferramentas já conhecidas de logs, monitoramento e serviços de alerta. A comunidade sempre vem trabalhando com complementos que ajudam a criar uma infraestrutura rica e de rápido crescimento.
- Eficiência de custo - Os recursos inerentes do Kubernetes são otimizados, o que significa o dimensionamento automático para executar cargas de trabalho onde fornecem o maior valor que mantém os seus gastos com TI sobre controle.
- Escalabilidade - Os aplicativos escalam horizontalmente usando o "escalonamento automático" acrescentando e removendo instâncias de contêiner atendendo automáticamente em respota a demanda.
- Baseado em API - O Kubernetes é estruturado pela API REST. Tudo no meio do ambiente Kubernetes pode ser controlado por meio de programação.
- CI/CD simplificado - Essa é uma prática que automatiza a a criação, testes e implantação de aplicativos em ambientes de desenvolvimento e produção. As empresas estão usando pipelines para criar automações escaláveis que se adaptam dinamicamente.
Orquestração de contêineres
A orquestração de contêineres mantem de forma automática a maioria das tarefas necessárias para executar cargas de trabalho e serviços em contêineres isso inclui todas as opreações necessárias para manter o ciclo de vida do contêiner Kubernetes, provisionando, implantando, dimensionando e trabalhando com rede e load balancer. Além disso, o Kubernetes não é um mero sistema de orquestração. Na verdade, elimina a necessidade de orquestração. A definição técnica de orquestração é a execução de um fluxo de trabalho definido: primeiro faça A, depois B, depois C. Em contraste, o Kubernetes compreende um conjunto de processos de controle independentes e combináveis que direcionam continuamente o estado atual para o estado desejado fornecido. Não importa como você vai de A a C. O controle centralizado também não é necessário. Isso resulta em um sistema mais fácil de usar e mais poderoso, robusto, resiliente e extensível.
Veja também:
- Ambiente de desenvolvimento com o Minikube