Migrando do CoreOS Container Linux (CL) para o Fedora CoreOS (FCOS)

Fedora CoreOS é o sucessor oficial do CoreOS Container Linux, que reached its end of life no dia 26/05/2020. Essa pagina tenta documentar as diferenças entre CL e o FCOS para facilitar a transição para o FCOS.

Introdução

Para migrar do CL para o FCOS, você deve converter suas configurações antigas de contêiner do CL, configurações do Ignition, ou arquivos cloud-config para uma configuração do Butane e adaptar o conteúdo para o FCOS. Como muitos detalhes de configurações mudaram, você deveria referenciar essa página e a issue de migração do CL no GitHub.

Mudanças na instalação

As seguintes mudanças foram feitas para o processo de instalação:

  • O script coreos-install foi substituído por coreos-installer. Ele oferece funcionalidades similares.

  • O parâmetro de configuração do kernel coreos.autologin atualmente não é suportado no FCOS. Para acesso por motivos de recuperação, existem instruções disponíveis aqui.

  • Algumas plataformas CL, como Vagrant, ainda não são suportadas no FCOS. Vá na página de Download para ver os tipos de imagem disponíveis.

Mudanças no empacotamento de Software

  • etcd não está incluída no FCOS. Vá em Rodando etcd para instruções de como rodar como um contêiner no FCOS.

  • flannel não é incluído no FCOS.

  • O runtime do contêiner do Podman é incluído no FCOS e é o runtime de contêiner recomendado. O runtime de contêiner rkt não é incluso.

  • FCOS não possui um mecanismo recomendado para selecionar a versão de docker.

  • A configuração de rede agora é realizada pelo NetworkManager ao invés de systemd-networkd.

  • Para sincronização de tempo, use chronyd ao invés de ntpd ou systemd-timesyncd.

  • Atualizações automáticas agora são coordenadas no Zincati, como descrito na Documentação do Zincati. O mecanismo de reversão (via grub) é agora provido pelo rpm-ostree.

  • A funcionalidade do gerenciador de reinicialização (locksmith) está dentro de Zincati.

  • A ferramenta update-ssh-keys não é provida no FCOS. Usuários do sshd usam o helper program para ler arquivos chave diretamente do ~/.ssh/authorized_keys.d.

Mudanças na configuração

Quando estiver escrevendo configurações do Butane, observe as seguintes mudanças:

  • coreos-metadata é agora Afterburn. O prefixo dos nomes das váriaveis dos metadados mudaram de COREOS_ para AFTERBURN_, e os seguintes nomes de plataforma mudaram:

  • Por default, FCOS não permite logins via SSH por senha. Nós recomendamos configurar chaves SSH ao invés disso. Se necessário, você pode habilitar autenticação SSH por senha.

  • Porque usermod ainda não é totalmente funcional no FCOS, há um grupo docker no arquivo /etc/group. Isso é uma medida para facilitar a transição para o FCOS. A equipe está trabalhando em um usermod mais funcional, com o tempo o grupo docker não será incluso por padrão. Veja o issue de docker group.

  • Não há maneira de criar diretórios no diretório /. Mudanças são restritas a /etc e /var. Refira-se a documentação para o nó storage da configuração Butane para detalhes sobre escrever diretórios e arquivos para o FCOS.

  • As configurações do Butane não mais possuem uma seção separada para configuração de rede. Use a seção files do Butane para escrever uma Arquivo de chave do NetworkManager ao invés.

Notas do operador

  • FCOS provê best-effort stability, e pode ocasionalmente incluir regressões ou mudanças novas para alguns casos ou cargas de trabalho.

  • CL possui três canais de release: alpha, beta e stable. Os fluxos de lançamento de produção do FCOS são next, testing e stable, e às vezes com diferentes semânticas.

  • Geralmente, o confinamento do SELinux deve funcionar da mesma forma que no Fedora.

  • Para realizar o deploy de uma configuração Ignition como parte de uma imagem PXE (uma "OEM custom" na terminologia CL), siga o mesmo processo que em CL, mas posicione o arquivo config.ign no root do arquivo.

  • No CL, os dados de métricas/telemetria eram coletados pelo mecanismo de atualização. No FCOS, os nós são contados (sem identificadores únicos) por meio do mecanismo Count Me.

  • Clientes CLI para nuvem não são inclusos no FCOS. Há uma iniciativa para criar um contêiner "tools" para rodar no FCOS.

  • Quando estiver abrindo um arquivo existente em um diretório grudento, o comportamento difere do CL. Veja O commit relevante do systemD.

  • CL deixa Multi-Threading Simultâneo (SMT) habilitado porém aconselha aos usuários que desliguem se seus sistemas forem vulneráveis a problemas como L1TF ou https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/mds.html[MDS. Por padrão, FCOS desabilita o SMT automaticamente para sistemas vulneráveis.

  • Geralmente, docker usa a configuração default do Fedora, que é diferente em vários aspectos. Notavelmente o driver para login é colocado para journald e o live-restore é habilitado.

Notas de implementação

  • O sistema de arquivos default no CL era ext4. No FCOS, o default é o xfs.

  • Enquanto o CL usava ativação por socket do systemd para o sshd, FCOS inicia sshd na inicialização por default.

  • CL possuia uma "Partição OEM" em /usr/share/oem com uma configuração do GRUB customizável e algumas ferramentas adicionais, mas o FCOS não possui isso.