Nomes de objetos e IDs
Cada objeto em seu cluster possui um Nome que é único para aquele tipo de recurso. Todo objeto do Kubernetes também possui um UID que é único para todo o cluster.
Por exemplo, você pode ter apenas um Pod chamado myapp-1234
dentro de um
namespace, porém
você pode ter um Pod e um Deployment ambos com o nome myapp-1234
.
Para atributos não-únicos definidos pelo usuário, o Kubernetes fornece labels e annotations.
Nomes
Uma string fornecida pelo cliente que referencia um objeto em uma URL de
recurso, como por exemplo /api/v1/pods/qualquer-nome
.
Somente um objeto de um dado tipo pode ter um certo nome por vez. No entanto, se você remover o objeto, você poderá criar um novo objeto com o mesmo nome.
Nota:
Em casos em que objetos representam uma entidade física, como no caso de um Nó representando um host físico, caso o host seja recriado com o mesmo nome mas o objeto Nó não seja recriado, o Kubernetes trata o novo host como o host antigo, o que pode causar inconsistências.Abaixo estão descritos quatro tipos de restrições de nomes comumente utilizadas para recursos.
Nomes de subdomínio DNS
A maior parte dos recursos do Kubernetes requerem um nome que possa ser utilizado como um nome de subdomínio DNS, conforme definido na RFC 1123. Isso significa que o nome deve:
- conter no máximo 253 caracteres
- conter somente caracteres alfanuméricos em caixa baixa, traço ('-') ou ponto ('.').
- iniciar com um caractere alfanumérico
- terminar com um caractere alfanumérico
Nomes de rótulos da RFC 1123
Alguns tipos de recurso requerem que seus nomes sigam o padrão de rótulos DNS definido na RFC 1123. Isso significa que o nome deve:
- conter no máximo 63 caracteres
- conter somente caracteres alfanuméricos em caixa baixa ou traço ('-')
- iniciar com um caractere alfanumérico
- terminar com um caractere alfanumérico
Nomes de rótulo da RFC 1035
Alguns tipos de recurso requerem que seus nomes sigam o padrão de rótulos DNS definido na RFC 1035. Isso significa que o nome deve:
- conter no máximo 63 caracteres
- conter somente caracteres alfanuméricos em caixa baixa ou traço ('-')
- iniciar com um caractere alfanumérico
- terminar com um caractere alfanumérico
Nomes de segmentos de caminhos
Alguns tipos de recurso requerem que seus nomes possam ser seguramente codificados como um segmento de caminho, ou seja, o nome não pode ser "." ou ".." e não pode conter "/" ou "%".
Exemplo de um manifesto para um Pod chamado nginx-demo
.
apiVersion: v1
kind: Pod
metadata:
name: nginx-demo
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80
Nota:
Alguns tipos de recursos possuem restrições adicionais em seus nomes.UIDs
Uma string gerada pelos sistemas do Kubernetes para identificar objetos de forma única.
Cada objeto criado durante todo o ciclo de vida do cluster do Kubernetes possui um UID distinto. O objetivo deste identificador é distinguir ocorrências históricas de entidades semelhantes.
UIDs no Kubernetes são identificadores únicos universais (também conhecidos como UUIDs). UUIDs seguem os padrões ISO/IEC 9834-8 e ITU-T X.667.
Próximos passos
- Leia sobre labels no Kubernetes.
- Consulte o documento de design Identifiers and Names in Kubernetes.