2024-07-11
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
अयं लेखः k8s वातावरणे [pseudo] stand-alone mode redis instance इत्यस्य निर्माणे आधारितः भविष्यति । यतः साझा भण्डारणस्य IO कार्यक्षमता तुल्यकालिकरूपेण न्यूनं भवति, साझा भण्डारणस्य उपयोगः आँकडा बैकअप कृते भवति, तथा च redis आँकडा hostpath रूपेण संगृहीतः भवति एतत् redis इत्यस्य io कार्यक्षमतां सुधारयितुम् अयं लेखः व्याख्यास्यति यत् Container serves इत्यस्य द्वयोः उपयोगः कथं भवति एकं स्वतन्त्रं अत्यन्तं उपलब्धं च रेडिस् कार्यान्वितुं रेडिसस्य स्वामी-दासरूपम् ।
K8s संस्करण k8s-1.29.4, वातावरणं दूरसञ्चारसङ्गणककक्षे निर्मितम् अस्ति, यत्र कुलम् षट् नोड् सन्ति । अत्र NAS साझाभण्डारणं अस्ति, यत् Alibaba Cloud NAS इत्यस्य उपयोगं करोति तथा च 500Mb इत्यस्य समर्पिता रेखा बैण्डविड्थ् इत्यनेन सह समर्पितां रेखां उपयुज्यते ।
1. master-slave mode इत्यस्मिन् redis इत्यस्य सेटअपं कुर्वन्तु master redis इत्यस्य data reading and writing local SSD disk इत्यत्र पतति, slave redis इत्यस्य data इत्येतत् external shared nas storage इत्यत्र पतति ।
2. ततः statefulset विन्यासं रचयन्तु, द्वौ कन्टेनर्, एकं कंटेनरं मुख्य redis रूपेण स्थापयित्वा, hostpath इत्यत्र माउण्ट् कृत्वा, host name इत्यनेन सह directory रचयन्तु, rdb सञ्चिकां च संग्रहयन्तु अन्यः पात्रः दास redis इत्यस्य रूपेण कार्यं करोति, तथा च nas मार्गः होस्ट्-नाम्ना सह निर्देशिकां निर्मातुं rdb सञ्चिकां संग्रहीतुं च माउण्ट् भवति ।
3. redis तः data persistence parameter save समायोजयन्तु तथा च data download समयं लघु पैरामीटर् मध्ये समायोजयन्तु येन सुनिश्चितं भवति यत् अद्यतनं data rdb सञ्चिकायां यथाशीघ्रं संगृहीतं भवति।
4. प्रत्येकं pod scheduled अथवा restarted भवति तदा nas मध्ये संगृहीतं rdb सञ्चिकां hostpath मध्ये प्रतिलिख्य redis आरभत ।
नोटः- एतत् कृतं यत् मुख्य-रेडिस्-इत्यस्य व्यावसायिकदत्तांशस्य उच्च-प्रदर्शन-प्रक्रियाकरणं प्राप्तुं शक्यते, तथा च दास-रेडिस्-दत्तांशस्य स्थायित्वस्य उत्तरदायी भवति: 1. यदा मास्टर-पठन-लेखन-दत्तांशस्य IO अत्यधिकं भवति , the slave redis mounts nas इति दत्तांशस्य डाउनलोड् समयः अधिकः भविष्यति ।
विन्यासे त्रीणि सञ्चिकाः सन्ति: master redis विन्याससञ्चिका, slave redis विन्याससञ्चिका, तथा च एकः सरलः स्क्रिप्ट् यः निष्पादनभूमिकायाः आधारेण भिन्नानि कार्याणि करोति विशिष्टविन्यासः निम्नलिखितरूपेण अस्ति ।
redis-master:conf मुख्या redis विन्याससञ्चिका अस्ति स्मृतिः 256M, विन्यासपोर्ट् 6379, विन्यासगुप्तशब्दः redis#123, भण्डारणमार्गः च /data/redis इति ।
redis.conf: redis विन्याससञ्चिकातः, स्मृतिं 256M मध्ये विन्यस्य, पोर्ट् 6380 मध्ये विन्यस्य, गुप्तशब्दं विन्यस्य: redis#123, भण्डारणमार्गः /data/redis-2 अस्ति, तथा च तः समन्वयनीयं दत्तांशं विन्यस्यताम् port 6379, and adjust the storage time to यदि 60 सेकण्ड् मध्ये 10 दत्तांशपरिवर्तनानि सन्ति तर्हि भण्डारणं क्रियते ।
run.sh: मुख्यं कार्यं भूमिकां निर्धारयितुं होस्ट्-नाम्ना आधारेण निर्देशिकां निर्मातुं, ततः भण्डारणनिर्देशिकायाः सह मृदुतया सम्बद्धं कर्तुं च अस्ति । इदं सोपानं मुख्यतया प्रत्येकस्य सेवायाः redis दत्तांशं स्वकीयनिर्देशिकायां संग्रहीतुं भवति नूतनं redis रचयति समये नोड् इत्यत्र निर्देशिकाविग्रहं न जनयिष्यति ।
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