Capítulo 17. Atomic Host e Contêineres

Red Hat Enterprise Linux Atomic Host

O Red Hat Enterprise Linux Atomic Host é um sistema operacional seguro, leve e de mínimo impacto otimizado para executar os contêineres Linux.
Ele é pré-instalado com as seguintes ferramentas para o suporte dos contêineres Linux:
  • Docker - um mecanismo open source que automatiza a implantação de qualquer aplicativo como um contêiner auto-suficiente, portátil e leve que é executado praticamente em qualquer ambiente
  • atomic - define o ponto de entrada para os hosts Atomic
  • kubernetes - fornece gerenciamento de cluster de contêineres
  • etcd - fornece um armazenamento de valor de chave altamente disponível para configuração compartilhada
  • flannel - contém um agente de gerenciamento de endereços baseado em etcd, que gerencia endereços IP de redes de sobreposição entre os sistemas executando contêineres que precisam de comunicar uns com os outros
O Red Hat Enterprise Linux Atomic Host usa as seguintes tecnologias:
  • OSTree e rpm-OSTree - Estes projetos fornecem upgrades do atomic e capacidade de reversão
  • systemd - um novo sistema init para o Linux que acelera o tempo de inicialização e facilita a orquestração
  • SELinux - habilitado por padrão para fornecer uma segurança multilocatária completa
Além disto, o Cockpit também está disponível no Red Hat Enterprise Linux, como um pacote separado de Extras, e no Red Hat Enterprise Linux Atomic Host, como uma Imagem de Contêiner, cockpit-ws. O Cockpit é uma interface de administração do servidor que facilita a administração de servidores do Red Hat Enterprise Linux através de um navegador da web.

Red Hat Enterprise Linux Atomic Host 7.2.4

Pacotes atualizados:
  • docker-1.9.1-40.el7
  • kubernetes-1.2.0-0.11.git738b760.el7
  • cockpit-0.103-1.el7
  • cockpit-ostree-0.103-1.el7
  • docker-distribution-2.4.0-2.el7 *
  • runc-0.1.0-3.el7 *
Novos pacotes:
  • atomic-devmode-0.3.3-3.el7
  • docker-latest-1.10.3-22.el7
O asterisco (*) refere-se aos pacotes que estão disponíveis somente para o Red Hat Enterprise Linux.
Imagens de contêiner atualizadas
Todas as imagens de contêiner oficiais da Red Hat estão disponíveis na página registry.access.redhat.com.
Red Hat Enterprise Linux 7.2.4 Container Image (rhel7/rhel)
Red Hat Enterprise Linux Atomic Tools Container Image (rhel7/rhel-tools)
Red Hat Enterprise Linux Atomic rsyslog Container Image (rhel7/rsyslog)
Red Hat Enterprise Linux Atomic sadc Container Image (rhel7/sadc)
Red Hat Enterprise Linux Atomic cockpit-ws Container Image (rhel7/cockpit-ws)
Red Hat Enterprise Linux Atomic etcd Container Image (rhel7/etcd)
Red Hat Enterprise Linux Atomic Kubernetes-controller Container Image (rhel7/kubernetes-controller-mgr)
Red Hat Enterprise Linux Atomic Kubernetes-apiserver Container Image (rhel7/kubernetes-apiserver)
Red Hat Enterprise Linux Atomic Kubernetes-scheduler Container Image (rhel7/kubernetes-scheduler)
Red Hat Enterprise Linux Atomic SSSD Container Image (rhel7/sssd) (Apresentação Prévia de Tecnologia)
Atualização OSTree
Nova Versão da Árvore: 7.2.4 (hash: b060975ce3d5abbf564ca720f64a909d1a4d332aae39cb4de581611526695a0c)
Alterações desde a Versão da Árvore 7.2.3-1 (hash: 644fcc603549e996f051b817ba75a746f23f392cfcc7e05ce00342dec6084ea8)
Para obter o OSTree mais recente, execute o comando atomic host upgrade no seu sistema Red Hat Enterprise Linux Atomic Host.

Começando com o lançamento Atomic Host 7.2.4, duas versões do serviço docker serão incluídas no sistema operacional: Docker 1.9 e Docker 1.10.

O artigo da base de dados de conhecimento a seguir contém todas as informações necessárias sobre como usar essas duas versões do Docker: https://access.redhat.com/articles/2317361

O conflito entre o docker 1.9 e as versões atomic-openshift 3.1 / versões de origem 1.1 foi removido

