Cassandra siv qhov chaw nyob IP los txheeb xyuas qhov node.
Txhawm rau ua kom ceev kev sau ntawv thiab nyeem ntawv, Cassandra khaws qee cov ntaub ntawv hauv RAM.
Tam sim no - mus rau qhov muaj peev xwm txav mus rau Kubernetes.
Kos npe rau kev hloov
Hais txog kev tsiv teb tsaws chaw ntawm Cassandra mus rau Kubernetes, peb cia siab tias nrog kev txav mus los nws yuav yooj yim dua los tswj. Dab tsi yuav xav tau rau qhov no, dab tsi yuav pab nrog qhov no?
1. Cov ntaub ntawv khaws cia
Raws li twb tau hais meej lawm, Cassanda khaws ib feem ntawm cov ntaub ntawv hauv RAM - hauv Memtable. Tab sis muaj lwm qhov ntawm cov ntaub ntawv uas tau txais kev cawmdim rau disk - hauv daim ntawv SSTable. Ib qhov chaw raug ntxiv rau cov ntaub ntawv no Ua Log - Cov ntaub ntawv ntawm txhua qhov kev hloov pauv, uas tseem khaws cia rau disk.
Sau daim duab pauv hauv Cassandra
Hauv Kubernetes, peb tuaj yeem siv PersistentVolume khaws cov ntaub ntawv. Ua tsaug rau cov txheej txheem pov thawj, kev ua haujlwm nrog cov ntaub ntawv hauv Kubernetes tau yooj yim dua txhua xyoo.
Peb yuav faib peb tus kheej PersistentVolume rau txhua Cassandra pod
Nws yog ib qho tseem ceeb uas yuav tsum nco ntsoov tias Cassandra nws tus kheej cuam tshuam cov ntaub ntawv rov ua dua, muab cov txheej txheem tsim ua rau qhov no. Yog li ntawd, yog tias koj tab tom tsim Cassandra pawg los ntawm ntau cov nodes, ces tsis tas yuav siv cov tshuab faib xws li Ceph lossis GlusterFS rau cov ntaub ntawv khaws cia. Hauv qhov no, nws yuav yog qhov laj thawj los khaws cov ntaub ntawv ntawm tus tswv disk siv local persistent disks los yog mounting hostPath.
Tab sis Custom Resource nws tus kheej tsis txhais tau dab tsi: tom qab tag nrho, nws xav tau tus maub los. Tej zaum koj yuav tau nrhiav kev pab Kubernetes tus neeg ua haujlwm...
4. Kev txheeb xyuas ntawm cov kaus mom
Hauv kab lus saum toj no, peb tau pom zoo tias ib qho Cassandra node yuav sib npaug ib lub plhaub hauv Kubernetes. Tab sis tus IP chaw nyob ntawm cov pods yuav txawv txhua zaus. Thiab qhov kev txheeb xyuas ntawm ib qho ntawm Cassandra yog raws li qhov chaw nyob IP ... Nws hloov tawm tias tom qab txhua qhov tshem tawm ntawm lub plhaub taum pauv, Cassandra pawg yuav ntxiv ib qho tshiab.
Peb tuaj yeem khaws cov ntaub ntawv los ntawm tus neeg txheeb xyuas tus tswv tsev (UUIDs uas cim qhov xwm txheej Cassandra) lossis los ntawm tus IP chaw nyob thiab khaws nws tag nrho hauv qee qhov qauv / rooj. Txoj kev muaj ob lub ntsiab tsis zoo:
Qhov kev pheej hmoo ntawm ib qho kev sib tw tshwm sim yog tias ob lub pob poob ib zaug. Tom qab qhov nce, Cassandra nodes yuav ib txhij thov tus IP chaw nyob los ntawm lub rooj thiab sib tw rau tib qhov chaw.
Qhov kev daws thib ob zoo li lub hack me me, tab sis txawm li cas los xij: peb tuaj yeem tsim Kev Pabcuam nrog ClusterIP rau txhua qhov Cassandra node. Teeb meem nrog qhov kev siv no:
ClusterIP feature yog siv los ntawm iptables. Qhov no tuaj yeem dhau los ua teeb meem yog tias Cassandra pawg muaj ntau (1000... lossis txawm tias 100?) nodes. Txawm tias ntsuas raws li IPVS daws tau qhov teeb meem no.
Qhov thib peb kev daws teeb meem yog siv lub network ntawm nodes rau Cassandra nodes es tsis txhob ntawm ib tug mob siab rau network ntawm pods los ntawm kev ua kom qhov chaw. hostNetwork: true. Txoj kev no imposes tej yam kev txwv:
Hloov cov units. Nws yog qhov tsim nyog uas cov node tshiab yuav tsum muaj tib qhov chaw nyob IP ib yam li yav dhau los (hauv huab zoo li AWS, GCP qhov no yuav luag ua tsis tau);
Siv lub network ntawm pawg nodes, peb pib sib tw rau cov peev txheej network. Yog li ntawd, tso ntau tshaj ib lub pod nrog Cassandra ntawm ib pawg ntawm pawg yuav muaj teeb meem.
5. Thaub qab
Peb xav kom txuag tau ib daim ntawv qhia tag nrho ntawm ib qho Cassandra node cov ntaub ntawv ntawm lub sijhawm. Kubernetes muab ib qho yooj yim feature siv CronJob, tab sis ntawm no Cassandra nws tus kheej tso ib tug hais nyob rau hauv peb lub log.
Cia kuv ceeb toom koj tias Cassandra khaws qee cov ntaub ntawv hauv lub cim xeeb. Txhawm rau ua kom tag nrho thaub qab, koj xav tau cov ntaub ntawv los ntawm lub cim xeeb (Memtables) txav mus rau disk (SSTables). Lub sijhawm no, Cassandra node nres txais kev sib txuas, kaw tag nrho ntawm pawg.
Tom qab no, lub thaub qab raug tshem tawm (snapshot) thiab txoj kev cawmdim (keyspace). Thiab tom qab ntawd nws hloov tawm tias tsuas yog thaub qab tsis muab rau peb ib yam dab tsi: peb yuav tsum khaws cov ntaub ntawv txheeb xyuas uas Cassandra ntawm lub luag haujlwm - cov no yog cov cim tshwj xeeb.
Kev faib tawm ntawm tokens los txheeb xyuas cov ntaub ntawv Cassandra nodes yog lub luag haujlwm rau
Ib qho piv txwv tsab ntawv rau kev noj Cassandra thaub qab los ntawm Google hauv Kubernetes tuaj yeem pom ntawm qhov txuas no. Tib lub ntsiab lus uas tsab ntawv tsis coj mus rau hauv tus account yog rov pib dua cov ntaub ntawv rau ntawm node ua ntej noj cov snapshot. Ntawd yog, qhov thaub qab tau ua tsis yog rau lub xeev tam sim no, tab sis rau lub xeev me ntsis ua ntej. Tab sis qhov no yuav pab kom tsis txhob coj cov node tawm ntawm kev ua haujlwm, uas zoo li muaj laj thawj.
set -eu
if [[ -z "$1" ]]; then
info "Please provide a keyspace"
exit 1
fi
KEYSPACE="$1"
result=$(nodetool snapshot "${KEYSPACE}")
if [[ $? -ne 0 ]]; then
echo "Error while making snapshot"
exit 1
fi
timestamp=$(echo "$result" | awk '/Snapshot directory: / { print $3 }')
mkdir -p /tmp/backup
for path in $(find "/var/lib/cassandra/data/${KEYSPACE}" -name $timestamp); do
table=$(echo "${path}" | awk -F "[/-]" '{print $7}')
mkdir /tmp/backup/$table
mv $path /tmp/backup/$table
done
tar -zcf /tmp/backup.tar.gz -C /tmp/backup .
nodetool clearsnapshot "${KEYSPACE}"
Ib qho piv txwv ntawm tsab ntawv bash rau kev siv thaub qab los ntawm ib qho Cassandra node
Npaj cov kev daws teeb meem rau Cassandra hauv Kubernetes
Dab tsi yog tam sim no siv los xa Cassandra hauv Kubernetes thiab qhov twg ntawm qhov zoo tshaj plaws haum rau cov kev cai muab?
1. Cov kev daws teeb meem raws li StatefulSet lossis Helm kab kos
Siv lub hauv paus StatefulSets ua haujlwm los khiav Cassandra pawg yog qhov kev xaiv zoo. Siv daim ntawv qhia Helm thiab Go templates, koj tuaj yeem muab tus neeg siv nrog qhov hloov pauv tau yooj yim rau kev xa Cassandra.
Qhov no feem ntau ua haujlwm zoo ... txog thaum muaj ib yam dab tsi tshwm sim, xws li cov node tsis ua haujlwm. Standard Kubernetes cov cuab yeej tsuas tsis tuaj yeem coj mus rau hauv tus account tag nrho cov yam ntxwv tau piav qhia saum toj no. Tsis tas li ntawd, txoj hauv kev no muaj kev txwv ntau npaum li cas nws tuaj yeem txuas ntxiv mus rau kev siv ntau dua: kev hloov pauv, thaub qab, rov qab, saib xyuas, thiab lwm yam.
Tus neeg teb xov tooj uas nws txoj kev loj hlob tsis tau nce sai npaum li peb xav tau. Nws muaj CRD qauv zoo rau kev tswj hwm pawg, daws qhov teeb meem ntawm kev txheeb xyuas cov nodes siv Kev Pabcuam nrog ClusterIP (tib yam "hack") ... tab sis qhov ntawd yog tag nrho rau tam sim no. Tam sim no tsis muaj kev saib xyuas lossis thaub qab tawm ntawm lub thawv (los ntawm txoj kev, peb yog rau kev saib xyuas coj nws peb tus kheej). Lub ntsiab lus nthuav yog tias koj tuaj yeem siv ScyllaDB siv tus neeg teb xov tooj no.
NB: Peb siv tus neeg teb xov tooj no nrog kev hloov kho me me hauv ib qho ntawm peb cov haujlwm. Tsis muaj teeb meem tau pom hauv tus neeg teb xov tooj txoj haujlwm thaum lub sijhawm ua haujlwm tag nrho (~ 4 lub hlis ntawm kev ua haujlwm).
Tus neeg ua haujlwm yau tshaj plaws ntawm daim ntawv teev npe: thawj qhov kev cog lus tau ua rau lub Tsib Hlis 23, 2019. Tam sim no nws muaj nyob rau hauv nws cov arsenal ib tug loj tus naj npawb ntawm cov nta los ntawm peb cov npe, ntau cov ntsiab lus uas yuav nrhiav tau nyob rau hauv qhov project repository. Tus neeg teb xov tooj yog tsim los ntawm tus neeg teb xov tooj nrov-sdk. Txhawb kev saib xyuas tawm ntawm lub thawv. Qhov sib txawv tseem ceeb ntawm lwm tus neeg ua haujlwm yog kev siv CassKop plugin, siv hauv Python thiab siv rau kev sib txuas lus ntawm Cassandra nodes.
tshawb pom
Tus naj npawb ntawm txoj hauv kev thiab cov kev xaiv ua tau rau kev xa khoom Cassandra mus rau Kubernetes hais rau nws tus kheej: lub ntsiab lus xav tau.
Nyob rau theem no, koj tuaj yeem sim ib qho ntawm cov saum toj no ntawm koj tus kheej txaus ntshai thiab pheej hmoo: tsis muaj ib tus neeg tsim khoom lav 100% kev ua haujlwm ntawm lawv cov kev daws teeb meem hauv ib puag ncig tsim khoom. Tab sis tam sim no, ntau cov khoom zoo li cog lus tias yuav sim siv hauv cov rooj zaum loj hlob.
Kuv xav tias yav tom ntej tus poj niam no ntawm lub nkoj yuav los ua ke!