Clusters virtuais são clusters Kubernetes totalmente funcionais aninhados dentro de um cluster de host físico, proporcionando melhor isolamento e flexibilidade para oferecer suporte a multilocação. Várias equipes podem operar de forma independente na mesma infraestrutura física, minimizando conflitos, maximizando a autonomia e reduzindo custos.
Os clusters virtuais são executados dentro de namespaces de cluster de host, mas funcionam como clusters Kubernetes separados, com seu próprio servidor API, plano de controle, sincronizador e conjunto de recursos. Embora os clusters virtuais compartilhem os recursos físicos do cluster host (como CPU, memória e armazenamento), eles gerenciam seus recursos de forma independente, permitindo utilização e dimensionamento eficientes.
Os clusters virtuais interagem com o cluster anfitrião para agendamento de recursos e rede, mas mantêm um nível de abstração para garantir que as operações dentro de um cluster virtual não afetam diretamente o estado global do cluster anfitrião.
⭐️ Você gosta de vcluster? Apoie o projeto com uma estrela ⭐️
Clusters virtuais oferecem imensos benefícios para implantações de Kubernetes em grande escala e multilocação.
Permissões granulares: os usuários do vCluster operam com permissões minimizadas no cluster host, reduzindo significativamente o risco de uso indevido de acesso privilegiado. Dentro do vCluster, os usuários têm controle em nível de administrador, permitindo-lhes gerenciar CRDs, RBAC e outras políticas de segurança de forma independente.
Plano de controle isolado: cada vCluster vem com seu próprio servidor API dedicado e plano de controle, criando um forte limite de isolamento.
Políticas de segurança personalizáveis: os locatários podem implementar governança adicional específica do vCluster, incluindo políticas OPA, políticas de rede, cotas de recursos, intervalos de limites e controle de admissão, além das políticas e medidas de segurança existentes no cluster de host físico subjacente.
Proteção de dados aprimorada: com opções de armazenamentos de apoio separados, incluindo SQLite incorporado, etcd ou bancos de dados externos, os clusters virtuais permitem o gerenciamento de dados isolado, reduzindo o risco de vazamento de dados entre locatários.
Acesso total de administrador por locatário: os locatários podem implantar CRDs livremente, criar namespaces, taint e rotular nós e gerenciar recursos com escopo de cluster normalmente restritos em namespaces padrão do Kubernetes.
Rede isolada, porém integrada: ao mesmo tempo em que garante o isolamento automático (por exemplo, pods em diferentes clusters virtuais não podem se comunicar por padrão), o vCluster permite políticas de rede configuráveis e compartilhamento de serviços, oferecendo suporte à separação e ao compartilhamento conforme necessário.
Gerenciamento de nós: atribua nós estáticos a clusters virtuais específicos ou compartilhe pools de nós entre vários clusters virtuais, proporcionando flexibilidade na alocação de recursos.
Infraestrutura leve: os clusters virtuais são significativamente mais leves que os clusters físicos, capazes de funcionar em segundos, o que contrasta fortemente com os longos tempos de provisionamento frequentemente vistos em ambientes como o EKS (cerca de 45 minutos).
Eficiência de Recursos: Ao compartilhar os recursos do cluster host subjacente, os clusters virtuais minimizam a necessidade de infraestrutura física adicional, reduzindo custos e impacto ambiental.
Gerenciamento simplificado: o plano de controle do vCluster, executado em um único pod, junto com o CoreDNS integrado opcional, minimiza a sobrecarga operacional, tornando os clusters virtuais especialmente adequados para implantações em grande escala e cenários de multilocação.
Diversos ambientes Kubernetes: o vCluster oferece suporte a diferentes versões e distribuições do Kubernetes (incluindo K8s, K3s e K0s), permitindo distorções de versão. Isto torna possível adaptar cada cluster virtual a requisitos específicos sem impactar outros.
Armazenamentos de apoio adaptáveis: escolha entre uma variedade de armazenamentos de dados, desde opções leves (SQLite) até opções de nível empresarial (etcd incorporado, armazenamentos de dados externos como Global RDS), atendendo a diversas necessidades de escalabilidade e durabilidade.
Funciona em qualquer lugar: clusters virtuais podem ser executados em EKS, GKE, AKS, OpenShift, RKE, K3s, nuvem, borda e no local. Contanto que seja um cluster K8s, você pode executar um cluster virtual sobre ele.
Carga reduzida do servidor API: Clusters virtuais, cada um com seu próprio servidor API dedicado, reduzem significativamente a carga operacional no servidor API Kubernetes do cluster host, isolando e manipulando solicitações internamente.
Gerenciamento de CRD sem conflitos: O gerenciamento independente de CRDs em cada cluster virtual elimina o potencial de conflitos de CRD e discrepâncias de versão, garantindo operações mais tranquilas e escalonamento mais fácil à medida que a base de usuários se expande.
Capacite os desenvolvedores com Kubernetes de autoatendimento: simplifique o acesso ao Kubernetes para desenvolvedores por meio de clusters virtuais de autoatendimento, reduzindo erros humanos e aumentando a autonomia do desenvolvedor sem comprometer os requisitos de segurança e conformidade.
Acelere CI/CD com clusters Kubernetes efêmeros: crie instantaneamente novos clusters Kubernetes virtuais limpos para cada solicitação pull, permitindo testes rápidos e isolados e visualizações de PR sem tempos de espera e as dificuldades de um ambiente de teste compartilhado.
Eleve sua oferta de ISV com um cluster dedicado por cliente: hospede cada cliente em um cluster virtual com isolamento rigoroso de locatários e escalabilidade contínua, enquanto consolida ferramentas essenciais em uma pilha de plataforma unificada que atende a vários locatários.
Crie um serviço Kubernetes gerenciado com o melhor CPV da categoria e margens altas: permita o acesso direto do cliente a clusters Kubernetes virtuais dedicados, simplificando a alocação de nós e recursos para obter eficiência líder do setor e escalabilidade incomparável.
Consulte nosso guia de início rápido para implantar seu primeiro vCluster!
Obrigado pelo seu interesse em contribuir! Consulte CONTRIBUTING.md para orientação.
Licenciado sob a Licença Apache, Versão 2.0 (a "Licença"); você não pode usar este arquivo exceto em conformidade com a Licença. Você pode obter uma cópia da Licença em
http://www.apache.org/licenses/LICENSE-2.0
A menos que exigido pela lei aplicável ou acordado por escrito, o software distribuído sob a Licença é distribuído "COMO ESTÁ", SEM GARANTIAS OU CONDIÇÕES DE QUALQUER TIPO, expressas ou implícitas. Consulte a Licença para saber o idioma específico que rege as permissões e limitações da Licença.