Cluster, Hacks, Kubernetes -

5 + 1 HACKS PARA DEIXAR O SEU KUBERNETES BOLADÃO


Hoje é dia de conhecer o sensacional Krew e ainda conhecer mais outros 05 plugins para deixar o seu Kubernetes e o seu kubectl ainda mais poderosos! Nós vamos falar sobre diversos plugins como o Score, Popeye, NS, CTX e o Example!

Seja bem vinde a mais um post no blog da LINUXtips, e hoje nós vamos falar aqui ó pra você que quer ficar fera no Kubernetes. Sabe aquele o kubectl lá o kube control, kubectl, sei lá como você chama ele, kubectl, ta ligado ele? Mano eu vou ensinar você aí ela deixá-lo mano, maromba ta ligada. Sim eu como você fazer um monstro sair da jaula aí do kubectl exatamente vai ser sensacional, eu vou trazer aí várias dicas mano, uma que é sensacional trazer umas quatro dicas extra certo, então se prepara, prepara a sua cerveja, seu refrigerante ou seu suco, sua água e bora começar porque mano é muita informação legal.

Muito bem mas sem enrolação Jeferson, por favor, o que que você veio falar aqui sobre o kubectl mano que vai salvar a nossa vida que vai deixar ele fortão, marombadão meu Deus. Bem olha só, primeira coisa eu quero fazer o seguinte, eu aqui eu não gosto de ficar falando só não, eu gosto de mostrar a fonte, então vamos fazer o seguinte, vamos mudar a nossa tela aqui, nós estamos aonde olha só, kubernetes.io/docs certo, e aqui dentro ele ta falando assim "mano vamos estender esse seu kubectl, vamo?" Vamos, com o que, com os sensacionais plugins, ai você fala a Jeferson eu to ligado que tem plugin mano, mas calma lá, você não tá ligado ainda, vamos descendo a página vai desce desce, depois você ve o resto vai desce desce desce depois você ve sério mesmo, vamos descer, depois você ve calma, vai desce desce desce desce, não vai descendo vai com fé, ai chegamos aqui ó "What's next" certo, "read about Krew", primeira coisa que você precisa entender é o seguinte lá no kubectl existe a possibilidade de você colocar plugins nele, exatamente, você vai extendendo o kubectl colocando plugins, capacidades, funcionalidades, que o kubectl por default não tem, vocês vão ver essas, essas funcionalidades mano, tá sensacional demais você vai ver, vai ser muito legal. Muito bem nós estamos aqui na nossa querida página do Krew, olha só que sensacional o que que é o Krew aqui para você, é como se fosse um aptget install da vida para gerenciar os plugins do kubectl, exato, você não vai ter trabalho de ai como que eu instalo esse, como que eu instalo aquele, não, você vai usar o Krew, e o Krew vai fazer essa instalação para você, o gerenciamento desses plugins para você mano, é sensacional, chega ser lacrimejante é sério.

Muito bem, vamos descendo aqui na documentação, tá falando tudo aqui, como contribuir, a comunidade e tudo mais tem os canais lá no Slack também ta vendo, to aquela histórinha bonitinha de ai meu Deus, mas o que nós queremos aqui é o seguinte, Krew documentation, clica aí nesse cara porque nós vamos lá para uma outra telinha dai ele fala assim, o que que é Krew, ele fala que é um plugin manager para o kubectl olha só que legal, isso já é deveras legal certo, e aí ele vai falar assim, "e o que ele vai te ajudar?" ele vai te ajudar a descobrir plugins, instalar eles na sua máquina e deixar eles tudo bonitinho atualizado certo? E aqui ele vai mostrar para vocês uma página com 153 plugins exatamente você vai poder fazer o quê kubectl krew install (nome do plugin) olha só, tem um monte, são 153. Vou falar algum aqui para vocês alguns né, algumas dicas do Dollynho, mas por enquanto ainda não, nós temos que fazer o que, temos que fazer a instalação desse cara não tá feita a instalação dele ainda, vamos aqui ó, quickstart certo, então olha só o que nós temos, kubectl krew update pô aqui já ta instalado, ta vendo aqui ó install, vou até aumentar o tamanho da fonte, olha só mais um pouquinho da fonte, olha só install, clica aqui no install da vida e ai nós temos aqui ó, você quer instalar onde, no macOS, não não é no macOS, bem não não macOS que eu quero instalar é no Linux, mas é a mesma coisa olha só, pra bash e pra zsh, sim eu to utilizando o zsh entçao pra mim vai ser muito lindo, e ele fala assim, ó mano tenha certeza de que tem o git instalado, se você não tem o git ai você está bem errado, mas já tenho git instalado aqui no meu Linux, e ele fala assim ó, entçao já era então roda esse comando aqui seja feliz, olha só o tamanho do comando que ele tá trazendo aqui, para que eu possa fazer uma instalação, perceba é um conjunto de comandos né, onde ele vai "setar" vai fazer um mktemp ai pra usar um diretório temporário como base temporaria e depois ele vem criando aqui o, uma variável OS para trazer as informações do kernel olha só que mais ai tem lá o arch, fazer a arquitetura.

