Programavimas

Kaip kartu paleisti „Cassandra“ ir „Kubernetes“

Konteineriai tapo vis populiaresni kūrėjams, norintiems diegti programas debesyje. Kad galėtų valdyti šias naujas programas, „Kubernetes“ tapo de facto konteinerių orkestravimo standartu. „Kubernetes“ leidžia kūrėjams kurti paskirstytas programas, kurios automatiškai keičiasi elastingai, atsižvelgiant į paklausą.

„Kubernetes“ buvo sukurta taip, kad būtų galima be vargo diegti, keisti mastelį ir valdyti programų be darbo našumą gamyboje. Kalbant apie būseninius debesies duomenis, reikėjo to paties diegimo ir masto paprastumo.

Išplatintose duomenų bazėse „Cassandra“ yra patrauklus kūrėjams, kurie žino, kad turės išplėsti savo duomenis - tai visiškai tolerantiška triktims duomenų bazė ir duomenų valdymo metodas, kuris gali veikti vienodai keliose vietose ir debesų paslaugose. Kadangi visi „Cassandra“ mazgai yra vienodi ir kiekvienas mazgas gali apdoroti skaitymo ir rašymo užklausas, „Cassandra“ modelyje nėra vieno gedimo taško. Duomenys automatiškai atkartojami tarp gedimo zonų, kad neprarastų vieno programos paveikto egzemplioriaus.

Kasandros prijungimas prie „Kubernetes“

Logiškas kitas žingsnis - kartu naudoti „Cassandra“ ir „Kubernetes“. Galų gale, kai paskirstyta duomenų bazė veikia kartu su paskirstyta programų aplinka, lengviau duomenis ir programų operacijas atlikti arti vienas kito. Tai ne tik padeda išvengti vėlavimo, bet ir gali padėti pagerinti našumą.

Tačiau tai pasiekti reiškia suprasti, kuri sistema yra atsakinga. „Cassandra“ jau turi tokį atsparumą gedimams ir mazgų išdėstymą, kokius gali suteikti „Kubernetes“, todėl svarbu žinoti, kuri sistema yra atsakinga už sprendimų priėmimą. Tai pasiekiama naudojant „Kubernetes“ operatorių.

Operatoriai automatizuoja sudėtingesnių programų, kurioms reikalinga konkrečiai sričiai reikalinga informacija ir kurios turi sąveikauti su išorinėmis sistemomis, diegimo ir valdymo procesą. Kol operatoriai nebuvo sukurti, valstybinių programų komponentai, pvz., Duomenų bazių egzemplioriai, sukėlė papildomą atsakomybę „devops“ komandoms, nes jie turėjo atlikti rankinį darbą, kad jų egzemplioriai būtų paruošti ir valdomi valstybiškai.

„Cassandra“ yra keli operatoriai, kuriuos sukūrė „Cassandra“ bendruomenė. Šiame pavyzdyje naudosime „cass-operator“, kurį sukūrė ir atvirai pateikė „DataStax“. Jis palaiko atvirojo kodo „Kubernetes“, „Google Kubernetes Engine“ (GKE), „Amazon Elastic Kubernetes Service“ (EKS) ir „Pivotal Container Service“ (PKS), todėl galite naudoti geriausiai jūsų aplinkai tinkančią „Kubernetes“ paslaugą.

Kasos operatoriaus įdiegimas savo „Kubernetes“ klasteryje yra paprastas procesas, jei turite pagrindinių žinių apie „Kubernetes“ klasterio valdymą. Kai jūsų „Kubernetes“ sankaupa bus patvirtinta, naudojant „kubectl“, „Kubernetes“ sankaupos komandų eilutės įrankį ir jūsų „Kubernetes“ debesies egzempliorius (nesvarbu, ar atvirojo kodo „Kubernetes“, „GKE“, „EKS“ ar „PKS“) prijungtas prie vietinio kompiuterio, galite pradėti taikyti kasetinius operatoriaus konfigūracijos YAML failus į jūsų grupę.

Kasos operatoriaus apibrėžimų nustatymas

Kitas etapas - kasetės operatoriaus aprašo, saugojimo klasės ir duomenų centro apibrėžčių taikymas „Kubernetes“ klasteriui.

