Entendendo a arquitetura do kubernetes
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.
Nó
- 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.
Último vídeo
Novidades via inbox
Fique por dentro no meu Boletim digital toda semana um conteúdo novo