Sonraí a stóráil i mbraisle Kubernetes

Настроить хранение данных приложений, запущенных в кластере Kubernetes, можно несколькими способами. Одни из них уже устарели, другие появились совсем недавно. В этой статье рассмотрим концепцию трёх вариантов подключения СХД, в том числе самый последний — подключение через Container Storage Interface.

Sonraí a stóráil i mbraisle Kubernetes

Modh 1: Sonraigh PV sa léiriú pod

Léiriú tipiciúil a dhéanann cur síos ar pod i mbraisle Kubernetes:

Sonraí a stóráil i mbraisle Kubernetes

Цветом выделены части манифеста, где описано, какой том подключается и куда.

In alt toirtMounts указывают точки монтирования (mountPath) — в какой каталог внутри контейнера будет монтироваться постоянный том, а также имя тома.

In alt x перечисляют все тома, которые используются в поде. Указывают имя каждого тома, а также тип (в нашем случае: awsElasticBlockStore) и параметры подключения. Какие именно параметры перечисляются в манифесте, зависит от типа тома.

Один и тот же том может быть смонтирован одновременно в несколько контейнеров пода. Таким образом разные процессы приложения могут иметь доступ к одним и тем же данным.

Этот способ подключения придумали в самом начале, когда Kubernetes только зарождался, и на сегодня способ устарел.

Tá roinnt fadhbanna ann agus é á úsáid:

  1. все тома надо создавать вручную, Kubernetes не сможет создать ничего за нас;
  2. параметры доступа к каждому из томов уникальные, и их надо указывать в манифестах всех подов, которые используют том;
  3. чтобы поменять систему хранения (например, переехать из AWS в Google Cloud), надо менять настройки и тип подключённых томов во всех манифестах.

Всё это очень неудобно, поэтому в реальности подобным способом пользуются для подключения только некоторых специальных типов томов: configMap, secret, emptyDir, hostPath:

  • configMap и secret — служебные тома, позволяют создать в контейнере том с файлами из манифестов Kubernetes.

  • emptyDir — временный том, создаётся только на время жизни пода. Удобно использовать для тестирования или хранения временных данных. Когда pod удаляется, том типа emptyDir тоже удаляется и все данные пропадают.

  • hostPath - is féidir leat aon eolaire a shuiteáil ar dhiosca áitiúil an fhreastalaí ar a bhfuil an feidhmchlár ag rith laistigh den choimeádán leis an bhfeidhmchlár, lena n-áirítear /etc/kubernetes. Is gné neamhshábháilte í seo, mar sin de ghnáth cuireann beartais slándála cosc ​​ar úsáid toirteanna den chineál seo. Seachas sin, beidh feidhmchlár ionsaitheoir in ann eolaire HTC Kubernetes a shuiteáil taobh istigh dá choimeádán agus na deimhnithe braisle go léir a ghoid. De ghnáth, ní cheadaítear toirteanna hostPath a úsáid ach amháin ag feidhmchláir chórais a ritheann san ainmspás kube-system.

Córais stórála a oibríonn Kubernetes leo lasmuigh den bhosca tugtha sa doiciméadú.

Modh 2. Ceangal le teallaigh SC/PVC/PV

Альтернативный способ подключения — концепция Storage class, PersistentVolumeClaim, PersistentVolume.

Rang stórála stórálann sé paraiméadair nasc leis an gcóras stórála sonraí.

PersistentVolumeClaim cur síos ar na ceanglais maidir lena bhfuil de dhíth ar an iarratas.
Imleabhar Seasmhach paraiméadair rochtana stórais agus stádas toirte.

Суть идеи: в манифесте пода указывают volume типа PersistentVolumeClaim и указывают название этой сущности в параметре claimName.

Sonraí a stóráil i mbraisle Kubernetes

В манифесте PersistentVolumeClaim описывают требования к тому данных, который необходим приложению. В том числе:

  • méid diosca;
  • modh rochtana: ReadWriteOnce nó ReadWriteMany;
  • ссылка на Storage class — в какой системе хранения данных мы хотим создавать том.

В манифесте Storage class хранятся тип и параметры подключения к системе хранения данных. Они нужны кублету, чтобы смонтировать том к себе на узел.

В манифестах PersistentVolume указывается Storage class и параметры доступа к конкретному тому (ID тома, путь, и т. д.).

Создавая PVC, Kubernetes смотрит, том какого размера и из какого Storage class потребуется, и подбирает свободный PersistentVolume.

Если таких PV нет в наличии, Kubernetes может запустить специальную программу — Provisioner (её название указывают в Storage class). Эта программа подключается к СХД, создаёт том нужного размера, получает идентификатор и создает в кластере Kubernetes манифест PersistentVolume, который связывается с PersistentVolumeClaim.

Всё это множество абстракций позволяет убрать информацию о том, с какой СХД работает приложение, с уровня манифеста приложений на уровень администрирования.

