Como faço para mudar o espaço para nome padrão em Kubectl?

Como faço para mudar o espaço para nome padrão em Kubectl?

Você aprenderá como alterar um espaço para nome padrão em Kubectl neste post. Todos os recursos de Kubernetes são organizados em namespaces, e os namespaces permitem separar preocupações de recursos compartilhados por diferentes projetos. Se o espaço para nome não for especificado, todos os recursos serão produzidos no espaço de nome padrão, e isso se aplica a todas as instruções direcionadas ao seu cluster. Se o argumento -n não for usado para um espaço para nome em um comando kubectl, os Kubernetes fornecerão a saída de recursos no espaço de nome padrão.

Os namespaces são um recurso Kubernetes que permite dividir grupos de recursos em um cluster. Dentro de um espaço para nome, os nomes de recursos devem ser únicos, mas não entre os namespaces. O scoping baseado em namespace é aplicável apenas a itens nomes (como implantações e serviços), não a objetos em todo o cluster (e.g., StorageClass, nós, vôos persistentes, etc.).

O espaço para nome "padrão"

Fora da caixa, a maioria dos lançamentos do Kubernetes inclui um espaço para nome chamado "padrão" no cluster. Existem três espaços para nomes em Kubernetes: Padrão, Kube-System e Kube-Public. O Kube-Public não é usado com muita frequência agora, e o sistema Kube geralmente é ignorado, especialmente em um sistema regulamentado como o Google Kubernetes Engine (GKE). Como resultado, o espaço para nome padrão será usado para criar seus serviços e aplicativos. Não há nada notável nesse espaço de nome além de que as ferramentas de Kubernetes sejam configuradas para usá -lo fora da caixa e que você não pode excluí -lo. É excelente para começar e para sistemas de produção menores, mas não é adequado para os maiores. Isso se deve ao fato de ser muito fácil para uma equipe substituir inadvertidamente ou atrapalhar outro serviço sem reconhecê -lo. Em vez disso, divida seus serviços em bits digestíveis, criando vários namespaces.

Antes de prosseguir:

Para começar, inicie o cluster Minikube, que já está instalado no seu Ubuntu 20.04 LTS Operating System. Para executar o Minikube, digite o comando anexado na linha de comando:

$ minikube Iniciar

Ver namespaces

Você pode obter uma lista de todos os espaços para nome em um cluster digitando o seguinte comando.

Se um item não tiver outro espaço para nome, este é o espaço de nome padrão. O espaço para nome do sistema Kube inclui objetos projetados especificamente pelo sistema Kubernetes. Por outro lado, o namespace Kube-Public existe automaticamente e está disponível para todos os tipos de usuários. Este espaço para nome é para uso em cluster se alguns recursos precisam estar disponíveis ao público e legíveis em todo o cluster inteiro. O aspecto público deste namespace é apenas uma recomendação, não um mandato. Os objetos de arrendamento conectados a cada nó são armazenados no espaço para nome de nó Kube-nó. O Kubelet pode transmitir batimentos cardíacos para o plano de controle por meio de arrendamentos de nó, permitindo que o plano de controle detecte a falha do nó.

Definindo o espaço para nome de um pedido

Lembre -se de que o parâmetro -NamesPace é usado especificamente para definir o espaço para nome para uma solicitação atual.

Usando o comando abaixo, você pode obter uma lista de todas as vagens de um determinado namespace.

Escolhendo um espaço para nome preferido

Para outros comandos Kubectl nesse contexto, você pode salvar o espaço para nome permanentemente.

Este comando exibirá o espaço para nome que está sendo utilizado atualmente.

Nem todo objeto tem um espaço para nome

Pods, serviços, controladores de replicação e outros recursos de Kubernetes são todos organizados em namespaces. Os recursos de namespace, por outro lado, não estão contidos em um espaço para nome. Nós e volumes persistentes são recursos de baixo nível que não estão em nenhum espaço de nome. Para ver quais recursos Kubernetes são usados ​​em um espaço para nome, consulte o comando abaixo:

Utilize o seguinte comando para ver quais recursos Kubernetes não são usados ​​em um espaço para nome:

Namespaces de DNS

Uma entrada DNS é criada para um serviço quando é criado. O formato desta entrada é . Se um contêiner usar apenas o nome de serviço>, ele resolverá um serviço de namespace-local, de acordo com o SVC.conjunto.local. Se você deseja usar a mesma configuração em vários namespaces, como estadiamento, desenvolvimento e produção, isso seria crítico. Você deve usar o nome de domínio totalmente qualificado se quiser alcançar os namespaces.

Quando você deve usar vários namespaces?

Os namespaces são projetados para situações com um grande número de usuários espalhados por várias equipes ou projetos. Você não precisa construir ou pensar em namespaces para clusters com alguns a dezenas de usuários. Quando você precisar das funcionalidades que os namespaces dão, comece a usá -los.

Namespaces fornecem nomes para um lugar para ir. Dentro de um espaço para nome, os nomes de recursos devem ser únicos, mas não entre os namespaces. Os namespaces são um meio para numerosos usuários compartilharem recursos de cluster e separam os recursos que mantêm o mesmo espaço para nome.

Conclusão

Você aprendeu a mudar o espaço de nome de Kubernetes padrão usando a linha de comando Kubectl nesta postagem. O espaço para nome padrão é atribuído ao espaço de nome padrão quando você cria um AKS ou cluster local de Kubernetes. Se todas as suas cargas de trabalho não estiverem no espaço de nome padrão, isso pode ser um aborrecimento.