Anteriormente, devido a questões de estabilidade entre o docker 1.9 e as versões atomic-openshift 3.1/ versões de origem 1.1, o docker 1.9 era empacotado para entrar em conflito com as versões do atomic-openshift mais antigas que 3.2 e as versões de origem mais antigas que 1.2. Como consequência disso, a execução de yum update em um sistema OpenShift Enterprise 3.1 gerava falhas. Este erro foi corrigido e a execução de yum update agora não gera conflitos e, sim, resolve as dependências com êxito e instala o docker 1.9.

Novo pacote atomic-devmode disponível

O pacote atomic-devmode permite que os usuários experenciem facilmente a Red Hat Atomic Cloud Image. Ela adiciona um novo item de menu GRUB2, rotulado como Developer Mode, que possibilita aos usuários inicializar o sistema sem ter que configurar cloud-init. Quando no Modo de Desenvolvedor (Developer Mode), a senha root será gerada automaticamente e os usuários também entrarão automaticamente em uma sessão interativa na qual o Cockpit é baixado e iniciado.

Pacotes kubernetes atualizados

Os pacotes kubernetes foram atualizados para ose v3.2.0.16, correspondendo ao kubernetes v1.2.0. Além disto, foi introduzido suporte para a exposição de chaves secretas nas variáveis de ambiente.

O Cockpit foi rebaseado para a versão 0.103

As alterações mais notáveis do cockpit-0.103:
  • Quando o Cockpit não consegue se conectar a um host, o comando SSH relevante ou os detalhes do host agora são exibidos para auxiliar na resolução do problema.
  • A política de reinicialização do Docker agora pode ser configurada durante a inicialização de um novo contêiner.
  • A criação de volumes lógicos passou a ser reunida em uma única caixa de diálogo.
  • A ingressao nos domínios IPA não oferece mais a opção Computer OU.
  • Os dados binários do jornal agora são exibidos corretamente.
  • Os tamanhos do sistema de arquivos ou disco são exibidos usando nomes IEC, tais como MiB.
  • Os volumes lógicos não podem ser reduzidos mais e a caixa de diálogo da partição do sistema de arquivos impede os tamanhos negativos.
  • Políticas de segurança de conteúdo estritas foram implementadas na maioria dos Cockpits para impedir ataques baseados no navegador.
Os pacotes também incluem várias correções de erros e melhorias na interface do administrador.

Red Hat Enterprise Linux Atomic Host 7.2.3

Pacotes atualizados:
  • docker-1.9.1-25.el7
  • etcd-2.2.5-1.el7
  • python-docker-py-1.7.2-1.el7
  • kubernetes-1.2.0-0.9.alpha1.gitb57e8bd.el7
  • cockpit-0.96-2.el7
  • atomic-1.9-4.gitff44c6a.el7
  • docker-distribution-2.3.1-1.el7 *
  • dpdk-2.2.0-2.el7 *
Novos pacotes:
  • runc-0.0.8-1.git4155b68.el7 *
  • atomic-pkglayer-2016.1.1.gfbf8dde-2.el7 *
O asterisco (*) refere-se aos pacotes que estão disponíveis somente para o Red Hat Enterprise Linux.
Imagens de Contêiner
Todas as imagens de contêiner oficiais da Red Hat estão disponíveis na página registry.access.redhat.com.
Novo:
Red Hat Enterprise Linux Atomic SSSD Container Image (rhel7/sssd) (Apresentação Prévia de Tecnologia)
Atualizado:
Red Hat Enterprise Linux 7.2.3 Container Image (rhel7/rhel)
Red Hat Enterprise Linux Atomic Tools Container Image (rhel7/rhel-tools)
Red Hat Enterprise Linux Atomic rsyslog Container Image (rhel7/rsyslog)
Red Hat Enterprise Linux Atomic sadc Container Image (rhel7/sadc)
Red Hat Enterprise Linux Atomic cockpit-ws Container Image (rhel7/cockpit-ws)
Red Hat Enterprise Linux Atomic etcd Container Image (rhel7/etcd)
Red Hat Enterprise Linux Atomic Kubernetes-controller Container Image (rhel7/kubernetes-controller-mgr)
Red Hat Enterprise Linux Atomic Kubernetes-apiserver Container Image (rhel7/kubernetes-apiserver)
Red Hat Enterprise Linux Atomic Kubernetes-scheduler Container Image (rhel7/kubernetes-scheduler)
Atualização OSTree
Nova Versão da Árvore: 7.2.3 (hash: d620e841861c746b5a296337c1659e6625abfeff96844099d48540fc93717656)
Alterações desde a Versão da Árvore 7.2.2-2 (hash: 8b2cf24b420d659179dc866eab1bb341748839204ba56ed46a86218010789e91)
Para obter o OSTree mais recente, execute o comando atomic host upgrade no seu sistema Red Hat Enterprise Linux Atomic Host.

