Bom pessoal, agora a gente vai iniciar um dos momentos mais importantes quando a gente está falando sobre Kubernetes, por incrível que pareça, que é a parte de services. Para que servem os services? Como que eles vão poder nos ajudar? Então eu vou falar aqui para vocês os quatro tipos de services que a gente tem e para que eles servem. Então vamos nessa o lance é o seguinte os serviços eles são os pontos de entrada para os nossos pode estar o que isso quer dizer os podes eles não são acessados diretamente você acessa o serviço que balanceia a carga e envia a requisição para um dos pods. Como assim, Wesley? Eu não posso chamar um pod diretamente? Galera, tudo pod, vamos dizer assim, mas nem tudo é recomendado. Por que eu vou dizer isso? Se você faz chamadas apenas diretamente para um pod e você tem uma carga muito grande, o que vai acontecer? Esse pod não vai aguentar. Ou você manda todas as requisições diretamente para um pode e esse pode por exemplo precisa subir uma nova versão o que vai acontecer simplesmente você vai ficar em momentos aí fora do ar fora que você pode perder o ip e tem diversas outros tipos de complexidade então o que acontece aí nesse momento é melhor você utilizar um cara chamado serve você chama o certo e o servo se chama o pode o mais interessante é que o serviço ele utiliza ali de mecanismos tá de balanceamento de carga para que cada vez ele chame um pod diferente para que você consiga trabalhar com a carga de uma forma mais idêntica, uma forma mais balanceada realmente. Legal? Uma outra coisa também importantíssima na hora que a gente está falando de services são as partes de resoluções automáticas de DNS. Então o que acontece, galera? Vamos imaginar que eu crio um pod e esse pod tem o endereço IP. Essens então o que acontece galera imaginar que o crio pode esse pode ser um endereço ip esse p o que vai acontecer toda vez que eu destruir um pode ele criar de novo eu vou ter um ip diferente é a mesma coisa com o servidor cria um certo se ele vai gerar um ip pra mim e eu começar a fazer as chamadas internas do meu sistema por exemplo a um serviço chama outro serviço e eu fiz essa chamada apenas diretamente por ip se eu recriar esse serviço eu vou ter que ter um outro endereço ip também isso vai gerar um baita problema então sempre a gente vai recomendar que você faça chamadas baseada no nome do serviço porque porque o kubernetes ele traz toda a resolução de nome pra você então você chama sei lá o serviço de user toda vez que eu chamar o serviço de usa ele vai resolver o dns ele tem a parte de serviço discovery e o que vai acontecer vai bater no serviço vai saber qual o serviço é e aí ele vai fazer o load balancinha ali pra você pra você chamar na cada vez um pode diferente diferente rodando mesmo serviço é claro né pra que você consiga ter esse balanceamento de carga tá então é muito mais muito importante mesmo você sacar como que se serve se funciona tá eu vou trazer um exemplo aqui pra você só pra você entender essa idéia mas de forma geral, se você olhar a documentação do Kubernetes, você tem quatro tipos de services principais. E depois a gente vai falar sobre um cara também chamado de ingress, mas é uma outra situação também que vai poder te ajudar. Como é que funcionam essas ideias aí dos services? Vamos imaginar da seguinte forma. Eu tenho o meu service e embaixo desse service eu tenho vários pods. Esses pods, só para você saber, eles estão usando a mesma aplicação. Imagina que você tem um sistema de gerenciamento de usuários. Então, cada pod desse está rodando exatamente a mesma aplicação. A grande diferença aí é que tem várias réplicas e quando você tem várias réplicas o que acontece você consegue balancear a carga nos exemplos passados que eu dei pra você a gente criou um deployment no deployment a gente botou bastante réplicas e você tem diversos pods criados mas como que eu sei qual pod eu tenho que chamar como que eu sei o podes eu tenho que chamar? Como que eu sei o podes que está sendo menos utilizado? Como que eu consigo fazer esse balanceamento de carga? Isso aí é feito através do service. Então, basicamente, o que acontece aqui é o seguinte, cada vez que eu recebo uma requisição, ele chama esse podes. Recebi a outra, ele vai chamar o outro. Recebi a outra, ele vai chamar o outro. outra ele vai chamar o outro recebia outra ele vai chamar o outro recebia outra ele vai chamar o outro recebia outra ele vai chamar o outro ele fica fazendo automaticamente esse balanceamento de carga aí para você tá então a ideia do service é essa e ele vai te ajudar muito tá todo mundo que utiliza o cobranete utiliza serviços de forma. A não ser alguns casos muito específicos que você cria um pod que vai ficar resolvendo algumas tarefas específicas, você não precisa ter chamada e etc. Mas de forma geral, você sempre vai ter um service que vai fazer esse balanceamento de carga em cima dos seus pods. Mesmo que, por algum momento, você tenha apenas um pod rodando. O que eu nunca vou recomendar. momento, você tenha apenas um pod rodando. O que eu nunca vou recomendar. Porque se você tem apenas um pod, você vai ter problemas de alta disponibilidade. Se esse pod cair, se você estiver fazendo um novo deploy, você pode ficar sem nenhum rodando. Então, sempre vai ser recomendado pelo menos dois pods rodando a mesma aplicação para ter essa alta disponibilidade. Fechou? aplicação pra ter essa alta disponibilidade fechou então vamos lá a entender os quatro tipos de serviços e depois a gente vai colocar um pouco a mão na massa pra gente vê tudo isso aí funcionando vamos lá