bom pessoal e agora eu quero falar de algo interessantíssimo que eu não quero que você decore mas eu quero que você tenha apenas uma noção que a arquitetura do kubernetes tá então vamos lá eu vou até usar o mouse aqui pra ficar um pouco mais fácil pra gente trabalhar tudo que tem nessa linha de fora aqui pra gente é o nosso cluster o que é um cluster é um conjunto de nós é um conjunto de máquinas tá se você olhar o nosso cluster kubernetes você vai perceber aqui que nós temos três nós tá a gente tem esse nó aqui, que ele nem está sendo considerado, dando um nome nele, mas é o cara que a gente chama de control plane. E a gente tem esses outros dois nós aqui que a gente está trabalhando. Legal? Se você perceber aqui, eu tenho alguns nomes que eu acabei não falando ainda para você, mas a gente vai falar sobre eles. Por exemplo, a gente tem o Cloud Controller Manager, a gente tem o ETCD, o Kube API Server, o Scheduler, o Controller Manager, a gente tem o Kubelet, o Kubeproxy, a gente tem os pods aqui, o CRI, a gente vai falar sobre esse cara aqui também, tá? E tudo mais. E aqui de fora, a gente tem o Cloud Provider API, porque o Kubernetes, ele é agnóstico a cloud, então cada cloud provider, sei lá, AWS, Azure, Google, Oracle e etc., vai ter sua implementação para conseguir falar aqui com o Cloud Controller Manager para conseguir gerenciar tudo isso aqui, tá bom? Como é muita coisa, é muita informação aqui, eu vou picar esses conhecimentos para ficar um pouco mais fácil, legal? Então, vamos falar um pouco aqui sobre o control plane legal vamos nessa control plane galera o que esse control plane tem ele tem o cloud controller manager o etcd o kubi api server o scheduler e o controller manager o que significa cada um desses caras aí, tá? Seguinte, o API Server, ele é o ponto central do gerenciamento e comunicação do Kubernetes. O que isso significa, galera? Qualquer comando que você vai mandar o Kubernetes executar, ele vai ter que passar pelo API Server, tá? Imagina que o Kubernetes, ele tem um monte de componentes, mas você não chama esses outros componentes diretamente. Você sempre vai chamar o API server e o API server vai mandar a mensagem para esses componentes serem executados. Então esse cara aí é um dos caras principais. Inclusive, você vai ver mais para frente, que quando nós, por exemplo, formos utilizar o Kubernetes na prática, a gente vai ter manifestos, né? Vai ser declarativo e lá você vai ter que falar a versão, inclusive, da API. Por quê? Porque é baseado nessa versão da API que vai ser chamado o Kube API Server, tá bom? Aí a gente tem um outro cara aqui, que é o Scheduler, tá? O que o Scheduler faz? Ele esquedula, vamos dizer assim, ele distribui os pods entre os nodes. Como assim? Vamos imaginar que eu tenho 10 nodes e eu falei assim, vamos criar 5 pods desse mesmo container para rodar em alta disponibilidade dentro do nosso cluster. Em quais nodes esses pods vão ser feitos o deploy? Alguém tem que tomar conta disso. E a gente tem um cara chamado scheduler. O scheduler, o que ele vai ver ele vai ver a disponibilidade de cada noite pra ver se aquele pode cabe lá dentro eu vou dar um exemplo aqui pra você vamos imaginar que eu tenho um novo de que tem disponível apenas a 100 megas de memória e aí você tem um pode que precisa de 120 megas de memória e aí você tem um pode que precisa de 120 megas de memória na hora que for feito o norte o esquema for trabalhar ele vai ver opa se eu jogar esse node naquele pode naquela se eu jogar esse pode naquele node esse pode ele vai ficar pendente porque ele precisa de mais memória e esse node não tem memória o suficiente então eu vou jogar pra esse outro cara uma outra coisa também que dá pra fazer é a parte de afinidade quando eu vou criar um pódio falou quero que se pode ele seja esquerdulado especificamente naquele node então esses tipos de coisa tá tá? São feitas através do scheduler, legal? Aí, a gente tem um outro cara aqui chamado de controller manager, tá? O que que o controller manager faz, cara? Ele orquestra os controladores dos nós, do Kubernetes, os endpoints e os serviços. O que isso significa, galera? Toda vez que você tem um controlador, esse cara quer garantir um estado final para aquilo que você está rodando. Eu vou dar um exemplo ali para você. Eu quero fazer um deploy. Então, para esse deploy eu vou precisar que eu tenha 10 pods, e para isso eu vou ter um camarada chamado replica set, e aí esse deploy vai gerenciar esses replica sets, e que toda vez que cair um container, ele já vai criar um outro automaticamente então ele orquestra esses caras, para garantir que tudo está funcionando da forma que está acontecendo. Ah, eu vou querer um serviço que toda vez que eu acesse esse serviço, ele vai cair naquele pod que está rodando aquela aplicação. Então o Controller Manager é o cara que gerencia tudo isso aí para você. é o cara que gerencia tudo isso aí pra você agora não menos importante tá a gente tem um cara chamado e tcd o que acontece tudo o que acontece no kubernetes é a gente persiste essas informações de configuração a gente precisa de um banco de dados para guardar as configurações do Kubernetes. E o ETCD faz isso. Ele é um banco de dados que armazena os dados do Kubernetes para garantir todo o estado do cluster. E um ponto importante aqui é que aqui, se você olhar eu tenho apenas um e tcd tá esse cara caiu o que acontece eu perco todas as configurações do cluster então você vai começar a perceber que existem componentes aí do kubernetes que você vai precisar ter mais de um rodando ao mesmo tempo para garantir a ga que é high availability ou alta disponibilidade tá bom então é basicamente isso que acontece com o control plane tá ele recebe né o as chamadas da nuvem ele tem o que o bpi server que é onde ele recebe todas as requisições o etcd guarda todas as informações o scheduler faz a disponibilização né do dos nossos podes dentro dos nossos e o controller manager garante né que determinado a objeto que a gente tem ali no kubernetes esteja conforme nós solicitamos. Beleza? No nosso próximo vídeo, a gente vai falar sobre os componentes que ficam dentro de um nó do Kubernetes. Porque esse componente aqui que a gente está colocando, normalmente, por exemplo, se você for trabalhar numa nuvem, tipo um EKS, um GCP, o AKS na Azure, você vai perceber que na maioria das vezes, você não vai gerenciar o control plane, eles dão esse gerenciamento gratuito, ou seja, você não mexe nesse cara, porque quanto menos você mexer é melhor eles têm alta disponibilidade do control plane eles gerenciam isso para gente para que a gente não gaste tempo gerenciando o cluster dessa forma obviamente tá pessoal que se você quiser você pode criar o seu próprio cluster é kubernetes manual criar o seu control plane, criar o ETCD, botar tudo para funcionar e ter o Kubernetes rodando. Mas você vai ter uma responsabilidade muito maior e por isso que ultimamente, raramente eu vejo qualquer tipo de empresa gerenciando na mão o seu próprio Kubernetes. Normalmente eles utilizam um serviço gerenciado de um cloud provider. Beleza? normalmente eles utilizam um serviço gerenciado de um cloud provider beleza? então vamos lá no nosso próximo vídeo para entender o que acontece dentro dos nossos nós vamos nessa