Rook - як мағозаи маълумоти худхизматрасонӣ барои Kubernetes

Rook - як мағозаи маълумоти худхизматрасонӣ барои Kubernetes

Рӯзи 29 январ, кумитаи техникии CNCF (Бунёди Cloud Native Computing), созмоне, ки дар паси Kubernetes, Prometheus ва дигар маҳсулоти манбаи кушода аз ҷаҳони контейнерҳо ва абрҳои модарӣ, эълон дар бораи кабули лоиха Рук ба сафи худ дохил мешаванд. Имконияти олӣ барои шиносоӣ бо ин "оркестри нигаҳдории тақсимшуда дар Кубернетес".

Чӣ гуна Rook?

Рук нармафзорест, ки дар Go навишта шудааст (паҳн мекунад дар зери иҷозатномаи ройгони Apache 2.0), барои таъмини анборҳои додаҳо бо функсияҳои автоматӣ, ки онҳоро месозад худидоракунй, худидоракунй ва худтабобаткунй. Барои ин, Rook автоматӣ мекунад (барои мағозаҳои маълумоте, ки дар муҳити Kubernetes истифода мешаванд): ҷойгиркунӣ, боркунӣ, конфигуратсия, таъминкунӣ, миқёссозӣ, навсозӣ, муҳоҷират, барқарорсозии офатҳои табиӣ, мониторинг ва идоракунии захираҳо.

Лоиҳа дар марҳилаи алфа қарор дорад ва ба ташкили системаи нигаҳдории тақсимшудаи Ceph дар кластерҳои Kubernetes тахассус дорад. Муаллифон инчунин нақшаҳои дастгирии дигар системаҳои нигаҳдории худро эълон мекунанд, аммо ин дар нашрияҳои оянда рӯй нахоҳад дод.

Компонентҳо ва дастгоҳҳои техникӣ

Кори Рук дар дохили Кубернетес ба оператори махсус асос ёфтааст (мо дар бораи Operators Kubernetes бештар навишта будем ин мақола), ки конфигуратсияи анборро автоматӣ мекунад ва мониторинги онро амалӣ мекунад.

Ва ҳамин тавр, Оператори Рок Чунин ба назар мерасад, ки як контейнерест, ки ҳама чизро барои ҷойгиркунӣ ва нигоҳдории минбаъдаи анбор дарбар мегирад. Ухдадорихои оператор иборатанд аз:

  • сохтани DaemonSet барои демонҳои нигаҳдории Ceph (сеф-осд) бо кластери оддии RADOS;
  • сохтани подкастаҳо барои мониторинги Ceph (бо ceph-мон, тафтиши ҳолати кластер; барои кворум, дар аксари ҳолатҳо се нусха ҷойгир карда мешавад ва агар яке аз онҳо афтад, нусхаи нав боло меравад);
  • идоракунии CRDs (Таърифҳои захираҳои фармоишӣ) барои худ кластер, ҳавзҳои нигоҳдорӣ, мағозаҳои объект (маҷмӯи захираҳо ва хидматҳо барои хидматрасонии дархостҳои HTTP, ки PUT/GET-ро дар объектҳо иҷро мекунанд - онҳо бо S3 ва Swift API мувофиқанд), инчунин системаҳои файлӣ;
  • оғоз кардани pods барои оғози ҳама хидматҳои зарурӣ;
  • таъсиси агентҳои Rook.

Агентҳои Рук бо қуттиҳои алоҳида, ки дар ҳар як гиреҳи Kubernetes ҷойгир шудаанд, муаррифӣ карда мешаванд. Мақсади агент конфигуратсияи плагин мебошад FlexVolume, ки барои ҳаҷми нигоҳдорӣ дар Kubernetes дастгирӣ мекунад. Агент амалиёти анборро амалӣ мекунад: дастгоҳҳои нигаҳдории шабакаро мепайвандад, ҳаҷмҳоро насб мекунад, системаи файлиро формат мекунад ва ғайра.

Rook - як мағозаи маълумоти худхизматрасонӣ барои Kubernetes
Ҷой ва нақши ҷузъҳои Rook дар нақшаи умумии кластери Kubernetes

Rook се намуди нигоҳдорӣ пешниҳод мекунад:

  1. блок (Блок, StorageClass) — анборро ба як оташдон васл мекунад;
  2. объект (объекти, ObjectStore) - дар дохил ва берун аз кластери Kubernetes дастрас аст (тавассути S3 API);
  3. системаи файлии муштарак (Системаи файлии муштарак, Filesystem) як системаи файлист, ки барои хондан ва навиштан аз як қатор қуттиҳо насб кардан мумкин аст.