Tudo isso para trazer informações para saber onde ele vai instalar essa bagaça certo, então que tem, o curl, o curl sim ele vai fazer o download krew.tar.gz certo, e ai que mais ele vai fazer aqui pra frente, olha só ele vai fazer oque, vai descompactar e vai executar esse cara de acordo com o sistema operacional e com a arquitetura certo. E aí já era krew install krew, certo então esse krew aqui vai ser o quê? Vai ser esse cara aqui ó um comandinho, mais a o sistema operacional, mais a arquitetura, e aí o install krew certo, basicamente é isso então, vamos fazer esse cara executar, então um control c aqui nessa bagaça, e o que nós temos que ter agora, trazer o nosso shell aqui para jogada certo, aqui nosso shell, vou copiar e colar e vou fazer o quê? Vou dar aquele enter maroto, e vamos ver a mágica acontecer, olha só já tá fazendo a instalação, ele já viu lá quais são as opções ó se você olhar aqui quais são as opções que ele tem, tem até pra ARM, Linux pra ARM, AMD64, tem ARM64 também sensacional demais que mais, tem darwin também? Tem darwin aqui também olha só, tem Dawin para os dois AMD e ARM64.

Enfim mano oque ele fez aqui instalando o plugin krew instalou já o krew, lembrando o krew nada mais é do que um Plugin do próprio kubectl certo só que ele é um plugin que vai gerar outros plugins certo. Olha só dá quase que um graminem, vai cair agua nele e criar outros graminens olha só que legal, bem aqui ele tá falando assim ó, pra usar essa bagaça, usa lá kubectl krew, a documentção ta aqui certo, a gente já conhece a documentação, que mais que ele ta falando aqui ó, o krew tá instalado agora, maravilha pra começar a usar é só usar tá ligado? Ele fala aqui ó no Linux não esquece de fazer aquele export maroto certo, para que, para que você possa ter aí o binário do krew, então vou fazer aqui já, aquele export ele fala assim,mano ó já redireciona essa bagaça aí para o seu como chama, para o seu zsh.rc ou para o seu bash.rc então já vamos fazer isso aqui né, vamos fazer então, deixa só eu mudar as aspas porque já ta usando aqui um monte de aspas ali dentro então só pra não dar zika, e então eu coloco aqui >> e vamos colocar lá para dentro do / do zsh certo.

.zshrc certo, vamos jogar aqui para dentro desse cara, aí nós podemos vir aqui dar um source nele zshrc da vida olha só já era ele releu esse cara então agora nós temos ai ó kubectl, deixca eu limpar aqui a tela e vou digitar oque, krew para ver se ele ta ai, olha só o krew está instalado ele ta falando ó o krew é um kubectl plugin e toda aquela história e ele traz aqui o que que eu tenho aqui que eu posso fazer, olha só tem o index, info, install para fazer a instalação, o list para listar, o info para trazer informações sobre aquele cara, o index para fazer o gerenciamentos dos index ai dos plugins, search para procurar sobre um plugin, uninstall para fazer o uninstall né para desinstalar, update para pegar lá o local novo index lá né, upgrade para fazer o upgrade do seu plugin, e o version para saber a versão daquele plugin certo, nada diferente é tudo fácinho né, parece um aptget mesmo da vida.

