Melhores Práticas de Armazenamento
Saiba mais sobre as melhores práticas de armazenamento para clusters que você criou com o Kubernetes Engine (OKE).
Esta seção contém as melhores práticas de armazenamento e do Kubernetes Engine.
Melhores Práticas: Escolha o tipo de armazenamento apropriado
Recomendamos que você considere o tipo de carga de trabalho que um cluster executará antes de escolher um tipo de armazenamento apropriado para essa carga de trabalho.
Se você precisar de um sistema de arquivos de rede de nível empresarial durável, escalável e distribuído, recomendamos que use o serviço Oracle Cloud Infrastructure File Storage.
Se você precisar de armazenamento em blocos persistente, durável e de alto desempenho, recomendamos que use o serviço Oracle Cloud Infrastructure Block Volume.
Melhores Práticas: Criar e usar classes de armazenamento para definir as necessidades do aplicativo
Recomendamos que você defina o tipo necessário de armazenamento usando classes de armazenamento do Kubernetes e, em seguida, faça referência às classes de armazenamento nas especificações de pod e implantação. As definições de classe de armazenamento trabalham juntas para criar o armazenamento apropriado e conectá-lo aos pods.
Consulte Configurando o Armazenamento para Clusters do Kubernetes.
Melhores Práticas: Criar e usar volumes para armazenamento persistente
Recomendamos que você crie e use volumes persistentes (PVs) para armazenar dados fora dos contêineres e evitar perda de dados.
O armazenamento de contêiner por meio do sistema de arquivos raiz de um contêiner é efêmero e pode desaparecer após a exclusão e criação do contêiner. Para fornecer um local durável para impedir a perda de dados, crie e use volumes persistentes para armazenar dados fora de contêineres.
Ao criar um volume persistente, a documentação do Kubernetes recomenda:
- Sempre incluindo reivindicações de volume persistente (PVCs) em configurações de contêiner.
- Sempre definindo uma classe de armazenamento padrão para um cluster; caso contrário, as PVCs que não especificam uma classe específica falharão.
- Sempre dando nomes significativos às classes de armazenamento.
Consulte Configurando o Armazenamento para Clusters do Kubernetes.
Melhores Práticas: Provisione volumes dinamicamente
Recomendamos que você provisione dinamicamente volumes persistentes (PVs) respaldados pelo serviço Block Volume, em vez de criar e designar volumes estaticamente. O provisionamento dinâmico de volumes reduz a sobrecarga de gerenciamento e permite o dimensionamento.
Também recomendamos que você inclua uma política de recuperação apropriada nas definições de classe de armazenamento para minimizar os custos de armazenamento desnecessários quando os pods forem excluídos.
Observe que o provisionamento dinâmico não está disponível para PVs suportados pelo serviço File Storage.
Consulte Criando uma PVC em um Volume em Blocos com o Plug-in de Volume CSI.
Melhores Práticas: Use o plug-in de volume CSI em vez do plug-in de volume FlexVolume
Recomendamos que você use o plug-in de volume CSI para provisionar reivindicações de volume persistentes no serviço Block Volume, em vez do plug-in de volume FlexVolume.
Recomendamos o plug-in de volume CSI porque:
- A nova funcionalidade só está sendo adicionada ao plug-in de volume CSI, não ao FlexVolume (embora os desenvolvedores do Kubernetes continuem a manter o plug-in de volume FlexVolume).
- O plug-in de volume CSI não requer acesso às dependências subjacentes do sistema operacional e do sistema de arquivos raiz.
O StorageClass especificado para uma PVC controla qual plug-in de volume usar para estabelecer conexão com os volumes do serviço Block Volume. Duas classes de armazenamento são definidas por padrão, oci-bv
para o plug-in de volume CSI e oci
para o plug-in FlexVolume. Se você não especificar explicitamente um valor para storageClassName
no arquivo yaml que define a PVC, a classe de armazenamento padrão do cluster será usada.
O Kubernetes Engine define inicialmente a classe de armazenamento padrão de um cluster de acordo com a versão do Kubernetes que foi especificada quando o cluster foi criado. Em clusters criados pelo Kubernetes Engine para executar o Kubernetes versão 1.24 (ou posterior), a classe de armazenamento oci-bv
é inicialmente definida como padrão.
Consulte Criando uma PVC em um Volume em Blocos Usando o Plug-in de Volume CSI (e Altere o StorageClass padrão na documentação do Kubernetes).
Melhores Práticas: Limite o consumo de recursos de armazenamento
Recomendamos que você coloque limites no uso de armazenamento por contêineres para refletir a quantidade de armazenamento realmente disponível no data center local ou o orçamento disponível para recursos de armazenamento do Oracle Cloud.
Você pode limitar o consumo de armazenamento de contêiner usando:
- Cotas de Recursos para limitar a quantidade de recursos (incluindo armazenamento, CPU e memória) que todos os contêineres dentro de um namespace do Kubernetes podem usar.
- StorageClasses para limitar o volume de armazenamento provisionado para contêineres em resposta a uma reivindicação de volume persistente (PVC).
Consulte Configurando o Armazenamento para Clusters do Kubernetes (e Cotas de Recursos na documentação do Kubernetes).
Melhores Práticas: Proteja e faça backup de dados
Recomendamos que você use ferramentas apropriadas para proteger e fazer backup de dados.
-
Melhores Práticas: Use uma ferramenta como o Velero para backups.
Recomendamos que você faça backup de dados usando uma ferramenta como o Velero que seja apropriada para o tipo de armazenamento. Depois de fazer backups, recomendamos que você verifique a integridade e a segurança desses backups.
Consulte Backup do Velero para o Oracle Container Engine for Kubernetes
-
Melhores Práticas: Use uma ferramenta como Longhorn para persistir e replicar dados.
Recomendamos que você persista e replique dados usando uma ferramenta como Longhorn.
Consulte Replicação de arquivos entre regiões com Longhorn na Oracle Cloud e no Kubernetes.
- Melhores Práticas: Use uma ferramenta como o Rackware SWIFT para ativar o backup e a recuperação de desastres.
Recomendamos que você ative o backup e a recuperação de desastres entre clusters do Kubernetes entre regiões usando uma ferramenta como o Rackware SWIFT.
Consulte Proteger suas Cargas de Trabalho do OKE com DR-as-a-Service (DRaaS) para o Oracle Cloud.
Melhores Práticas: Use um sistema de arquivos distribuído para casos de uso do ReadWriteMany
Recomendamos que você use um sistema de arquivos distribuído (como NFS ou o serviço Oracle Cloud Infrastructure File Storage) ao provisionar PVCs para casos de uso ReadWriteMany.
O armazenamento de volume em blocos com recursos de alto desempenho (como o serviço Oracle Cloud Infrastructure Block Volume) é mais apropriado ao provisionar PVCs para casos de uso de leitura e gravação únicos.
Consulte Configurando o Armazenamento para Clusters do Kubernetes.