2024-07-11
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Tämä artikkeli perustuu [pseudo]-erillisen tilan redis-esiintymän rakentamiseen k8s-ympäristöön. Koska jaetun tallennustilan IO-suorituskyky on suhteellisen alhainen, jaettua tallennustilaa käytetään tietojen varmuuskopiointiin, ja redis-tiedot tallennetaan isäntäpolun muodossa. Tämä auttaa parantamaan rediksen IO-suorituskykyä isäntä-orja-muoto redis toteuttaa erillinen ja erittäin saatavilla redis.
K8s-versio k8s-1.29.4, ympäristö on rakennettu tietoliikenteen tietokonehuoneeseen, jossa on yhteensä kuusi solmua. NAS-tallennustilassa on jaettu tallennustila, joka käyttää Alibaba Cloud NAS:ia ja omaa linjaa, jonka kaistanleveys on 500 Mt.
1. Aseta redis isäntä-slave-tilaan. Isäntä-redis:n tiedot kuuluvat paikalliselle SSD-levylle ja orja-redis-tiedot ulkoiselle jaetulle nas-muistille.
2. Luo sitten statefulset-kokoonpano, sijoita kaksi säilöä, yksi säilö pääredisiksi, liitä se isäntäpolkuun, luo hakemisto isäntänimellä ja tallenna rdb-tiedosto. Toinen säilö toimii orja-redis-palvelimena, ja nas-polku liitetään hakemiston luomiseksi isäntänimellä ja rdb-tiedoston tallentamiseksi.
3. Säädä datan pysyvyysparametrin tallennus redisistä ja säädä tietojen latausaika pienemmäksi parametriksi varmistaaksesi, että päivitetyt tiedot tallennetaan rdb-tiedostoon mahdollisimman pian.
4. Joka kerta kun pod ajoitetaan tai käynnistetään uudelleen, kopioi nas:iin tallennettu rdb-tiedosto isäntäpolulle ja käynnistä redis.
Huomautus: Tämä tehdään, jotta isäntä-redis voi saavuttaa tehokkaan liiketoimintatietojen käsittelyn, ja orja-redis on vastuussa tietojen pysyvyydestä. Seuraavia ongelmia voi ilmetä: 1. Kun isäntälaitteen luku- ja kirjoitusdata on liian korkea , orja uudelleenliittää nas. Tietojen latausaika on pidempi.
Kokoonpano sisältää kolme tiedostoa: master-redis-määritystiedoston, orja-redis-määritystiedoston ja yksinkertaisen komentosarjan, joka suorittaa erilaisia toimintoja suoritusroolin mukaan.
redis-master:conf on tärkein redis-määritystiedosto. Muisti on 256M, konfigurointiportti on 6379, konfigurointisalasana on redis#123 ja tallennuspolku on /data/redis.
redis.conf: Määritä redis-määritystiedostosta muistiksi 256M, määritä portiksi 6380, määritä salasana: redis#123, tallennuspolku on /data/redis-2 ja määritä tiedot synkronoitavaksi portti 6379 ja säädä tallennusaika arvoon Jos datamuutoksia tapahtuu 10 60 sekunnin sisällä, tallennus suoritetaan.
run.sh: Päätoiminto on määrittää rooli ja luoda hakemisto isäntänimen perusteella ja muodostaa sitten pehmeä yhteys tallennushakemistoon. Tämä vaihe on pääasiassa kunkin palvelun redis-tietojen tallentaminen omaan hakemistoonsa. Uutta redis-ohjelmaa luotaessa se ei aiheuta hakemistoristiriitoja solmuun.
apiVersion: v1
kind: ConfigMap
metadata:
name: defaultapp-redis-standalone-config
namespace: default
labels:
appname: default-app
app: defaultapp-redis-standalone-config
data:
redis-master.conf: |
port 6379
maxmemory 256mb
requirepass redis#123
dir /data/redis
redis.conf: |
port 6380
maxmemory 256mb
requirepass redis#123
save 3600 1 300 5 60 10
dir /data/redis-2
replicaof 127.0.0.1 6379
masterauth redis#123
run.sh: |
#!/bin/sh
role=$1
hname=$(hostname)
if [ $role == "master" ];then
echo "run redis master"
ls /etc/redis/ -l
[ -d /home/redis/$hname ] || mkdir -p /home/redis/$hname
[ -d /data ] || mkdir /data
ln -s /home/redis/$hname /data/redis
if [ -f /home/redis-2/$hname/dump.rdb ];then
cp -vf /home/redis-2/$hname/dump.rdb /data/redis/
else
echo "[info] no bak dump.rdb"
fi
redis-server /etc/redis/redis-master.conf
else
echo "run redis slave"
ls /etc/redis/ -l
[ -d /home/redis-2/$hname ] || mkdir -p /home/redis-2/$hname
[ -d /data ] || mkdir /data
ln -s /home/redis-2/$hname /data/redis-2
redis-server /etc/redis/redis.conf
fi