Então oque que nós vamos fazer aqui, deixa eu limpar aqui a tela, o kubectl krew install não é isso e eu já vou começar a fazer a instalação do primeiro, o primeiro cara acho que eu até já msotrei várias vezes já ai no canal que é o popeye certo, o que que é esse popeye aí, ele vai trazer um score, ele vai dar um score aí para o seu cluster, certo para o seu cluster kubernetes, então olha só que eu tenho aqui ele ta falando do popeye, tudo bonitinho ele falando mano, ó o popeye ele não é tipo feito Scan pela equipe dos mantenedores do krew usa isso daqui com sua responsabilidade. Por sua conta e risco então mano tenha responsabilidade na hora de usar essa bagaça certo. Então olha só instalou o popeye, para usar o popeye, kubectl popeye, então kubectl, primeiro deixa eu ver aqui ó, tem aqui ó k get nodes, deixa eu ver se tem, a la ta trazendo seul-cool, tá vendo o cluster que nós temos aqui maravilha e ai eu quero fazer o seguinte eu vou usar o nosso popeye tá? kubectl espaço popeye desse jeitinho ai bonitinho de ai meu Deus e aí eu vou fazer o seguinte vou dar o enter, e ai e ele já sai varrendo ai meu cluster.

O que que esse popeye faz, ele vai ver tudo que tem de errado aí com o meu cluster e vai trazer uma nota tá vendo essas carinhas aqui assustada ta vendo ó, tem container rodando como root lá tem que arrumar isso tem um monte de coisa que ele tá pedindo para que eu concerte olha só, uma porrada de coisa certo, algumas coisinhas são boas então ele vai vendo ó, primeiro cluster role como que ta ó tá beleza tá 100% tá vendo, aí configmaps como é que tá e assim ele vai trazendo cada um deles olha daemonsets tá tudo horrível né nesse cluster enfim ó tudo horrível tudo horrível então vou descendo aqui mais ele vai trazer mais informação ele trouxe o score 89 é um tipo B beleza então é isso aí você pode olhar cada uma dessas coisas aí e sair consertando certo então por exemplo eu posso vir aqui ó aqui tem um monte de coisa horrenda tá com carinha de assustado que é os meus pods tá falando o seguinte ó não tem lá um PodDisruptionBudget também que mais esse tá rodando como root user né que mais que mais que mais, container could be running... readiness probe uses a port#, prefer a named port ta vendo tem uma porrada de recomendações que el vai trazendo para você para deixar o seu cluster mais bonitinho no final ele te da um score né, é sensacional!

Muito bem muito bem, mas é sensacional demais o popeye né, ele vai trazer o report, mas ele é só o primeiro cara nós temos mais em nós temos mais agora nós vamos ver quem, nós vamos ver um cara que é muito interessante também ó install da vida e vamos instalar o ns, oque é o ns para que eu possa gerenciar as minhas namespaces de uma maneira muito simples, porque normalmente tem que listar os pods assim ó, kubectl, eu to usando k poruqe eu fiz um álias, deixa eu colcoar o comando insteiro aqui para que vocês não confudam, get pods da vida se eu der um enter não tem nada, então se eu quero ver por exemplo o kube-system, quais são os caras que estão lá no meu kube-system, vou dar um enter, trouxe eu passei qual que é o namespace, só que se eu quero utilizar aqui agora o meu plugin novo ns eu venho aqui vou fazer o seguinte kubectl espaço ns, simples assim nada de outro mundo certo, só colocar o s e dar um enter na bagaça, ele te mostra quais são ó, a que eu estou aqui agora é a default e são essas outras namespaces então se eu quero ir por exemplo para kube-system que é essa aqui, clico aqui vou dar um enter, pronto eu já estou lá na kube-system então agora se eu vier dar aquele get pods olha só ele deu get pods, porque eu estou já na minha a namespace estão no caso aqui kube-system viu como funciona, se eu quero voltar para default mesma coisa né, eu venho aqui coloco ao invés de kube-system e vou colocar o que, default certo, agora eu vou lá, estou na default, é uma forma muito simples de você gerenciar, tem uma par de plugin inclusive para você colocar no zsh ou no bash, mas dai uma outra hora eu venho falar sobre plugins do zsh que é sensacional, mas mano já sabe mais um carinha bonitinho de ai meu Deus que é quem o nosso querido e idolatrado ns.

