Bom pessoal, no vídeo anterior a gente falou um pouco de réplicas sets, né? E os réplicas sets, eles envolvem o nosso pod para que nós possamos, no final das contas, fazer um gerenciamento mais granular e escolher a quantidade de réplicas que os nossos pods vão ter. Então o que eu vou fazer aqui? Eu vou criar um arquivo aqui chamado rs.yaml de réplica set. Eu vou criar um arquivo aqui chamado rs.yaml de replica 7. Vou criar aqui um camarada chamado de replica 7. E eu quero que você esqueça por enquanto tudo que está aqui por baixo. Vamos lá ao replica 7. O replica 7 possui uma API. E nesse caso a API que é utilizada é app-v1, e o tipo do meu objeto é Réplica 7. Lembra que no nosso caso do pod, a API é v1 e o kind é pod com um name, a minha réplica 7 também tem uma metadata que tem um name. O nome desse cara aqui eu vou chamar de Nginx RS, que é o réplica 7. Beleza? E agora que as coisas são interessantes. Por quê? O pod tem uma especificação essa especificação é do que é do container que vai rodar dentro do nosso pode ok a réplica 7 ela também tem uma especificação qual é a especificação da nossa réplica 7 ela fala qual é o selector dela o que isso significa vamos imaginar assim ó eu crio 50 pode eo réplica 7 tem que ficar gerenciando esses podes o ponto é como que aquele réplica 7 sabe que aquele 50 pode são pode que ele tem que gerenciar. Porque imagina que eu tenho outros pods gerados por outros replica sets. Como que ele sabe quem ele tem que olhar? Ele faz isso através de uma label. Lembra que quando a gente cria um pod, a gente fala, a label aqui é name em direct? Então, o que o replica set vai fazer aqui? Eu vou criar um seletor chamado Match Labels. O Match Labels vai falar o seguinte, olha, tudo que tiver, por exemplo, app em Dinex, são pods que eu gerencio. Então, se eu tiver lá um milhão de pods rodando, e eu falar eu tente gerenciar os pods, ele vai falar, eu quero gerenciar os pods cujo as labels tenha app, dois pontos, endnex. Se tiver coisas diferentes disso, eu não quero saber. Eu só quero olhar para esse tipo de pod. Beleza? Show de bola. Então, até aqui estamos conversados. beleza? show de bola então até aqui estamos conversados agora a replica set ela vai ser responsável pelo que? por criar os pods também, lembra que a gente tem aqui esse esqueminha que a gente cria os pods? então a replica set o que ela vai ter? ela vai ter um template e esse template vai ser o template de um pod. Como que o pod deve ser criado? Então, se você perceber, olha só que interessante. Se você olhar do metadata aqui para baixo, é tudo igual a um pod comum. Por quê? Porque é um template que o replica 7 utiliza para criar um pode ou seja aqui daqui pra baixo é a definição de um pode e daqui pra cima é a definição do nosso réplica 7 um réplica 7 precisa criar um pode então ele precisa da definição desse pode e que é no final das contas, um template. Legal? Então, como um template, eu vou falar o seguinte. Qual que vai ser as labels que eu vou utilizar para esse pod? Bom, aqui para mim é muito claro. Se no replica set eu coloquei para ele buscar todos os pods onde app é nginx, então os pods que eu for criar, a label dele tem que ser app nginx. Porque se for diferente, o nosso replica 7 não vai conseguir gerenciar esses pods, porque ele nem vai encontrar esses pods. Então por isso que aqui está um detalhe. O replica 7 busca os pods que ele tem que gerenciar. Ele busca por onde? Busca pelas labels. Qual é a label que ele vai buscar? App Engine X. Então quando eu criar meu pod, qual é a label que vai ter nesse pod? App Engine X. Legal? E depois disso, eu vou ter a minha especificação, que é exatamente a especificação do meu pod. Então, perceba aqui, galera, que a gente tem duas especificações. Essa primeira especificação é a especificação do replica set. E essa segunda especificação, que está aqui dentro, é a especificação do template que vai criar um pod. Então tudo isso aqui é informação do container que vai rodar dentro do pod que vai ser criado pelo replica set. Então o nome do meu container eu vou chamar de Nginx. A imagem do Nginx eu vou colocar Nginx latest. Não vou colocar recurso computacional. E a porta aqui eu vou colocar InginX Latest. Não vou colocar recurso computacional. E a porta aqui, eu vou colocar 80. Legal? Então, se você perceber, esse cara aqui é muito parecido com esse cara aqui. Qual é a diferença? Que essa parte aqui é a parte que está embutida aqui dentro e essa parte aqui é a parte que a gente define o réplica 7 que vai gerenciar esse pode que vai ser criado legal e a eu sei que é bastante arquivo bastante coisa que é escrita aqui, mas você se acostuma. E novamente, galera, você não precisa o tempo todo decorar. Você copia e cola, faz como eu acabei de fazer. Usa uma extensão do VS Code ou qualquer coisa desse tipo. Legal? Agora que a gente fez isso, vamos botar isso aqui para rodar? Vamos. Então, eu vou fazer o seguinte. Se eu der um kubectl get pods, eu não vou ter nenhum pod. Então, eu vou fazer o seguinte. kubectl apply-f replica7.yaml E se você olhar aqui agora, olha só que interessante. Ele criou um replicaica 7 aqui pra mim chamado enginex réplica 7 esse replica 7 o que ele faz ele cria pods aqui pra mim não cria então vou dar um kubectl get pods e você vai ver agora aqui que eu tenho um pod rodando mas o nome dele aqui está um pouquinho estranho perto da outra vez que a gente criou. Por quê? Primeiramente, o que vai acontecer é que ele chama de nginx-rs, que é o nome do replica set que está gerenciando o pod. E aqui são algumas letras e números randômicos para ele criar o nome do pod, porque eu posso ter vários pods gerenciados por esse replica 7, então ele cria algum nome aleatório aqui, então o que está acontecendo é o seguinte nginxrs, que é o replica 7 tracinho aqui o nome do meu pod basicamente é isso que está acontecendo e está rodando, agora como que eu sei o comportamento do meu réplica 7? Olha só que interessante, galera. Se eu der um kubectl get rs, que é o réplica 7, você vai ver aqui que eu tenho um réplica 7 também. Olha só que interessante. Eu tenho o meu réplica 7, que é o Nginx réplica 7. Ele deseja ter um pod rodando, atualmente ele tem um pod, e esse pod está pronto para execução, e faz 78 segundos que a gente rodou. Então é aqui que eu gerencio e vejo o estado do meu replica 7. Agora, olha só que interessante, galera. Se eu der um kubectl get pods, você vai ver que eu tenho esse pod rodando. Se eu copiar o nome desse pod e der um kubectl delete pod e passar o nome do meu pod, reparem bem no nome do pod aqui. Eu vou deletar esse cara e vou dar um get pods novamente. Olha só. Se você perceber, ele automaticamente já criou um outro pod no lugar. E o porquê que ele criou um outro pod no lugar? Porque o replica 7 ficou monitorando isso aqui pra gente. Entendeu? Então, o replica 7 precisa de um pod rodando. Eu deletei esse pod, ele fala, eu tenho zero pods, então vou criar mais um. É isso que o replica 7 faz. Ele garante a quantidade de pods em funcionamento para você. Beleza? Então, acho que ficou bem claro aqui para a gente. Agora, tem uma coisa bem interessante que a gente pode falar sobre o réplica 7, que é o seguinte, eu posso especificar a quantidade de réplicas que eu quero. Olha só que interessante. Eu posso chegar aqui, tá? Na especificação do réplica 7, e eu posso colocar aqui, ó, réplicas, eu vou colocar assim 10, por exemplo. Se eu agora der um kubectl, apply-f réplica 7, o que que vai acontecer? Ele vai configurar o meu réplica 7. O que vai acontecer? Ele vai configurar o meu réplica 7. E agora você vai ver que ele está criando, container creating, running, container creating, pending. Os pods que eu pedi. Vamos rodar de novo o comando. E você vai perceber agora que eu tenho 10 pods rodando. E o porquê que eu tenho esses 10 pods rodando? Porque é o meu replica 7 que pediu para esses 10 pods estarem no ar. Se eu chegar e remover qualquer um desses pods, kubectl, delete pod, kubectl, aqui, get pods, você vai ver que ele já criou um aqui, faz 5 segundos. Por quê? Porque eu deletei um, o estado desejado do meu replica set era 10, ficou 9, então ele criou mais um. Se eu chegar agora aqui, no cubectl, get replica 7, você vai ver agora que eu tenho um replica 7, onde a quantidade desejada de pods é 10, eu tenho 10, eu tenho disponibilidade das nossas aplicações que estão rodando dentro do nosso Kubernetes. Beleza? No próximo vídeo, a gente vai falar sobre alguns pontos que são um pouco tricky, vamos dizer assim, do Replica 7. Vamos nessa!