Kubernetes - namespace

O namespace fornece uma qualificação adicional para um nome de recurso. Isso é útil quando várias equipes estão usando o mesmo cluster e há um potencial de colisão de nomes. Pode ser uma parede virtual entre vários clusters.

Funcionalidade do namespace

A seguir estão algumas das funcionalidades importantes de um namespace no Kubernetes -

  • Os namespaces ajudam na comunicação pod a pod usando o mesmo namespace.

  • Os namespaces são clusters virtuais que podem ficar no topo do mesmo cluster físico.

  • Eles fornecem separação lógica entre as equipes e seus ambientes.

Crie um namespace

O seguinte comando é usado para criar um namespace.

apiVersion: v1
kind: Namespce
metadata
   name: elk

Controle o namespace

O comando a seguir é usado para controlar o namespace.

$ kubectl create –f namespace.yml ---------> 1
$ kubectl get namespace -----------------> 2
$ kubectl get namespace <Namespace name> ------->3
$ kubectl describe namespace <Namespace name> ---->4
$ kubectl delete namespace <Namespace name>

No código acima,

  • Estamos usando o comando para criar um namespace.
  • Isso listará todos os namespaces disponíveis.
  • Isso obterá um namespace específico cujo nome é especificado no comando.
  • Isso descreverá os detalhes completos sobre o serviço.
  • Isso excluirá um determinado namespace presente no cluster.

Usando o namespace no serviço - exemplo

A seguir está um exemplo de um arquivo de amostra para usar o namespace no serviço.

apiVersion: v1
kind: Service
metadata:
   name: elasticsearch
   namespace: elk
   labels:
      component: elasticsearch
spec:
   type: LoadBalancer
   selector:
      component: elasticsearch
   ports:
   - name: http
      port: 9200
      protocol: TCP
   - name: transport
      port: 9300
      protocol: TCP

No código acima, estamos usando o mesmo namespace nos metadados de serviço com o nome de elk.