Pacotes do Cockpit rebaseados para a versão 0.96

Pacotes do Cockpit que fazem parte do Red Hat Enterprise Linux Atomic Host 7.2.3, incluem cockpit-bridge, cockpit-shell, cockpit-docker e cockpit-ostree. Outros programas relacionados ao Cockpit podem ser adicionados a um Red Hat Enterprise Linux Atomic Host via contêineres (como o rhel7/contêiner cockpit-ws).
O Cockpit 0.96 é compatível com o docker 1.10. Esta versão corrige erros anteriores com vazamentos de memória, na maioria das vezes relacionados a DBus, e vários problemas de conexão e navegação. Além disto, você pode agora limitar as autenticações simultâneas semelhantes ao ssshd usando a configuração MaxStartups.

Novo pacote runc agora disponível para o Red Hat Enterprise Linux

runC é uma implementação portátil, leve do Open Container Format (OCF) que fornece um tempo de execução do contêiner. A ferramenta de linha de comando runC pode ser usada para gerar e executar contêineres segundo a especificação do Open Container Project (OCP). Os contêineres são inicializados como um processo dependente do runC e podem ser incorporados em vários outros sistemas sem ter que executar um daemon docker.

Novos subcomandos adicionados à CLI do atomic

A ferramenta de linha de comando do atomic para o gerenciamento dos contêineres e sistemas do Atomic agora inclui os sub-comandos top, diff e migrate. Para mais informações sobre seus usos e sintaxe, consulte https://access.redhat.com/documentation/en/red-hat-enterprise-linux-atomic-host/version-7/cli-reference/#cli_commands.

Suporte para a personalização do sistema host