Tá na paraiméadair go léir le haghaidh nascadh leis an gcóras stórála sonraí suite sa rang Stórála, a bhfuil riarthóirí braisle freagrach as. Níl le déanamh ach nuair a bhogann tú ó AWS go Google Cloud ná ainm an ranga Stórála a athrú go PVC i bhforléirithe an fheidhmchláir. Cruthófar Méid Marthanachta do stóráil sonraí sa bhraisle go huathoibríoch ag baint úsáide as an gclár Provider.

Modh 3: Comhéadan Stórála Coimeádán

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

Chun an fhadhb a réiteach, chruthaigh forbróirí ó Cloud Foundry, Kubernetes, Mesos agus Docker an Comhéadan Stórála Coimeádán (CSI) - comhéadan simplí aontaithe a chuireann síos ar idirghníomhaíocht an chórais bainistíochta coimeádáin agus tiománaí speisialta (Tiomántóir CSI) a oibríonn le saintréith. córas stórála. Aistríodh an cód go léir le haghaidh idirghníomhaíochta le córais stórála ó chroílár Kubernetes go córas ar leith.

Doiciméadú Comhéadain Stórála Coimeádán.

Как правило, CSI Driver состоит из двух компонентов: Node Plugin и Controller plugin.

Node Plugin запускается на каждом узле и отвечает за монтирование томов и за операции на них. Controller plugin взаимодействует с СХД: создает или удаляет тома, назначает права доступа и т. д.

Пока в ядре Kubernetes остаются старые драйверы, но пользоваться ими уже не рекомендуют и всем советуют устанавливать CSI Driver конкретно для той системы, с которой предстоит работать.

Féadfaidh an nuálaíocht eagla a chur orthu siúd atá i dtaithí cheana féin ar stóráil sonraí a bhunú tríd an rang Stórála, ach i ndáiríre níor tharla aon rud uafásach. Maidir le ríomhchláraitheoirí, ní athraíonn aon rud i ndáiríre - níor oibrigh siad ach leis an ainm Rang Stórála, agus leanfaidh siad ag déanamh amhlaidh. Do riarthóirí, tá suiteáil na cairte stiúrtha curtha leis agus tá struchtúr na socruithe athraithe. Más rud é roimhe seo cuireadh na socruithe isteach go díreach isteach sa rang Stórála, anois ní mór iad a shocrú ar dtús sa chairt stiúrtha, agus ansin sa rang Stórála. Má fhéachann tú isteach air, níor tharla aon rud dona.

Давайте, на примере, рассмотрим какие преимущества можно получить, перейдя на подключение СХД Ceph с помощью CSI драйвера.

При работе с Ceph плагин CSI даёт больше возможностей для работы с СХД, чем встроенные драйверы.

  1. Cruthú diosca dinimiciúil. De ghnáth ní úsáidtear dioscaí RBD ach amháin i mód RWO, ach ceadaíonn CSI do Ceph iad a úsáid i mód RWX. Is féidir le roinnt pods ar nóid éagsúla an diosca RDB céanna a shuiteáil ar a gcuid nóid agus oibriú leo go comhthreomhar. Chun a bheith cothrom, níl gach rud chomh geal - ní féidir an diosca seo a nascadh ach mar ghléas bloc, rud a chiallaíonn go mbeidh ort an feidhmchlár a oiriúnú chun oibriú leis i mód rochtana iolrach.
  2. Grianghraif a chruthú. В кластере Kubernetes можно создать манифест с требованием создать снапшот. Плагин CSI его увидит и сделает снапшот с диска. На его основании можно будет сделать либо бэкап, либо копию PersistentVolume.
  3. Méadú ar mhéid diosca maidir le stóráil agus PersistentVolume i mbraisle Kubernetes.
  4. Cuótaí. Встроенные в Kubernetes драйверы CephFS не поддерживают квоты, а свежие CSI-плагины со свежим Ceph Nautilus умеют включать квоты на CephFS-разделы.
  5. Méadracht. CSI-плагин может отдавать в Prometheus множество метрик о том, какие тома подключены, какие идут взаимодействия и т. д.
  6. Topology feasach. Позволяет указать в манифестах, как географически распределён кластер, и избежать подключения к подам, запущенным в Лондоне системы хранения данных, расположенной в Амстердаме.

Conas Ceph a nascadh le braisle Kubernetes trí CSI, féach sa chuid phraiticiúil de léacht scoile tráthnóna Slurm. Is féidir leat síntiús a íoc freisin Cúrsa físeán ceph, a sheolfar ar 15 Deireadh Fómhair.

Автор статьи: Сергей Бондарев, практикующий архитектор Southbridge, Certified Kubernetes Administrator, один из разработчиков kubespray.

A little Post Scriptum ní le haghaidh fógraíochta, ach chun sochair...

Tá PS Sergey Bondarev i gceannas ar dhá dhianchúrsa: nuashonraithe Bonn Kubernetes 28-30 Meán Fómhair agus chun cinn Cubernetes Mega 14-16 Deireadh Fómhair.

Sonraí a stóráil i mbraisle Kubernetes

Foinse: will.com

Add a comment