Aí você me fala, nossa Jeferson, tá muito legal que divertido, mas eu queria ver alguma outra coisa, olha só tem outro cara aqui também que é bastante legal que eu gosto muito de utilizar cadê o install cade o install aqui ó, eu vou colocar aqui, deixa eu ver quem que é o ctx que é para contexto certo? Vamos imaginar que você tem mais do que um contexto ai de Kubernetes tem mais de que um cluster Kubernetes configurado ai na sua máquina e você tem que ficar toda hora mudando lá, né? Fazendo o export de variaveis, o kubeconfig da vida, você tem que ficar manipulando, esse ctx ele vai te ajudar nisso certo, afinal você vai poder escolher qual que é o contexto que você quer utilizar qual que é o cluster que você vai querer utilizar então kubectl ctx, eu só tenho um contexto aqui mesmo que é o próprio Kubernetes admin que é aqueles carinhas ali o do Raspberry certo, esse carinha bonitinho aí de ai meu Deus que esse carinha ai, então eu só tenho um contexto se eu tivesse mais ele iria listar mais e ai eu posso vir aqui colocar qual que é o contexto que eu quero, se eu tivesse aqui um outro contexto, outro cluster chamado giropops, ficaria desse jeito, ele ia mudar aqui ele vai fala o que, que o contexto não existe então não dá para fazer isso simples assim nada de outro mundo aí mano, pelo amor de Deus muito simples.

Vamos ver mais 1, vamso ver mais 1 olha só, eu vou pegar e fazer o seguinte eu vou vir aqui ao invés desse cara aqui, vou fazer o krew certo, install e quem que nós vamos ver agora, vamso ver um carinha chamado score, vou dar um enter aqui, epa o que aconteceu krew é com k, o jegue, então olha lá krew tudo bonitinho, olha só maravilha instalado o nosso kubectl score certo, esse cara aqui ele vai trazer... a eu não mostrei pra vocês né, então tem aqui o info, entçao se eu quero ver o que esse cara faz, olha só o info ta trazendo aqui, ele traz uma pequena descrição, aqui falando assim ó, que el vai analizar, ele serve para analizar os objetos do Kubernetes, trazendo algumas recomendações para você deixar isso mais bonitinho, mais seguro certo muito bem então dito isso aí vamos sair usando esse cara como que eu utilizo esse cara, venho aqui kubectl espaço score, vou dar um enter aqui na bagaça e ele me traz a ajuda dele falando assim o primeiro score ele vai pegar e vai checkar todos os arquivos, esse daqui você precisa ter um arquivinho aqui né bonitinho para que você possa testá-lo certo, e ai vem o list que vai pegar e vai trazer toda a lista de CSVs, e o version que vai trazer a versão desse cara, então esse score ele vai fazer o que ele vai checkar o seu arquivo né para ver se o arquivinho lá que está definido um resource, se está tudo belezinha com ele, então eu criei um YAML para criar um pod, ele vai verificar se tá tudo bem, eu criei um YAML pra criar um deployment ele vai verificar, se o arquivinho que você tá criando está ok está bonitinho.

