Entendendo a arquitetura do kubernetes

Last Updated: 31/01/2019By

Como funciona o Kubernetes

Olá pessoal, mergulhando em outros cenários estamos aprofundando sobre Kubernetes.

Postando agora como funciona a arquitetura do Kubernetes.

Em resumo o Kubernetes é o orquestrador de container onde melhora a gestão dos containers.

Imagina você realizando a gestão de 300 containers na mão.

Imagino que para guardar comandos e manipular na hora de uma urgência seja necessário.

Mas para melhorar processos de trabalhos o k8S (kubernetes) seja essencial para seu trabalho.

Kubernetes Overview:

  • Kubernetes é uma plataforma de gerenciamento de contêineres
  • Criado pelo Google
  • Escrito em Go / GoLang
  • Também conhecido como K8s


     

    Master Node

    Master é o plano de controle ou o cérebro do cluster k8s. Um mestre é composto por alguns componentes:

  • api-serve r – Expõe a API REST para falar com o cluster k8s, consome json, somente o api-server fala com o Cluster Store.
  • Armazenamento de Cluster (KV) – Gerenciamento de estado e configuração de cluster.
  • Agendador – Observa o api-server para novos pods e atribui o nó ao trabalho
  • Controller – Um daemon que observa o estado do cluster para manter o estado desejado.O exemplo é o controlador de replicação, o controlador de espaço de nomes, etc. Além disso, ele executa a coleta de lixo de pods, nós, eventos etc.



  • Kubelet – k8s agente que registra nós com cluster, assiste api-server, instancia pods, reporta de volta ao api-server. Se o pod falhar, ele reporta ao master e o master decide o que fazer. Expõe a porta 10255 no nó
  • Container Engine – Ele faz o gerenciamento de contêineres, como puxar imagens, iniciar / parar contêineres. Normalmente, o Docker é usado para o tempo de execução do contêiner.
  • kube-proxy – Responsável pela rede, Fornecer IP exclusivo para Pods, Todos os contêineres em um pod compartilham o mesmo IP, Saldos de carga em todos os pods em um serviço


    Pods

  • Um ambiente para executar contêineres
  • Tem pilha de rede, namespaces do kernel e um ou mais contêiner em execução
  • Recipiente sempre corre dentro de um pod
  • Pod pode ter vários contêineres
  • É a unidade de escalar em k8s


    Serviços

    Os pods vêm e vão com diferentes IPs. Para distribuir carga e atuar como uma única fonte de interação para todos os pods de um aplicativo, o serviço desempenha o papel.

  • Tem um único IP e DNS
  • Criado com um arquivo JSON de manifesto
  • Todos os novos pods são adicionados / registrados ao serviço
  • Qual pod deve ser atribuído a quais serviços são decididos pelos rótulos
  • serviço e pods têm rótulos com base em qual serviço identifica seus pods
  • envia tráfego apenas para pods saudáveis
  • serviço pode apontar coisas fora do cluster
  • usa o tcp por padrão (o udp também é suportado)


    Deployments ou implantação

    É um objeto k8s cuja tarefa é gerenciar pods idênticos executando e atualizando-os de maneira controlada.

  • Implantado usando o manifesto YAML / JSON
  • Implantado via api-server
  • Fornecer atualização de pods
  • Fornecer reversões


    Arquitetura


    Fluxo Geral

  • O kubectl grava no servidor da API
  • O servidor de API valida a solicitação e a persiste para o armazenamento de cluster (etcd)
  • Armazenamento de Cluster (etcd) notifica o servidor de API de volta
  • O servidor de API chama o agendador
  • O agendador decide onde executar o pod e retorna isso ao servidor de API
  • API Server persiste para o etcd
  • O etcd notifica o servidor da API.
  • O servidor de API chama o Kubelet no nó correspondente
  • Kubelet fala com o daemon do Docker usando a API sobre o soquete do Docker para criar o contêiner
  • Kubelet atualiza o status do pod para o servidor da API
  • API Server persiste o novo estado no etcd

     

    Espero que tenha compreendido e vamos para mais postos sobre Kubernetes.

    Até mais galera.

Novidades via inbox

Fique por dentro no meu Boletim digital toda semana um conteúdo novo

Leave A Comment