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

To migrate from CL to FCOS, you must convert your old Container Linux Configs, Ignition configs, or cloud-config files to a Butane config and adapt the contents for FCOS. Since many of the configuration details have changed, you should reference this page and the CL migration issue on 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

When writing Butane configs, note the following changes:

  • 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 default. Veja o docker group issue.

  • There is no way to create directories below the / directory. Changes are restricted to /etc and /var. Refer to the documentation for the storage node of the Butane config for details about writing directories and files to FCOS.

  • Butane configs no longer have a separate section for network configuration. Use the Butane files section to write a NetworkManager key file instead.

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, and stable. A produção do FCOS release streams são next, testing, e stable, e as 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, dados de métricas/telemetria foi coletada pelo mecanismo de atualização. No FCOS, os dados são coletados (sem identificadores únicos) por fedora-coreos-pinger.

    • Para prevenir qualquer informação de ser coletada ou transmitida pelo pinger, você pode desabilitar os reports. Para fazer isso, coloque um trecho de configuração em /etc/fedora-coreos-pinger/config.d/99-disable-reporting.toml contendo o seguinte:

      [reporting]
      enabled = false
  • 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 default, 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.