Skip to content

Volumes

andyceo edited this page Jan 24, 2017 · 1 revision

Тома (Volumes)

Файлы в контейнере на диске недолговечны, что представляет некоторые проблемы для нетривиальных приложений при работе в контейнерах. Во-первых, когда контейнер падает kubelet перезапустит его, но файлы будут потеряны - контейнер запускается с чистым состоянием. Во-вторых, при работе контейнеров вместе в одном Pod часто необходимо обмениваться файлами между этими контейнерами. Абстракция Томов (Volumes) в Kubernetes решает обе эти проблемы.

Знакомство с Pods предполагается.

Исходная информация

Докер также имеет концепцию томов, хотя она несколько слабее и менее управляемой. В Докер, объем просто каталог на диске или в другом контейнере. Времена жизни не удалось, и до недавнего времени не было томов только локальных дисков спинками. Докер теперь предоставляет драйверы томов, но функциональность очень ограничена сейчас (например, как из Докер 1.7 только один драйвер тома допускается за контейнер и не существует никакого способа передать параметры объемов).

Объем Kubernetes, с другой стороны, имеет явный срок службы - такой же, как стручок, покрывающей его. Следовательно, объем переживет любые контейнеры, которые работают в пределах стручка, и данные сохраняются через Container перезагружается. Конечно, когда Pod перестает существовать, объем прекратит свое существование, тоже. Возможно, что еще более важно, чем это, Kubernetes поддерживает много типов томов, и Pod можно использовать любое их количество одновременно.

По своей сути, объем просто каталог, возможно, с некоторыми данными в нем, который доступен для контейнеров в бобе. Как этот каталог приходит быть, среда, которая поддерживает его, и содержание его определяется конкретным типом используемого объема.

Для использования тома, стручок определяет, какие объемы, чтобы обеспечить стручка (поле spec.volumes) и где монтировать те, в контейнеры (поле spec.containers.volumeMounts).

Процесс в контейнере видит вид файловой системы, состоящей из их Алберни образа и объемов. Docker изображение находится в корне иерархии файловой системы, а также любые объемы установлены на указанных путях в пределах изображения. Объемы не может смонтировать на другие тома или иметь жесткие ссылки на другие тома. Каждый контейнер в Pod должен самостоятельно указать, где монтировать каждого тома.

Типы томов

Kubernetes поддерживает нсколько типов томов:

  • emptyDir. Том этого типа создается, когда Pod впервые назначается узлу (Node), и существует до тех пор, пока Pod работает на этом узле. Как следует из названия, она изначально пуста. Контейнеры в стручках все это может читать и писать одни и те же файлы в объеме emptyDir, хотя этот объем может быть установлен на том же или различными путями в каждом контейнере. Когда Pod удаляется из узла по какой-либо причине, данные в emptyDir удаляется навсегда. Примечание: контейнер разваливается НЕ удаляет стручок из узла, таким образом, данные в томе emptyDir безопасно через контейнерных аварий.

    Некоторые варианты использования в emptyDir являются:

    • рабочее пространство, например, для диска на основе сортировки слиянием
    • длинный контрольной точки вычислений для восстановления после аварий
    • хранения файлов, которые извлекает контент-менеджер контейнера в то время как веб-сервер служит контейнером данных

    По умолчанию объемы emptyDir хранятся на любой носитель резервной машины - это может быть диск или SSD или сети хранения данных, в зависимости от среды. Тем не менее, вы можете установить поле emptyDir.medium на "Memory", чтобы сказать Kubernetes смонтировать TMPFS (RAM спинками файловой системы) для вас вместо этого. В то время как TMPFS очень быстро, следует помнить, что в отличие от дисков, TMPFS очищается от перезагрузки машины и любые файлы, которые вы пишете будет рассчитывать на лимит памяти вашего контейнера.

  • hostPath.

  • gcePersistentDisk

  • awsElasticBlockStore

  • nfs

  • iscsi

  • flocker

  • glusterfs

  • rbd

  • cephfs

  • gitRepo

  • secret

  • persistentVolumeClaim

  • downwardAPI

  • azureFileVolume

  • azureDisk

  • vsphereVolume

  • Quobyte

Мы привествуем дополнительный вклад.

Sidebar is under construction

Clone this wiki locally