Базовая структура конфигурационного файла Kubernetes.

Приложения Kubernetes можно конфигурировать декларативно с помощью файлов YAML. Эти файлы позволяют нам легко управлять приложениями Kubernetes. Все файлы в Kubernetes часто пишутся на декларативных языках, таких как JSON или YAML. Независимо от того, какой синтаксис вы выберете, API преобразует предоставленный вами файл в конце в формат JSON, однако обычно вы найдете файлы, написанные на YAML, поскольку он прост для чтения и написания.

Файлы Kubernetes YAML включают такие структуры данных: пары ключ-значение, списки, карты, список карт и карта списков.

Четыре поля, которые обязательно должны присутствовать, это apiVersion, kind, metadata и spec (спецификация). Давайте рассмотрим и поймем каждый из них.

apiVersion:

Из этого поля понятно, что оно связано с API, и это действительно так. Это API, используемый для создания объекта Kubernetes. Значение apiVersion обычно равно v1, которое содержит многие основные объекты. Оно также может быть app/v1, которое содержит объекты с некоторыми другими функциональными возможностями. Рассмотрим пример со значением v1.

apiVersion: v1
Вход в полноэкранный режим Выйти из полноэкранного режима

ПРИМЕЧАНИЕ: Чтобы синтаксис в YAML-файле был правильным, после двоеточия должен быть добавлен пробел.

kind:

Здесь мы определяем тип объекта, который хотим создать. Объекты, которые мы указываем здесь, связаны с apiVersion, которую мы указали выше, и эта apiVersion дает нам доступ к использованию различных объектов. Типы объектов могут быть Pod, Deployment, Service, Job или DemonSets.

kind: Pod
Вход в полноэкранный режим Выход из полноэкранного режима

метаданные:

Метаданные объекта, который мы указали, предоставляют уникальные свойства этого объекта. Они могут содержать поля name, namespace и label. Таким образом, через них мы получаем информацию об объекте. Вот пример.

metadata:
  name: nginx
Вход в полноэкранный режим Выход из полноэкранного режима

спецификация:

Поскольку мы создаем объект, мы ожидаем, что объект будет что-то делать, поэтому здесь мы определяем работу объекта. Спецификация объекта также зависит от apiVersion, указанной выше. Сюда входят контейнеры, требования к памяти, объемы хранения, сеть или другие детали, о которых Kubernetes необходимо знать. Здесь мы также можем указать более сложные свойства и дать более глубокую информацию.

spec:
  containers:
  - name: nginx
    image: nginx:1.14.2
    ports:
    - containerPort: 80
Войти в полноэкранный режим Выход из полноэкранного режима

ПРИМЕЧАНИЕ: Чтобы обеспечить распознавание списков и карт, убедитесь в правильности отступов.

Пример полного и простого YAML-файла kubernetes.

apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  containers:
  - name: nginx
    image: nginx:1.14.2
    ports:
    - containerPort: 80
Вход в полноэкранный режим Выход из полноэкранного режима

Спасибо, что прочитали 🙂

Счастливого обучения!

Оцените статью
devanswers.ru
Добавить комментарий