Greita pastaba apie duomenų centro apibrėžimą. Tai remiasi „Cassandra“ vartojamais apibrėžimais, o ne nuoroda į fizinį duomenų centrą.

To hierarchija yra tokia:

  • Mazgas reiškia kompiuterinę sistemą, kurioje veikia „Cassandra“ egzempliorius. Mazgas gali būti fizinis kompiuteris, kompiuterio egzempliorius debesyje ar net „Docker“ konteineris.
  • Stovas reiškia kasandros mazgų rinkinį šalia vienas kito. Stovas gali būti fizinis stovas, kuriame yra mazgai, prijungti prie bendro tinklo jungiklio. Tačiau diegiant debesį, stovas dažnai reiškia mašinų egzempliorių, veikiančių toje pačioje prieinamumo zonoje, rinkinį.
  • Duomenų centras reiškia loginių lentynų rinkinį, paprastai gyvenantį tame pačiame pastate ir sujungtą patikimu tinklu. Diegiant debesis, duomenų centrai paprastai susiejami su debesų regionu.
  • Klasteris reiškia duomenų centrų, palaikančių tą pačią programą, rinkinį. „Cassandra“ sankaupos gali veikti vienoje debesies aplinkoje ar fiziniame duomenų centre arba gali būti paskirstytos keliose vietose, kad būtų didesnis atsparumas ir sumažintas vėlavimas

Dabar mes patvirtinome savo vardų suteikimo tvarką, atėjo laikas nustatyti apibrėžimus. Mūsų pavyzdyje naudojamas GKE, tačiau procesas yra panašus ir kitiems „Kubernetes“ varikliams. Yra trys žingsniai.

1 žingsnis

Pirmiausia turime paleisti komandą kubectl, kuri nurodo YAML konfigūracijos failą. Tai taikoma kasos operatoriaus aprašo apibrėžimams prijungtam „Kubernetes“ klasteriui. Manifestai yra API objektų aprašymai, apibūdinantys norimą objekto būseną, šiuo atveju - jūsų „Cassandra“ operatorių. Išsamų konkrečios versijos manifestų rinkinį rasite šiame „GitHub“ puslapyje.

GKE debesies, kuriame veikia „Kubernetes 1.16“, pavyzdys: kubectl komanda:

kubectl sukurti -f //raw.githubusercontent.com/datastax/cass-operator/v1.3.0/docs/user/cass-operator-manifests-v1.16.yaml

2 žingsnis

Kita komanda „kubectl“ taiko YAML konfigūraciją, apibrėžiančią „Cassandra“ mazgų grupėje naudojamus saugyklos parametrus. „Kubernetes“ naudoja „StorageClass“ šaltinį kaip abstrakcijos sluoksnį tarp dėklų, kuriems reikalinga nuolatinė saugykla, ir fizinių saugyklos išteklių, kuriuos gali suteikti konkretus „Kubernetes“ klasteris. Pavyzdyje SSD naudojamas kaip saugyklos tipas. Norėdami sužinoti daugiau parinkčių, žr. Šį „GitHub“ puslapį. Toliau pateikiama tiesioginė nuoroda į YAML, taikomą saugyklos konfigūracijoje:

apiVersion: storage.k8s.io/v1

rūšis: „StorageClass“

metaduomenys:

pavadinimas: serverio saugykla

teikėjas: kubernetes.io/gce-pd

parametrai:

tipas: pd-ssd

replikacijos tipas: nėra

„volumeBindingMode“: „WaitForFirstConsumer“

reclaimPolicy: Ištrinti

3 žingsnis

Galiausiai, vėl naudodami kubectl, pritaikome YAML, kuris apibrėžia mūsų „Cassandra Datacenter“.

# Skirta dirbti su 3 k8s darbininkų mazgais su 1 branduolio / 4 GB RAM

# Žr. Kaimyninį pavyzdį-cassdc-full.yaml, kuriame rasite kiekvieno parametro dokumentus

„apiVersion“: cassandra.datastax.com/v1beta1

natūra: „CassandraDatacenter“

metaduomenys:

vardas: dc1

specifikacija:

clusterName: cluster1

serverType: cassandra

serverio versija: "3.11.6"

managementApiAuth:

nesaugus: {}

dydis: 3

storageConfig:

cassandraDataVolumeClaimSpec:

storageClassName: serverio saugykla

