6 pontos por xguru 2025-02-28 | Ainda não há comentários. | Compartilhar no WhatsApp
  • O modo de imagem do Red Hat Enterprise Linux (RHEL) simplifica o processo de construir, implantar e gerenciar o RHEL como contêineres inicializáveis
  • Desenvolvedores, equipes de operações e fornecedores de soluções podem gerenciar aplicações e o sistema operacional base usando as mesmas ferramentas e tecnologias nativas de contêiner

Construção de contêineres inicializáveis vs. contêineres de aplicação

  • Assim como contêineres de aplicação comuns, contêineres inicializáveis podem ser construídos com tecnologias de contêiner existentes, como Podman, Docker ou buildkit
  • As imagens podem ser armazenadas em registros de contêiner como Quay.io, Docker Hub, GitHub Container Registry ou um registro interno de contêineres
  • Contêineres inicializáveis são uma evolução natural da tecnologia de contêineres, oferecendo um fluxo de trabalho e uma experiência de usuário abrangentes e nativos de contêiner, incluindo o sistema operacional completo e o kernel Linux

Uso de Containerfile

  • O Containerfile (também chamado de Dockerfile) contém todas as informações necessárias para construir uma imagem de contêiner, incluindo a imagem base, instruções para instalar pacotes de software e copiar arquivos de um repositório Git
  • O fluxo de trabalho e as ferramentas para construir contêineres inicializáveis são essencialmente os mesmos dos contêineres de aplicação
  • No entanto, há algumas boas práticas que se aplicam ao construir contêineres inicializáveis

Boas práticas para linting

  • Recomenda-se executar o comando bootc container lint como etapa final do Containerfile
  • Esse comando realiza várias verificações dentro da imagem de contêiner e gera erros se houver problemas
  • Por exemplo, ele verifica se há vários kernels em /usr/lib/modules, inspeciona a sintaxe dos arquivos em /usr/lib/bootc/kargs.d e checa a higiene de /etc e /usr/etc

GitHub Actions e espaço em disco

  • Ao construir contêineres com GitHub Actions, você pode enfrentar problemas relacionados a espaço em disco por causa do tamanho das imagens de contêiner inicializáveis
  • Para resolver isso, é possível adicionar ao arquivo de workflow uma etapa que exclui o diretório /opt/hostedtoolcache para liberar espaço em disco

Entendendo o /var

  • /var é um diretório para dados e estado locais da máquina, persistentes e mutáveis, e mesmo durante atualizações o conteúdo de /var na imagem de contêiner não é alterado
  • Portanto, se uma aplicação gravar dados em /var, é preciso movê-los para outro diretório, como /usr/share, para evitar problemas com montagem somente leitura

Uso do comando useradd

  • Se useradd for chamado em scripts de empacotamento, pode ocorrer state drift quando /etc/passwd é modificado localmente
  • Para evitar esse problema, é possível considerar o uso da opção DynamicUser=yes do systemd para criar usuários dinamicamente
  • Porém, em casos complexos, pode ser difícil migrar para DynamicUser=yes; nesse caso, é recomendável usar systemd-sysusers para criar usuários

Incorporação de contêineres com Quadlet

  • Executar workloads conteinerizados no systemd é uma forma simples e poderosa de obter implantações confiáveis
  • O Podman oferece uma ferramenta chamada Quadlet para integração com systemd, permitindo gerenciar workloads conteinerizados de forma declarativa
  • O Quadlet se integra perfeitamente ao modo de imagem e pode usar imagens vinculadas logicamente para pré-baixar imagens de contêineres de aplicação na inicialização

Resumo

  • Com o modo de imagem, ocorre uma mudança de paradigma na forma de operar hosts RHEL
  • É possível construir, implantar e gerenciar o sistema operacional com ferramentas cloud-native, lidando com um SO imutável em que a maior parte do sistema é montada como somente leitura

Ainda não há comentários.

Ainda não há comentários.