Имена и идентификаторы объектов
Каждый объект в кластере имеет уникальное имя для конкретного типа ресурса. Кроме этого, у каждого объекта Kubernetes есть собственный уникальный идентификатор (UID) в пределах кластера.
Например, в одном и том же пространстве имён может быть только один Pod-объект с именем myapp-1234
, и при этом существовать объект Deployment с этим же названием myapp-1234
.
Для создания пользовательских неуникальных атрибутов у Kubernetes есть метки и аннотации.
Имена
Клиентская строка, предназначенная для ссылки на объект в URL-адресе ресурса, например /api/v1/pods/some-name
.
Указанное имя может иметь только один объект определённого типа. Но если вы удалите этот объект, вы можете создать новый с таким же именем
Ниже перечислены три типа распространённых требований к именам ресурсов.
Имена поддоменов DNS
Большинству типов ресурсов нужно указать имя, используемое в качестве имени поддомена DNS в соответствии с RFC 1123. Соответственно, имя должно:
- содержать не более 253 символов
- иметь только строчные буквенно-цифровые символы, '-' или '.'
- начинаться с буквенно-цифрового символа
- заканчивается буквенно-цифровым символом
Имена меток DNS
Некоторые типы ресурсов должны соответствовать стандарту меток DNS, который описан в RFC 1123. Таким образом, имя должно:
- содержать не более 63 символов
- содержать только строчные буквенно-цифровые символы или '-'
- начинаться с буквенно-цифрового символа
- заканчивается буквенно-цифровым символом
Имена сегментов пути
Определённые имена типов ресурсов должны быть закодированы для использования в качестве сегмента пути. Проще говоря, имя не может быть "." или "..", а также не может содержать "/" или "%".
Пример файла манифеста пода nginx-demo
.
apiVersion: v1
kind: Pod
metadata:
name: nginx-demo
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
Заметка: У отдельных типов ресурсов есть дополнительные ограничения именования.
Уникальные идентификаторы
Уникальная строка, сгенерированная самим Kubernetes, для идентификации объектов.
У каждого объекта, созданного в течение всего периода работы кластера Kubernetes, есть собственный уникальный идентификатор (UID). Он предназначен для выяснения различий между событиями похожих сущностей.
Уникальные идентификатор (UID) в Kubernetes — это универсальные уникальные идентификаторы (известные также как Universally Unique IDentifier, сокращенно UUID). Эти идентификаторы стандартизированы под названием ISO/IEC 9834-8, а также как ITU-T X.667.
Что дальше
- Узнать подробнее про метки в Kubernetes.
- Посмотреть архитектуру идентификаторов и имён Kubernetes.