Aí você fala pô Jeferson, mas a gente não tem nenhum arquivo, então eu vou pegar e vou criar mkdir espaço video_plugins certo, vou criar esse diretório e vou adentrá-lo, video_plugin certo desse jeitinho, e aí eu vou pegar e vou mostrar outro plugin que vai nos ajudar agora, esse plugin é o extra que é muito interessante, se você tá aprendendo por exemplo, ta estudando pro CKA, CKS tudo mais mano isso é muito importante conhecer esse plugin, então vamos fazer aqui o seguinte cade o install cade o install, vamos pegar aqui o install e vamos instalar um cara chamado o example certo opa o que aconteceu aqui, usei o "crew" denovo aqui, usei o histórico com o krew errado, agora sim, olha só fazer a instalação do example, porque olha só como é sensacional demais esse example, você vem aqui ó, kubectl espaço example da vida esse jeitinho e eu quero fazer o que eu quero criar um, eu quero ver um example de um pod, como que eu crio um pod vou dar um enter aqui, pronto olha, só ele me trouxe aqui um exemplo de pod, ta vendo aqui ó, olha só me trouxe um exemplo, aí você fala não você não quero pod não, eu quero um exemplo de, deixa eu pensar aqui de um, storageclass, storage, desse jeito, class certo, vou dar um enter aqui, pronto tá aí um exemplo, ai você fala, não Jeferson eu não quero um desse daí não, quero pegar, eu quero um exemplo de seila, PVC, será que ele vai aceitar a sigla olha só ta ai um PVC, que é um PersistentVolumeClaim, funciona, funciona maravilhosamente bem mano, é sensacional demais example, lembrando que você pode usar qualquer resource ai do Kubernetes mano, seja feliz vai colocando, eu quero um exemplo seilá de um replicaset da vida dou um enter aqui, traz um exemplo de replicaset então, funciona maravilhosamente bem.

Porque que eu estou falando isso, vamso imaginar assim ó, vamos pegar um replicaset aqui, não, vou pegar um pod, vou pegar aqui e criar um pod, vou redirecionar aqui, vou criar um arquivinho pods-example.yaml certo dessa maneira bonitinha de ai meu Deus, vou dar um cat nesse pods-example.yaml da vida tá lá o meu, meu exemplo certo e o exemplo aqui tá usando até um nginx da vida mano usem esse kubectl example, vai salvar a vida de vocês em vocês vão poder criar tudo que é exemplo de arquivo de uma maneira muito simples certo bem, feito tudo isso criei esse exemplo, mas aí Jeferson porque você criou esse exemplo, eu não entendi porque você criou esse exemplo, lembra que nós brincamos com o score anteriormente eu falei para vocês que o score é pra que o score ele serve para trazer informações, cade aqui, para trazer informações de objetos, de arquivos que vocês estão criando certo, então kubectl score espaço o nome do arquivo, aliás, eu quero que ele faça um score né, e o nome do arquivo, como que é o nome do arquivo que nós criamos foi, deixa eu pegar aqui o nome porque eu esqueci, então kubectl desse jeito, score score pods-exemplo.yaml dessa maneirinha bonitinha de ai meu Deus perceba eu pedi pra ele fazer o score certo e ele trouxe lá as crititcas, ele falou assim "mano tem critical aqui em Pod Network, ao Security Context, ao resources e também a imagem, porque estou usando a imagem lá, eu acho que latest, olha só eu tô usando a imagem com latest e do nginx certo.

Aí ele vai falando cada um dos problemas, falando aqui do NetworkPolicy que não tem nada, ta falando dos resources, que não tem definição de CPU de nada disso, então ele pegou o meu arquivo, e ele etsá testando para ver se está tudo beleza com meu arquivo, se tem algum probleminha ou se ta safe certo é sensacional demais esse cara mano vamos falar a real o score e o example junto mano é muito amor. Então olha só nós já vimos o Krew que é o primeiro né? Depois nós já vimos mais 5 plugins, né, mano? Que sensacional deixa eu mudar de tela aqui para falar com vocês.

Então olha só que sensacional, nós pegamos e vimos o que nos vimos o primeiro plugin que é o Krew nós instalamos esse plugin, esse plugin o Krew, ele é o que é o gerenciador de outros plugins então com ele nós acabamos instalando um cara uma aptget pro kubectl certo, depois que instalamos krew o que nós fizemos nós colocamos lá quem, instalamos o example, instalamos quem mais, instalamos o score, quem mais o ns, o ctx e o popeye, 5 então 5+1=6, 6 plugins olha só que sensacional demais e aproveitando para falar o seguinte se você quer aprender muito sobre Kubernetes ó, eu vou falar já, tá rolando o quê sexta-feira agora inclusive sexta-feira às 7 horas da noite, horário de Brasília na Twitch no canal da Twitch da LINUXtips, vai rolar oque? Vai rolar a primeira aula do CKA, do mutirão, do Bonde do CKA nós vamos treinar todo mundo para tirar certificação do CKA do Kubernetes, a certificação mais foda do mundo.