|
Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official. |
Projetos e namespaces do Kubernetes com SUSE Rancher Prime
Um namespace é um conceito do Kubernetes que permite um cluster virtual dentro de um cluster, o que é útil para dividir o cluster em "clusters virtuais" separados, cada um com seu próprio controle de acesso e cotas de recursos.
Um projeto é um grupo de namespaces, e é um conceito introduzido pelo Rancher. Os projetos permitem que você gerencie múltiplos namespaces como um grupo e realize operações do Kubernetes neles. Você pode usar projetos para suportar multi-tenancy, de modo que uma equipe possa acessar um projeto dentro de um cluster sem ter acesso a outros projetos no mesmo cluster.
|
Os projetos são menos enfatizados na interface do usuário porque não é necessário criar recursos do Kubernetes dentro do escopo de um projeto. No entanto, recursos como Segredos ainda podem ser criados no escopo de um projeto. |
Esta seção descreve como projetos e namespaces funcionam com o Rancher.
Sobre Namespaces
Um namespace é um conceito introduzido pelo Kubernetes. De acordo com a documentação oficial do Kubernetes sobre namespaces,
|
O Kubernetes suporta múltiplos clusters virtuais respaldados pelo mesmo cluster físico. Esses clusters virtuais são chamados de namespaces. […] Os namespaces são destinados ao uso em ambientes com muitos usuários espalhados por várias equipes ou projetos. Para clusters com poucos a dezenas de usuários, você não deve precisar criar ou pensar em namespaces. |
Os namespaces fornecem a seguinte funcionalidade:
-
Fornecendo um escopo para nomes: Os nomes dos recursos precisam ser únicos dentro de um namespace, mas não entre namespaces. Os namespaces não podem ser aninhados um dentro do outro e cada recurso do Kubernetes pode estar em apenas um namespace.
-
Cotas de recursos: Os namespaces fornecem uma maneira de dividir os recursos do cluster entre vários usuários.
Você pode atribuir recursos no nível do projeto para que cada namespace no projeto possa usá-los. Você também pode contornar essa herança atribuindo recursos explicitamente a um namespace.
Você pode atribuir os seguintes recursos diretamente aos namespaces:
Para gerenciar permissões em um cluster Kubernetes padrão, os administradores do cluster configuram políticas de acesso baseadas em função para cada namespace. Com o Rancher, as permissões dos usuários são atribuídas no nível do projeto, e as permissões são automaticamente herdadas por qualquer namespace pertencente ao projeto específico.
Para mais informações sobre como criar e mover namespaces, veja Namespaces.
Questões de controle de acesso com base em função com namespaces e kubectl
Como os projetos são um conceito introduzido pelo Rancher, o kubectl não tem a capacidade de restringir a criação de namespaces a um projeto ao qual o criador tem acesso.
Isso significa que, quando usuários padrão com permissões limitadas a projetos criam um namespace com kubectl, ele pode ser inutilizável porque kubectl não exige que o novo namespace esteja restrito a um determinado projeto.
Se suas permissões estão restritas ao nível do projeto, é melhor criar um namespace através do Rancher para garantir que você terá permissão para acessar o namespace.
Se um usuário padrão for proprietário de um projeto, o usuário poderá criar namespaces dentro desse projeto. A interface do Rancher impedirá que esse usuário crie namespaces fora do escopo dos projetos aos quais ele tem acesso.
Sobre Projetos
Em termos de hierarquia:
-
Clusters contêm projetos
-
Projetos contêm namespaces
Você pode usar projetos para suportar multi-tenancy, de modo que uma equipe possa acessar um projeto dentro de um cluster sem ter acesso a outros projetos no mesmo cluster.
Na versão base do Kubernetes, recursos como direitos de acesso baseados em função ou recursos de cluster são atribuídos a namespaces individuais. Um projeto permite que você economize tempo ao dar a um indivíduo ou a uma equipe acesso a múltiplos namespaces simultaneamente.
Você pode usar projetos para realizar ações como:
-
Atribuir usuários a um grupo de namespaces (ou seja, membros do projeto).
-
Atribuir usuários a funções específicas em um projeto. Uma função pode ser proprietário, membro, somente leitura ou personalizada.
-
Atribuir recursos ao projeto.
Quando você cria um cluster, dois projetos são automaticamente criados dentro dele:
O Projeto Padrão do Cluster
Quando você provisiona um cluster com o Rancher, ele cria automaticamente um default projeto para o cluster. Este é um projeto que você pode usar para começar com seu cluster, mas você sempre pode excluí-lo e substituí-lo por projetos que tenham nomes mais descritivos.
Se você não precisa de mais do que o namespace padrão, também não precisa de mais do que o projeto Projeto Padrão no Rancher.
Se você precisar de outro nível de organização além do projeto Projeto Padrão, pode criar mais projetos no Rancher para isolar namespaces, aplicações e recursos.
O Projeto do Sistema
Ao solucionar problemas, você pode visualizar o projeto system para verificar se namespaces importantes no sistema Kubernetes estão funcionando corretamente. Este projeto de fácil acesso evita que você tenha que solucionar problemas de contêineres de namespaces do sistema individualmente.
Para abri-lo, acesse a visualização do cluster e clique em . Esta visualização mostra todos os namespaces no projeto system.
O projeto system:
-
É criado automaticamente quando você provisiona um cluster.
-
Lista todos os namespaces que existem em
v3/settings/system-namespaces, se existirem. -
Permite que você adicione mais namespaces ou mova seus namespaces para outros projetos.
-
Não pode ser excluído porque é necessário para as operações do cluster.
|
Em clusters RKE2/K3s onde a opção de isolamento de rede do projeto está habilitada, o projeto |
Autorização do Projeto
Usuários padrão estão autorizados apenas para acesso ao projeto em duas situações:
-
Um administrador, proprietário do cluster ou membro do cluster adiciona explicitamente o usuário padrão na aba Membros do projeto.
-
Usuários padrão podem acessar projetos que criam por conta própria.
Criando Projetos
Esta seção descreve como criar um novo projeto com um nome e com política de segurança de pod opcional, membros e cotas de recursos.
Nomeie um Novo Projeto
-
No canto superior esquerdo, clique em ☰ > Gerenciamento de Cluster.
-
Na página Clusters, vá para o cluster no qual você deseja criar um projeto e clique em Explorar.
-
Clique em .
-
Clique em Criar Projeto.
-
Digite um Nome do Projeto.
Recomendado: Adicione Membros ao Projeto
Use a seção Membros para fornecer acesso e funções de projeto a outros usuários.
Por padrão, seu usuário é adicionado como o Owner do projeto.
|
Notas sobre Permissões:
|
Para adicionar membros:
-
Na aba Membros, clique em Adicionar.
-
No campo Selecionar Membro, pesquise por um usuário ou grupo que você deseja atribuir acesso ao projeto. Você só pode pesquisar grupos se a autenticação externa estiver habilitada.
Notes-
Pelo menos 2 caracteres devem ser digitados na caixa de pesquisa para que os resultados apareçam.
-
Os usuários podem ser pesquisados com base em seu nome de usuário ou nome exibido.
-
A pesquisa é baseada em prefixo (por exemplo, um usuário chamado
Stan Dardaparecerá ao pesquisar porSta, mas não ao pesquisar porDar) e é sensível a maiúsculas e minúsculas.
-
-
Na seção Permissões do Projeto, escolha uma função. Para mais informações, consulte a documentação sobre funções de projeto.
Opcional: Adicionar Cotas de Recursos
As cotas de recursos limitam os recursos que um projeto (e seus namespaces) podem consumir. Para mais informações, veja Cotas de Recursos.
Para adicionar uma cota de recurso,
-
Na aba Cotas de Recursos, clique em Adicionar Recurso.
-
Selecione um Tipo de Recurso. Para mais informações, veja Cotas de Recursos..
-
Insira valores para o Limite do Projeto e o Limite Padrão do Namespace.
-
Opcional: Especifique Limite Padrão de Recursos do Contêiner, que será aplicado a cada contêiner iniciado no projeto. O parâmetro é recomendado se você tiver limites de CPU ou Memória definidos pela Cota de Recursos. Ele pode ser substituído em um nível de namespace individual ou de contêiner. Para mais informações, veja Limite Padrão de Recursos do Contêiner
-
Clique em Criar.
Resultado: Seu projeto foi criado. Você pode visualizá-lo a partir da visualização de Projetos/Namespaces do cluster.
| Campo | Descrição |
|---|---|
Limite do Projeto |
O limite geral de recursos para o projeto. |
Limite Padrão do Namespace |
O limite padrão de recursos disponível para cada namespace. Esse limite é propagado para cada namespace no projeto quando criado. O limite combinado de todos os namespaces do projeto não deve exceder o limite do projeto. |
Excluindo Projetos
-
No canto superior esquerdo, clique em ☰ > Gerenciamento de Cluster.
-
Na página Clusters, vá para o cluster ao qual o projeto está vinculado e clique em Explorar.
-
Clique em .
-
Encontre o projeto que você deseja excluir e clique em ⋮.
-
Selecione Excluir.
Quando você exclui um projeto, quaisquer namespaces que estavam anteriormente associados ao projeto permanecerão no cluster. Você pode encontrar esses namespaces na interface do Rancher, na aba Não em um Projeto da página Projetos/Namespaces. Você pode reatribuir esses namespaces a um projeto, movendo‑os.
Leitura recomendada
Você pode criar projetos e membros do projeto de forma mais programática através da API Pública. Veja o documento de fluxo de trabalho do projeto para mais informações.