Rook - Kubernetes үчүн өзүн-өзү тейлөө маалымат дүкөнү

Rook - Kubernetes үчүн өзүн-өзү тейлөө маалымат дүкөнү

29-январда, CNCF (Cloud Native Computing Foundation), Кубернетес, Prometheus жана контейнерлер дүйнөсүндөгү жана булуттагы башка Open Source өнүмдөрүнүн артында турган уюмдун техникалык комитети, жарыялады долбоорду кабыл алуу жөнүндө Каркыра алардын катарына. Бул "Кубернетестеги бөлүштүрүлгөн сактоо оркестри" менен таанышуу үчүн эң сонун мүмкүнчүлүк.

Кандай Rook?

Каркыра Go программасында жазылган программа (жайылуу акысыз Apache License 2.0 астында), маалымат кампаларын автоматташтырылган функциялар менен камсыз кылуу үчүн иштелип чыккан өзүн-өзү башкаруу, өзүн-өзү масштабдоо жана өзүн-өзү айыктыруу. Бул үчүн, Rook автоматташтырат (Kubernetes чөйрөсүндө колдонулган маалымат дүкөндөрү үчүн): жайгаштыруу, жүктөө, конфигурациялоо, камсыздоо, масштабдоо, жаңыртуулар, миграция, кырсыктан калыбына келтирүү, мониторинг жана ресурстарды башкаруу.

Долбоор альфа баскычында жана Kubernetes кластерлеринде Ceph бөлүштүрүлгөн сактоо тутумун уюштурууга адистешкен. Авторлор ошондой эле башка сактоо тутумдарын колдоо пландарын жарыялашат, бирок бул кийинки чыгарылыштарда болбойт.

Компоненттер жана техникалык түзүлүш

Руктун Kubernetes ичиндеги иши атайын операторго негизделген (биз Kubernetes операторлору жөнүндө көбүрөөк жазганбыз бул макалада), ал сактоо конфигурациясын автоматташтырат жана анын мониторингин ишке ашырат.

Ошентип, Рок оператору жайгаштыруу жана репозиторийди андан ары тейлөө үчүн зарыл болгон нерселердин бардыгын камтыган контейнер болуп көрүнөт. Оператордун милдеттерине төмөнкүлөр кирет:

  • Ceph сактоо демондору үчүн DaemonSet түзүү (ceph-osd) жөнөкөй RADOS кластери менен;
  • Ceph мониторинги үчүн поддондорду түзүү (менен ceph-mon, кластердин абалын текшерүү; кворум үчүн, көпчүлүк учурларда үч нускасы жайгаштырылат, ал эми алардын бирөө түшүп калса, жаңысы көтөрүлөт);
  • CRD башкаруу (Ыңгайлаштырылган ресурстун аныктамалары) өзү үчүн кластер, сактоо бассейндери, объект дүкөндөр (объекттерде PUT/GET аткарган HTTP сурамдарын тейлөө үчүн ресурстардын жана кызматтардын топтому - алар S3 жана Swift API менен шайкеш келет), дагы файл системалары;
  • бардык керектүү кызматтарды ишке киргизүү үчүн подкасттарды инициализациялоо;
  • Rook агенттерин түзүү.

Agents of Rook ар бир Kubernetes түйүнүндө жайгаштырылган өзүнчө подколор менен көрсөтүлөт. Агенттин максаты - плагин конфигурациясы FlexVolume, бул Kubernetesтеги сактоо көлөмүн колдоону камсыз кылат. Агент сактагычтын иштешин ишке ашырат: тармактык сактоо түзүлүштөрүн туташтырат, томдорду орнотот, файл тутумун форматтайт ж.б.

Rook - Kubernetes үчүн өзүн-өзү тейлөө маалымат дүкөнү
Rook компоненттеринин жалпы Кубернетес кластердик схемасындагы орду жана ролу

Rook сактоо үч түрүн сунуш кылат:

  1. блок (тосуу, StorageClass) — кампаны бир очокко орнотот;
  2. объект (зат, ObjectStore) - Kubernetes кластеринин ичинде жана сыртында жеткиликтүү (S3 API аркылуу);
  3. жалпы файл системасы (Бөлүшүлгөн файл системасы, Filesystem) бир нече поддондон окуу жана жазуу үчүн орнотула турган файл системасы.

Rook ички элементтери төмөнкүлөрдү камтыйт:

  • Mons — Ceph мониторинги үчүн кабыктар (мурда айтылган ceph-mon менен);
  • OSDs - ceph-osd демондору бар кабыктар (Object Storage Demons);
  • М.Г.Р. - жини бар кабыктар ceph-mgr (Ceph Manager), ал тышкы системалар үчүн кошумча мониторинг мүмкүнчүлүктөрүн жана интерфейстерин камсыз кылат (мониторинг/контролдоо);
  • RGW (Кошумча) - объект сактагычы бар уячалар;
  • MDS (Кошумча) - жалпы файл системасы менен подколор.

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

Аз санда жеткиликтүү орнотуу параметрлери (мисалы, колдоону өчүрө аласыз RBAC, эгерде бул өзгөчөлүк сиздин кластериңизде колдонулбаса), аларга өткөрүлүп берилет helm install параметр аркылуу --set key=value[,key=value] (же өзүнчө YAML файлында сактап, аркылуу жөнөтүңүз -f values.yaml).

Rook операторун орнотуп, анын агенттери менен подкачкаларды ишке киргизгенден кийин, эң жөнөкөй конфигурациясы төмөнкүдөй болгон 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, анын туура мааниси кайра жүктөлгөндөн кийин кластерди сактоо үчүн зарыл. Ал Kubernetes хостторунда Rook маалыматтары үчүн туруктуу сактагыч катары колдонулган учурларда, авторлор бул каталогдо кеминде 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-жылдын биринчи жарымында дагы жетилген версиялардын релиздери күтүлүүдө: бета жана туруктуу (өндүрүштө колдонууга расмий түрдө даяр).

ылайык жол картасы Долбоордун алкагында, иштеп чыгуучулар жок дегенде кийинки эки чыгарылышта Rookту өнүктүрүү боюнча кеңири көрүнүшкө ээ: 0.7 (анын даярдыгы GitHub трекеринде. болжолдуу катары 60% жана 0.8. Күтүлүп жаткан өзгөрүүлөрдүн арасында Ceph Block жана Ceph Object колдоону бета версия статусуна которуу, CephFS үчүн томдорду динамикалык камсыздоо, өркүндөтүлгөн каттоо системасы, автоматташтырылган кластер жаңыртуулары, томдор үчүн снапшоттарды колдоо.

Санга Рукту кабыл алуу CNCF долбоорлору (Азырынча эң алгачкы этапта - "баштапкы деңгээл" - менен бирдей linkerd и CoreDNS) продукцняга болгон кызыгуунун есушунун гарантиясы болуп саналат. Булуттук тиркемелер дүйнөсүндө анын ордун кантип ээлей тургандыгы туруктуу версиялар чыккандан кийин айкыныраак болот, бул, албетте, жаңы тестерлерди жана колдонуучуларды Rookке алып келет.

PS

Биздин блогдон дагы окуңуз:

Source: www.habr.com

DDoS коргоосу, VPS VDS серверлери бар сайттар үчүн ишенимдүү хостинг сатып алыңыз 🔥 DDoS коргоосу, VPS VDS серверлери бар ишенимдүү веб-сайт хостингин сатып алыңыз | ProHoster