Дар дохили Rook инҳоянд:

  • Mons — поддонхо барои мониторинги Ceph (бо сеф-мон дар боло зикршуда);
  • OSDs - pods бо демонҳои ceph-osd (Demons Storage Object);
  • М.Г.Р. - лӯндаҳо бо дев ceph-mgr (Менеҷери Ceph), ки имкониятҳои иловагии мониторинг ва интерфейсҳоро барои системаҳои беруна таъмин мекунад (мониторинг/назорат);
  • RGW (ихтиёрӣ) - қуттиҳо бо нигоҳдории ашё;
  • MDS (ихтиёрӣ) - pods бо системаи файлии муштарак.

Rook - як мағозаи маълумоти худхизматрасонӣ барои Kubernetes

Ҳама демонҳои Rook (Mons, OSDs, MGR, RGW, MDS) ба як бинарӣ (rook) дар як контейнер кор мекунанд.

Барои муаррифии мухтасари лоиҳаи Rook, ин кӯтоҳ (12 слайд) низ метавонад муфид бошад. муаррифӣ аз Бассам Таббара (CTO дар Quantum Corp).

Идоракунии Rook

Оператори Rook версияи Kubernetes 1.6 ва навтарро комилан дастгирӣ мекунад (ва қисман версияи кӯҳнаи K8s - 1.5.2). Ӯ насб в соддатарин сенария чунин мешуморам:

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

Илова бар ин, оператори Rook омода карда шудааст Диаграммаи руль, ба шарофати он насбро метавон чунин анҷом дод:

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

Миқдори кам дастрас имконоти танзим (масалан, шумо метавонед дастгирӣро хомӯш кунед РБАК, агар ин хусусият дар кластери шумо истифода нашавад), ки ба helm install тавассути параметр --set key=value[,key=value] (ё дар файли алоҳидаи YAML нигоҳ доред ва тавассути -f values.yaml).

Пас аз насб кардани оператори Rook ва ба кор андохтани pods бо агентҳои он, танҳо сохтани кластери Rook боқӣ мемонад, ки соддатарин конфигуратсияи он чунин аст (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, ки арзиши дурусти он барои захира кардани кластер пас аз бозоғозӣ зарур аст. Барои ҳолатҳое, ки он ҳамчун макони нигаҳдории доимии маълумоти Rook дар ҳостҳои Kubernetes истифода мешавад, муаллифон тавсия медиҳанд, ки дар ин феҳрист ҳадди аққал 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

Навсозӣ кунед Кластери Rook (то версияи нав) ин тартибест, ки дар ин марҳила навсозии пайдарпайи ҳамаи ҷузъҳои онро бо пайдарпаии муайян талаб мекунад ва шумо метавонед онро танҳо пас аз боварӣ ҳосил кардани насби ҷории Rook дар ҳолати комилан "солим" оғоз кунед. давлат. Дастурҳои муфассали қадам ба қадам бо истифода аз мисоли навсозии версияи Rook аз 0.5.0 то 0.5.1. ҳуҷҷатҳои лоиҳавӣ.

Моҳи ноябри соли гузашта дар блоги Rook нашр шуд муқоиса иҷрои бо EBS. Натичахои он шоёни диккатанд ва мухтасар чунинанд:

Rook - як мағозаи маълумоти худхизматрасонӣ барои Kubernetes
Rook - як мағозаи маълумоти худхизматрасонӣ барои Kubernetes

Натиҷаҳо

Ҳолати кунунии Рук алфа аст ва охирин нашри асосӣ то имрӯз ин аст нусхаи 0.6, моҳи ноябри соли 2017 нашр шудааст (ислохи ҷорӣ - v0.6.2 — 14 декабрь баромад). Аллакай дар нимаи аввали соли 2018 нашри версияҳои баркамолтар дар назар аст: бета ва устувор (расман барои истифода дар истеҳсолот омода аст).

Мувофиқи маълумот roadmap Лоиҳа, таҳиягарон дар бораи рушди Rook на камтар аз ду нашри оянда биниши муфассал доранд: 0.7 (тайёр будани он дар трекери GitHub аст. арзёбӣ карда мешавад ҳамчун 60%) ва 0.8. Дар байни тағйироти интизорӣ интиқоли дастгирӣ барои Ceph Block ва Ceph Object ба ҳолати версияи бета, таъмини динамикии ҳаҷмҳо барои CephFS, системаи пешрафтаи сабти ном, навсозиҳои автоматии кластер, дастгирии аксҳои лаҳзавӣ барои ҷилдиҳо мебошанд.

Гирифтани Рук ба рақам Лоиҳаҳои CNCF (то ҳол дар марҳилаи ибтидоӣ - "сатҳи ибтидоӣ" - дар баробари пайвандак и CoreDNS) як навъ гарави афзоиши шавку хавас ба махсулот мебошад. Пас аз баровардани версияҳои устувор, ки бешубҳа озмоишгарон ва корбарони навро ба Rook меорад, чӣ гуна он дар ҷаҳони барномаҳои абрӣ ҷойгоҳ пайдо мекунад, равшантар мешавад.

PS

Инчунин дар блоги мо хонед:

Манбаъ: will.com

Илова Эзоҳ