O Container-Optimized OS do Google é uma imagem de sistema operacional para suas VMs do Compute Engine otimizada para executar contêineres. O Container-Optimized OS é mantido pelo Google e é baseado no projeto de código aberto Chromium OS. Com o Container-Optimized OS, você abre seus contêineres no Google Cloud Platform de forma rápida, eficiente e segura.
Recursos e benefícios
O Container-Optimized OS oferece os seguintes benefícios:
- Executar contêineres prontos para uso: as instâncias do Container-Optimized OS vêm pré-instaladas com os ambientes de execução do Docker e do containerd e o
cloud-init
. Com uma instância do Container-Optimized OS, você abre seu contêiner ao mesmo tempo que cria sua VM, sem a necessidade de configuração no host. - Menor superfície de ataque: o Container-Optimized OS tem uma projeção menor, o que reduz a superfície de ataque em potencial da sua instância.
- Bloqueado por padrão: as instâncias do Container-Optimized OS incluem um firewall bloqueado e outras configurações de segurança por padrão.
- Atualizações automáticas: as instâncias do Container-Optimized OS são configuradas para fazer o download de atualizações semanais automaticamente em segundo plano. Para usar as versões mais recentes, só é preciso reinicializar a instância.
Limitações
O Container-Optimized OS é compatível de maneira limitada ou não é compatível com alguns dos recursos padrão de outros sistemas operacionais que você conhece:
- O Container-Optimized OS não inclui um gerenciador de pacotes. Por isso, não é possível instalar pacotes de software diretamente em uma instância. No entanto, você pode usar a caixa de ferramentas CoreOS para instalar e executar ferramentas de depuração e administração em um contêiner isolado.
- O Container-Optimized OS não é compatível com aplicativos que não estejam em contêiner.
- O kernel do Container-Optimized OS é bloqueado, e você não poderá instalar módulos ou drivers de kernel de terceiros.
- O Container-Optimized OS não é compatível com ambientes fora do Google Cloud Platform.
Como usar o Container-Optimized OS
O Container-Optimized OS é a imagem do SO de nó padrão no Kubernetes Engine e outras implantações do Kubernetes no Google Cloud Platform. Consulte o Guia de início rápido do Kubernetes Engine para mais informações sobre o uso do Container-Optimized OS com o Kubernetes Engine.
Também é possível usar o Container-Optimized OS para abrir rapidamente um contêiner em uma instância do Compute Engine com uma configuração mínima. Para mais informações, consulte Como criar e configurar instâncias.
É possível executar ferramentas como ping
, Google Cloud CLI, pstree
, htop
, emacs
e muito mais com o utilitário caixa de ferramentas CoreOS, que está pré-instalado no Container-Optimized OS em /usr/bin/toolbox
. Consulte Como depurar com a caixa de ferramentas para
mais informações.
Casos de uso para o Container-Optimized OS
O Container-Optimized OS pode ser usado para executar a maioria dos contêineres. Você deve considerar o uso do Container-Optimized OS como sistema operacional da sua instância do Compute Engine caso precise de:
- Você precisa de suporte para contêineres ou Kubernetes com configuração mínima.
- Sistema operacional com projeção pequena e com segurança reforçada para contêineres.
- Sistema operacional testado e aprovado para a execução do Kubernetes nas suas instâncias do Compute Engine.
O Container-Optimized OS pode não ser a escolha ideal para você nos seguintes casos:
- Seu aplicativo não está em um contêiner ou está em contêiner dependente de módulos do kernel, drivers e outros pacotes adicionais que não estão disponíveis no Container-Optimized OS.
- Você precisa de suporte ao cliente profissional de um provedor do Linux (Canonical, Core OS, RedHat, SUSE etc.).
- Você quer que a imagem e o aplicativo do SO sejam totalmente compatíveis fora do Google Cloud.
Consulte Contêineres no Google Cloud para saber mais sobre outros sistemas operacionais que você pode usar para executar aplicativos conteinerizados no Google Cloud. O Compute Engine fornece imagens para outros sistemas operacionais conhecidos, inclusive imagens otimizadas para contêineres.