Os novos pacotes atomic-pkglayer contêm uma ferramenta para a instalação dos pacotes de depuração nos sistemas Atomic. Elas devem ser usadas somente na imagem de contêiner do Red Hat Enterprise Linux Atomic Tools (rhel7/rhel-tools). Ela fornece um mecanismo para adicionar os pacotes RPM a um Atomic Host permitindo que você inclua-os nas camadas ostree locais no sistema existente. Consulte "Installing RPMs on an Atomic Host with atomic-pkglayer" (https://access.redhat.com/articles/2245351) para uma descrição da ferramenta atomic-pkglayer.

Red Hat Enterprise Linux Atomic Host 7.2.2

Pacotes atualizados:
  • docker-1.8.2-10.el7
  • etcd-2.2.2-5.el7
  • flannel-0.5.3-9.el7
  • docker-distribution-2.2.1-1.el7
  • python-docker-py-1.6.0-1.el7
  • kubernetes-1.2.0-0.6.alpha1.git8632732.el7
  • cockpit-0.93-1.el7
  • atomic-1.8-6.git1bc3814.el7
Imagens de contêineres atualizadas:
Red Hat Enterprise Linux 7.2.2 Container Image
Red Hat Enterprise Linux Atomic Tools Container Image
Red Hat Enterprise Linux Atomic rsyslog Container Image
Red Hat Enterprise Linux Atomic sadc Container Image
Red Hat Enterprise Linux Atomic cockpit-ws Container Image
Red Hat Enterprise Linux Atomic etcd Container Image
Red Hat Enterprise Linux Atomic Kubernetes-controller Container Image
Red Hat Enterprise Linux Atomic Kubernetes-apiserver Container Image
Red Hat Enterprise Linux Atomic Kubernetes-scheduler Container Image
Atualização do OSTree:
Nova Versão da Árvore: 7.2.2 (hash: a9036292783ddfd389459d9bab69df5a655a0d6bb4dc6239a0aeff0f5d356f2e)

A API v1beta3 não possui mais suporte nos kubernetes

O uso de v1beta3 nos arquivos de configuração não possui mais suporte. A criação de um objeto v1beta3 com o comando kubectl causará falhas com o seguinte erro:
error validating data: the server could not find the requested resource; if you choose to ignore these errors, turn validation off with --validate=false
O uso da opção --validate=false criará um objeto, no entanto ele aparecerá como um objeto v1.

Um subpacote cockpit-docker separado passa a ser enviado agora

Anteriormente, o suporte do docker Cockpit era enviado junto com o subpacote cockpit-shell. Agora, o subpacote cockpit-docker está disponível para ser instalado separadamente no Red Hat Enterprise Linux e está incluído no ostree disponível para o Red Hat Enterprise Linux Atomic Host.

As alterações mais notáveis no cockpit 0.93

  • Distribuição de lincenças dos componentes incluídos no RPM de origem
  • Reformulação dos certificados TLS para o Cockpit
  • O Cockpit agora oferece a ativação de multipathd para discos multipath
  • Interface do usário adicionada para upgrades OSTree e reversões
  • Suporte ao login OAuth adicionado
  • Relatório SOS adicionado à interface do usuário
  • Suporte para a ferramenta de gerenciamento de energia Tuned

Red Hat Enterprise Linux Atomic Host 7.2

Pacotes atualizados:
  • docker-1.8.2-8.el7
  • flannel-0.5.3-8.el7
  • cockpit-0.77-3.1.el7
  • storaged-2.2.0-3.el7
  • kubernetes-1.0.3-0.2.gitb9a88a7.el7
  • atomic-1.6-6.gitca1e384.el7
  • python-websocket-client-0.32.0-116.el7
  • python-docker-py-1.4.0-118.el7
Novos pacotes:
  • docker-distribution-2.1.1-3.el7
Imagens de contêineres atualizadas:
Red Hat Enterprise Linux 7.2 Container Image
Red Hat Enterprise Linux Atomic rsyslog Container Image
Red Hat Enterprise Linux Atomic sadc Container Image
Red Hat Enterprise Linux Atomic Tools Container Image
Red Hat Enterprise Linux Atomic cockpit-ws Container Image
Novas imagens de contêineres:
Red Hat Enterprise Linux Atomic etcd Container Image
Red Hat Enterprise Linux Atomic Kubernetes-controller Container Image
Red Hat Enterprise Linux Atomic Kubernetes-apiserver Container Image
Red Hat Enterprise Linux Atomic Kubernetes-scheduler Container Image
Atualização do OSTree: para a lista completa dos pacotes atualizados, consulte https://access.redhat.com/articles/2050783.
"docker-1.8.2-8.el7"
Os pacotes docker receberam upgrade para a versão upstream 1.8.2.
Além disto, docker também inclui as seguintes alterações:
  • O `docker` agora exibe uma mensagem de aviso caso você esteja usando o dispositivo de loopback como uma opção de armazenamento backend.
  • O comando docker info agora exibe a versão rpm
do servidor e cliente.
  • A propagação de montagem padrão é Slave em vez de Private. Isto permite que as montagens de volume (associação) sejam alteradas no host e que as novas montagens apareçam dentro do contêiner.
  • As opções --add-registry e --block-registry foram adicionadas. Isto permite que os registros adicionais sejam especificados além do docker.io.
  • É possível agora inspecionar o conteúdo dos repositórios remotos e verificar as versões mais recentes. Esta funcionalidade está implementada no comando atomic verify.
"flannel-0.5.3-8.el7"
  • O prefixo de rede do flannel foi alterado de coreos.com/network para atomic.io/network.
  • O comportamento do flannel foi corrigido quando o primeiro pacote de ping foi perdido.
  • flanneld.service agora é inicializado quando a rede está pronta.
"kubernetes-1.0.3-0.2.gitb9a88a7.el7"
  • "kubectl version" agora exibe a versão correta.
  • Ao executar kube-apiserver na porta 443 no modo de segurança, alguns recursos ficam ausentes. Como uma solução alternativa, o binário kube-apiserver deve ser modificado executando:
# chown root:root /usr/bin/kube-apiserver
# chmod 700 /usr/bin/kube-apiserver
# setcap CAP_NET_BIND_SERVICE=ep /usr/bin/kube-apiserver
"cockpit-0.77-3.1.el7"
  • O Cockpit agora exibe o número limite de hosts com suporte ao adicionar servidores no painel.
  • URLs marcáveis mais limpas/legíveis/claras
  • Inclui funcionalidade básica da autenticação da chave SSH.
  • As interações básicas com armazenamento multipath foram corrigidas.
  • Quando a autorização de senha não é possível, o Cockpit exibe uma mensagem informativa.
  • A autenticação agora funciona ao incorporar o Cockpit.

Ativação do soquete systemd removida

Por motivos de segurança, a ativação do soquete systemd, que possuía suporte nas versões mais antigas do Docker, foi removida. Agora, o uso do grupo docker como um mecanismo para conversar com o daemon docker, como um usuário não privilegiado, não é recomendável. Configure sudo no seu lugar para este tipo de acesso. Se o daemon docker não estiver em execução após o upgrade, crie o arquivo /etc/sysconfig/docker.rpmnew, adicione uma personalização local qualquer a ele e substitua /etc/sysconfig/docker por esta personalização. Além disto, remova a linha -H fd:// de /etc/sysconfig/docker, caso esteja presente.