accessModes:

- „ReadWriteOnce“

ištekliai:

prašymai:

saugykla: 5Gi

konfigūracija:

cassandra-yaml:

autentifikatorius: org.apache.cassandra.auth.PasswordAuthenticator

autorizatorius: org.apache.cassandra.auth.CassandraAuthorizer

role_manager: org.apache.cassandra.auth.CassandraRoleManager

„jvm-options“:

initial_heap_size: "800M"

max_heap_size: "800M"

Šis YAML pavyzdys skirtas atvirojo kodo „Apache Cassandra 3.11.6“ atvaizdui su trimis mazgais vienoje lentynoje „Kubernetes“ grupėje. Čia yra tiesioginė nuoroda. Šiame „GitHub“ puslapyje yra visas konkrečiai duomenų bazei būdingų duomenų centro konfigūracijų rinkinys.

Šiuo metu galėsite pažvelgti į savo sukurtus išteklius. Tai bus matoma jūsų debesies konsolėje. Pavyzdžiui, „Google Cloud Console“ galite spustelėti skirtuką „Klasteriai“, pamatyti, kas veikia, ir peržiūrėti darbo krūvius. Tai yra diegiami skaičiavimo įrenginiai, kuriuos galima sukurti ir valdyti „Kubernetes“ klasteryje.

Norėdami prisijungti prie pačios įdiegtos „Cassandra“ duomenų bazės, galite naudoti „cqlsh“, komandinės eilutės apvalkalą ir pateikti užklausą „Cassandra“ naudodami CQL iš savo „Kubernetes“ sankaupos. Patvirtinę galėsite pateikti DDL komandas, kad sukurtumėte ar pakeistumėte lenteles ir pan., Ir tvarkytumėte duomenis naudodami DML instrukcijas, pvz., Įterpkite ir atnaujinkite CQL.

Kas bus toliau „Cassandra“ ir „Kubernetes“?

Nors „Apache Cassandra“ yra keli operatoriai, reikėjo bendro operatoriaus. „Cassandra“ bendruomenėje dalyvaujančios įmonės, tokios kaip „Sky“, „Orange“, „DataStax“ ir „Instaclustr“, bendradarbiauja kurdamos bendrą „Apache Cassandra“ operatorių „Kubernetes“. Šios bendradarbiavimo pastangos vyksta kartu su esamais atvirojo kodo operatoriais ir siekiama įmonėms ir vartotojams pateikti nuoseklų skaičiavimo ir duomenų skalę.

Laikui bėgant, perkėlimas į „cloud-native“ programas turės būti palaikomas ir „cloud-native“ duomenimis. Tai priklausys nuo daugiau automatikos, kurią skatins tokie įrankiai kaip „Kubernetes“. Kartu naudodami „Kubernetes“ ir „Cassandra“ galite pritaikyti savo požiūrį į duomenų debesį.

Norėdami sužinoti daugiau apie „Cassandra“ ir „Kubernetes“, apsilankykite //www.datastax.com/dev/kubernetes. Norėdami gauti daugiau informacijos apie „Cassandra“ paleidimą debesyje, apsilankykite „DataStax Astra“.

Patrickas McFadinas yra „DataStax“ ryšių su kūrėjais viceprezidentas, kur jis vadovauja komandai, kurios užduotis yra „Apache Cassandra“ vartotojų sėkmė. Jis taip pat dirbo vyriausiuoju „Apache Cassandra“ evangelistu ir „DataStax“ konsultantu, kur padėjo sukurti keletą didžiausių ir įdomiausių gamybos vietų. Iki „DataStax“ jis buvo vyriausiasis „Hobsons“ architektas ir „Oracle“ DBA / kūrėjas daugiau nei 15 metų.

Naujųjų technologijų forumas suteikia galimybę tyrinėti ir aptarti besiformuojančios įmonės technologijas beprecedentiame gylyje. Atranka yra subjektyvi, atsižvelgiant į mūsų pasirinktas technologijas, kurios, mūsų manymu, yra svarbios ir labiausiai domina skaitytojus. nepriima rinkodaros užtikrinimo priemonės paskelbimui ir pasilieka teisę redaguoti visą pateiktą turinį. Visus klausimus siųskite adresu [email protected].

$config[zx-auto] not found$config[zx-overlay] not found