Роок - самоуслужно складиште података за Кубернетес

Роок - самоуслужно складиште података за Кубернетес

Дана 29. јануара, технички комитет ЦНЦФ (Цлоуд Нативе Цомпутинг Фоундатион), организације која стоји иза Кубернетес, Прометхеус и других Опен Соурце производа из света контејнера и цлоуд нативе, најавио о прихватању пројекта топ у њихове редове. Одлична прилика да упознате овог „оркестратора дистрибуираног складиштења у Кубернетесу“.

Какав Роок?

топ је софтвер написан у Го (дистрибуира под бесплатном Апацхе Лиценсе 2.0), дизајниран да обезбеди складишта података са аутоматизованим функцијама које их чине самоуправљање, самоскалирање и самоизлечење. Да би то урадио, Роок аутоматизује (за складишта података која се користе у Кубернетес окружењу): примену, покретање, конфигурисање, обезбеђивање, скалирање, ажурирања, миграције, опоравак од катастрофе, надгледање и управљање ресурсима.

Пројекат је у алфа фази и специјализован је за оркестрирање Цепх дистрибуираног система складиштења у Кубернетес кластерима. Аутори такође најављују планове за подршку другим системима за складиштење података, али то се неће догодити у наредним издањима.

Компоненте и технички уређај

Рооков рад унутар Кубернетеса заснива се на специјалном оператору (више смо писали о Кубернетес оператерима у Овај чланак), који аутоматизује конфигурацију складиштења и спроводи њено праћење.

Дакле, Топ оператер изгледа као контејнер који садржи све што је потребно за примену и накнадно одржавање спремишта. Одговорности оператера укључују:

  • креирање ДаемонСет-а за Цепх демоне за складиштење (цепх-осд) са једноставним РАДОС кластером;
  • креирање подова за Цепх надгледање (са цепх-мон, провера статуса кластера; за кворум, у већини случајева се распоређују три копије, а ако нека од њих падне, излази нова);
  • управљање ЦРД-овима (Прилагођене дефиниције ресурса) за себе кластер, базени за складиштење, продавнице објеката (скупови ресурса и услуга за послуживање ХТТП захтева који врше ПУТ/ГЕТ на објектима – компатибилни су са С3 и Свифт АПИ-јем)И sistemi datoteka;
  • иницијализација подова за покретање свих потребних услуга;
  • стварање Роок агената.

Роокови агенти су представљени засебним подовима који су распоређени на сваком Кубернетес чвору. Сврха агента је конфигурација додатка ФлекВолуме, који пружа подршку за запремине складиштења у Кубернетес-у. Агент имплементира рад складишта: повезује мрежне уређаје за складиштење, монтира волумене, форматира систем датотека итд.

Роок - самоуслужно складиште података за Кубернетес
Место и улога Роок компоненти у укупној шеми Кубернетес кластера

Роок нуди три врсте складиштења:

  1. блокирати (Блокирати, StorageClass) — монтира складиште на једно огњиште;
  2. објекат (објекат, ObjectStore) - доступно унутар и изван Кубернетес кластера (преко С3 АПИ-ја);
  3. дељени систем датотека (Дељени систем датотека, Filesystem) је систем датотека који се може монтирати за читање и писање из више подова.

Унутрашњост Топа укључује:

  • Монс — подс за Цепх мониторинг (са већ поменутим цепх-моном);
  • ОСД — подови са цепх-осд демонима (Објецт Стораге Даемони);
  • МГР - махуне са демоном цепх-мгр (Цепх Манагер), који пружа додатне могућности праћења и интерфејсе за спољне системе (надгледање/контрола);
  • РГВ (опционо) - махуне са складиштем предмета;
  • МДС (опционо) - подови са заједничким системом датотека.

Роок - самоуслужно складиште података за Кубернетес

Сви Роок демони (Монс, ОСД, МГР, РГВ, МДС) су компајлирани у једну бинарну датотеку (rook) трчање у контејнеру.

За кратак увод у пројекат Роок, овај кратки (12 слајдова) такође може бити од користи. презентација из Басама Таббаре (ЦТО у Куантум Цорп).

Управљање топом

Оператор Роок у потпуности подржава Кубернетес верзију 1.6 и новију (и, делимично, старије издање К8с - 1.5.2). Његов инсталација в најједноставнији сценарио изгледа овако:

cd cluster/examples/kubernetes
kubectl create -f rook-operator.yaml
kubectl create -f rook-cluster.yaml

Поред тога, припремљен је и Роок оператер Хелм цхарт, захваљујући чему се инсталација може извести на следећи начин:

helm repo add rook-alpha https://charts.rook.io/alpha
helm install rook-alpha/rook

Мала количина доступна опције подешавања (на пример, можете онемогућити подршку РБАЦ, ако се ова функција не користи у вашем кластеру), који се прослеђују helm install преко параметра --set key=value[,key=value] (или сачувајте у засебној ИАМЛ датотеци и пренесите преко -f values.yaml).

Након инсталирања Роок оператора и покретања подова са његовим агентима, остаје само да се креира сам Роок кластер, чија најједноставнија конфигурација изгледа овако (rook-cluster.yaml):

apiVersion: v1
kind: Namespace
metadata:
  name: rook
---
apiVersion: rook.io/v1alpha1
kind: Cluster
metadata:
  name: rook
  namespace: rook
spec:
  dataDirHostPath: /var/lib/rook
  storage:
    useAllNodes: true
    useAllDevices: false
    storeConfig:
      storeType: bluestore
      databaseSizeMB: 1024
      journalSizeMB: 1024

Приметити: посебну пажњу треба обратити на атрибут dataDirHostPath, чија је тачна вредност неопходна да би се кластер сачувао након поновног покретања. За случајеве када се користи као трајна локација за складиштење података Роок на Кубернетес хостовима, аутори препоручују да имате најмање 5 ГБ слободног простора на диску у овом директоријуму.

Све што остаје је да креирате кластер из конфигурације и уверите се да су подови креирани у кластеру (у именском простору rook):

kubectl create -f rook-cluster.yaml
kubectl -n rook get pod
NAME                              READY     STATUS    RESTARTS   AGE
rook-api-1511082791-7qs0m         1/1       Running   0          5m
rook-ceph-mgr0-1279756402-wc4vt   1/1       Running   0          5m
rook-ceph-mon0-jflt5              1/1       Running   0          6m
rook-ceph-mon1-wkc8p              1/1       Running   0          6m
rook-ceph-mon2-p31dj              1/1       Running   0          6m
rook-ceph-osd-0h6nb               1/1       Running   0          5m

Надоградите Роок кластер (до нове верзије) је поступак који у овој фази захтева секвенцијално ажурирање свих његових компоненти у одређеном низу, а можете га покренути тек након што се уверите да је тренутна Роок инсталација у потпуно „здравом“ стању. држава. Детаљна упутства корак по корак користећи пример ажурирања Роок верзије 0.5.0 на 0.5.1 можете пронаћи у пројектну документацију.

Прошлог новембра на Роок блогу је објављен поређење продуктивност са ЕБС-ом. Његови резултати су вредни пажње, а укратко су следећи:

Роок - самоуслужно складиште података за Кубернетес
Роок - самоуслужно складиште података за Кубернетес

Изгледи

Тренутни статус Роока је алфа, а последње велико издање до данас је КСНУМКС верзија, објављено у новембру 2017. (тренутна исправка - вКСНУМКС — изашао 14. децембра). Већ у првој половини 2018. очекују се издања зрелијих верзија: бета и стабилна (званично спремна за употребу у производњи).

Према путоказ пројекта, програмери имају детаљну визију за развој Роок-а у најмање наредна два издања: 0.7 (његова спремност је у ГитХуб трацкер-у процењено као 60%) и 0.8. Међу очекиваним променама су пренос подршке за Цепх Блоцк и Цепх Објецт на статус бета верзије, динамичко обезбеђивање волумена за ЦепхФС, напредни систем евидентирања, аутоматизована ажурирања кластера, подршка за снимке за волумене.

Увођење топа у број ЦНЦФ пројекти (до сада у врло раној фази - „почетном нивоу“ – на нивоу линкерд и ЦореДНС) је својеврсна гаранција све већег интересовања за производ. Како ће се учврстити у свету апликација у облаку, постаће јасније када буду објављене стабилне верзије, што ће свакако довести нове тестере и кориснике у Роок.

ПС

Прочитајте и на нашем блогу:

Извор: ввв.хабр.цом

Додај коментар