‫Tudo certo. Nas últimas palestras, você começou
‫a ver todas as diferentes áreas do Kubernetes que estão
‫se expandindo, certo. Se você pensar
‫nisso como este pequeno globo central dos binários e
‫da infraestrutura básica do
‫Kubernetes, os anéis continuam ficando cada vez maiores,
‫certo. Com padrão
‫do Ingress e Operator e definições de recursos personalizados.
‫Apenas continua ficando maior.
‫Agora, quero falar com você sobre como
‫está ficando ainda maior. De fato, esta é provavelmente a única área em que
‫é um pouco louca.
‫Isso está na área de opiniões sobre
‫como implantar a YAML para esses recursos, certo.
‫Até agora, você viu o kubectl se aplicar.
‫Bem, isso vai ajudá-lo a começar e provavelmente o ajudará na
‫sua primeira implantação de um orquestrador de contêineres,
‫certo. Você vai... esteja
‫usando o Swarm ou o Kubernetes, você obterá
‫o YAML e terá um repo, armazenando-o lá, e
‫isso fará sentido.
‫Depois que você começa a expandir isso, e você
‫tem equipes, permissões, diferentes
‫tipos de permissões e pessoas que
‫precisam governar ou aprovar as coisas, tudo fica mais complicado.
‫O que aconteceu neste mundo de como implantar
‫seus aplicativos no Kubernetes, e
‫é basicamente disso que se trata. Vamos falar sobre o fato
‫de que agora existem mais de 60 anos, bem, existem
‫80, mas muitos deles não são mais projetos reais ou
‫estão mortos ou arquivados.
‫Mas há pelo menos
‫60 maneiras de adicionar ferramentas ao Kubernetes
‫simplesmente para implantar seus aplicativos no Kubernetes.
‫Há muitas opiniões, certo.
‫É aqui que as opiniões começam a surgir sobre
‫como você deve fazer isso. Tudo, desde Jenkins X até Helm
‫e além. Há todas
‫essas coisas e opiniões diferentes sobre, bem,
‫o Kubernetes não é uma infraestrutura opinativa, por isso precisamos de
‫opiniões para orientar as pessoas no
‫processo de implantação e atualização de aplicativos.
‫Então, todo mundo tem um. Se você leu
‫alguma coisa sobre como fazer isso no Kubernetes,
‫provavelmente já ouviu falar em Helm. O leme para o Kubernetes
‫é essencialmente o Kubernetes para contêineres. Helm é a maneira de
‫fato que todos
‫procuram criar modelos e usar padrões de modelos
‫para implantar aplicativos de terceiros ou criar
‫seus próprios gráficos Helm personalizados.
‫É assim que eles se chamam gráficos.
‫É essencialmente um YAML modelado, mas permite ao
‫Helm criar ou cuspir o
‫YAML que entrará no cluster do Kubernetes
‫para você. Mas, não é a única opinião, certo.
‫Eu disse que há mais de 60 anos pela última vez que olho.
‫Na verdade, há uma planilha do Google que eu coloquei nos
‫links de referência. Está um pouco desatualizado, mas é a última
‫lista conhecida de todos os lugares em que você
‫pode encontrar essas diferentes maneiras de implantar. O próprio Docker tem sua própria opinião
‫que é muito interessante, especialmente se você deseja estar restrito
‫ao ecossistema do Docker. Isso
‫é Compor no Kubernetes.
‫Se você possui o Docker Desktop,
‫hoje pode ativar o Kubernetes, o que provavelmente já fez
‫para esta parte do curso. Você pode usar a implementação
‫da pilha do docker e, em vez disso, ir para o
‫Swarm, enviá-lo ao Kubernetes.
‫Se você olhar o comando docker stack deploy e
‫procurar a ajuda para isso, verá que existe
‫uma opção para especificar o orquestrador que
‫você deseja usar. De fato, nas configurações
‫do Docker Desktop, você pode dizer para ele preferir ou usar o Kubernetes
‫como padrão para os comandos de implantação de pilha.
‫Isso é bem interessante, porque eu pensei que o Compose YAML
‫era diferente do Kubernetes YAML.
‫Bem, é isso que o Compose on Kubernetes agora faz.
‫É uma ferramenta de terceiros essencialmente.
‫É uma maneira opinativa, do Docker, de como implantar,
‫interpretar ou traduzir tecnicamente o YAML do
‫Compose, o formato Compose, no formato
‫YAML do Kubernetes.
‫Então, coloquei um link aqui para você
‫verificar se você é alguém que considerará o Docker
‫Enterprise como sua ferramenta corporativa para Kubernetes, Swarm
‫e Docker em geral.
‫Então, você deve definitivamente verificar isso, porque isso sai
‫da caixa. Uma das coisas boas
‫desse recurso é que o fluxo de trabalho
‫permanece super simples. Basicamente, você está
‫usando seu Compose YAML em todo o pipeline e pode usá-lo
‫em Ops e Dev. Não obriga a dizer:
‫OK para desenvolvedores, você precisa ter o YAML para
‫Compose e para produção e servidores, você precisa desse YAML do
‫Kubernetes e eles não são compatíveis, certo.
‫A idéia com Docker era que eles achavam isso
‫muito complicado. Vamos simplificar.
‫Vamos apenas usar um padrão YAML para todo o
‫pipeline de controle.
‫E eu gosto. O problema é que
‫ele não suporta tudo sob o sol que
‫o Kubernetes pode fazer, certo. Quero dizer, obviamente, temos
‫uma única página no Docker Docs para listar todos os recursos
‫de um arquivo de composição. Mas, o Kubernetes YAML
‫é tão complexo que precisamos cavar vários comandos e referências
‫de API e tudo mais, certo.
‫Tão claramente, não é possível fazer tudo.
‫O legal é que no site do Compose
‫for Kubernetes, eles falam no GitHub sobre os diferentes recursos
‫que ele suporta.
‫É a regra 80/20 lá.
‫Em outras palavras, ele suporta os 20%
‫dos recursos do Kubernetes dos quais 80% provavelmente precisam.
‫Assim, você pode começar e ver se esse fluxo de
‫trabalho funcionaria para você. Outra coisa interessante
‫é que, no final de 2018, eles abrem o
‫código Compose no Kubernetes, para que você possa implantá-lo em qualquer
‫infraestrutura do Kubernetes que você possui e funciona como
‫um tipo de intérprete. Ele é traduzido sempre
‫que você usa o arquivo Compose do Docker e, usando
‫os comandos do Docker, ele conecta o cluster do Kubernetes
‫a você, traduz isso automaticamente para o Kubernetes YAML
‫e está pronto. Na verdade,
‫você pode, naquele momento, ignorar muito o Kubernetes
‫YAML para seus aplicativos. Talvez você use o
‫Kubernetes YAML para itens de infraestrutura que você não
‫está implantando todos os dias. Mas, talvez para seus
‫desenvolvedores facilitarem a gravação do Compose YAML e colocar as
‫coisas em produção mais rapidamente, você escolhe usar o Compose on
‫Kubernetes como o fluxo de trabalho.
‫Então, talvez você use os gráficos
‫Helm, que é um tipo de padrão competitivo para
‫sua principal infraestrutura. Porque o Helm
‫é que ele vem pronto para uso com muitos desses
‫modelos de gráfico, para que você possa implantar
‫o Prometheus ou o Elasticsearch com ELK ou algo assim.
‫Ele virá com esses modelos prontos para uso que
‫permitem que você inicie mais rapidamente.
‫Além disso, lembre-se de que tudo isso é opcional, certo.
‫Você pode fazer o Kubernetes com o YAML padrão com o
‫qual você está jogando até agora, e tudo bem.
‫Não requer essas outras coisas.
‫São apenas ferramentas opcionais de terceiros.
‫Tradicionalmente, à medida que a equipe cresce, quando
‫você obtém vários clusters de produção do Kubernetes
‫e há várias equipes envolvidas, tudo fica mais
‫difícil e você provavelmente acaba com mais
‫de uma solução. Você pode acabar com o Helm em determinados clusters.
‫Você pode acabar com o Compose no Kubernetes para seus
‫desenvolvedores, ou algo assim.
‫Ou, uma dessas outras 60 ferramentas
‫no ecossistema.
‫O último ponto é que, como o Helm é realmente o
‫líder neste espaço agora, quase todas
‫as distribuições o usam, suportam ou até mesmo vêm
‫com ele imediatamente. Apenas considere que,
‫ao examinar essas ferramentas, você provavelmente não poderá evitar
‫o Helm em um ambiente amplo.
‫Você só vai ter que usá-lo.
‫O bom é que hoje é dia 3. 0 e que há
‫opções de implantação muito mais simples nos
‫3. 0 versus 1. 0 e
‫2. 0 Então, as coisas estão ficando
‫melhores e mais fáceis com isso o tempo todo. Muitas dessas ferramentas de
‫implantação estão realmente apenas ajudando você a modelar seu YAML de
‫várias maneiras. Kubernetes em
‫si realmente não tinha nada por muito tempo.
‫Nos lançamentos recentes, agora é lançado algo
‫chamado Kustomize with a K.
‫Quando você começa a ver essa palavra com um K, sabe
‫que é uma característica especial.
‫Ele permite que você faça coisas semelhantes ao Helm e
‫essas outras soluções de implantação, mas não
‫é tão poderoso quanto
‫o Helm, certo.
‫Então, Helm ainda é o líder.
‫O Kustomize é uma espécie de novato no ramo, mas vem pronto para uso
‫com tudo o que você faz no Kubernetes.
‫O comando kubectl suporta isso.
‫Realmente o que é que está apenas pegando,
‫em vez de um YAML modelado, está apenas pegando o YAML que
‫você já possui, que é o YAML padrão do Kubernetes, e você
‫pode pegar esse arquivo e, em seguida, executar outra coisa
‫em cima dele e alterá-lo com uma substituição Do tipo.
‫É parecido com o que fazemos no Swarm.
‫Na verdade, temos no Swarm and Compose, substituímos
‫arquivos e coisas assim.
‫Eles agora têm esse produto pronto para uso.
‫Tem muitos recursos para isso.
‫Eu acho que, em mais ou menos, não está exatamente lá em termos do conjunto
‫de recursos do que Helm tem, mas pelo menos ele
‫vem pronto para uso.
‫Lembre-se, se você tiver o Docker, a versão
‫mais recente, 19. 03 ou mais recente do
‫Docker, agora possui o subcomando app docker, que faz o
‫seu próprio modelo de Compose YAML e
‫é realmente muito comparável a essa opção personalizada para
‫o Kubernetes. Novamente, se você
‫seguir a trilha do Docker e considerar o
‫Docker Enterprise ou apenas gostar do modo como o Docker se concentra
‫no fluxo de trabalho do desenvolvedor, consulte o
‫comando sub docker app e também o repositório de aplicativos docker, que
‫Vou colocar os recursos aqui.
‫Como eles têm documentação sobre como você
‫pode usar o Compose YAML, extraia coisas como variáveis de
‫ambiente e outras coisas. Empacote tudo em uma
‫única imagem e envie seu YAML como uma imagem.
‫O que significa que agora você pode fazer a versão
‫do seu YAML e implantá-lo com uma única linha,
‫sem precisar fazer o puxar para baixo do YAML e digitar comandos longos.
‫É uma maneira bem interessante de fazer isso.
‫Está usando algo novo chamado padrão CNAB, que não
‫vamos abordar aqui, mas isso é C
‫N A B.
‫Foi um anúncio que Docker e Microsoft fizeram
‫em 2018.
‫Você pode verificar tudo isso no site do
‫aplicativo Docker nos recursos. Novamente, todo esse material
‫trata de maneiras opcionais de terceiros para personalizar e estender
‫o YAML padrão para facilitar a sua equipe à medida
‫que você cresce.