בדף הזה מוסבר איך להתחבר למופע Redis באמצעות Telnet ו-redis-cli. בנוסף, בדף הזה מוסבר איך להתחבר כשמשתמשים בתכונות כמו רפליקות לקריאה בלבד, AUTH והצפנה במעבר.
בסיום, בדף הזה מופיעות הוראות להתחברות מסביבת Google Kubernetes Engine.
רשימה של Google Cloud סביבות שנתמכות ב-Memorystore for Redis זמינה במאמר בנושא סביבות נתמכות. בחלק מהסביבות ללא שרת (serverless) שנתמכות ב-Memorystore, נדרש מחבר של גישה ל-VPC ללא שרת. לפרטים נוספים, ראו דרישות למחבר של גישה ל-VPC ללא שרת.
התחברות למופע Redis ממכונה וירטואלית ב-Compute Engine באמצעות telnet
אתם יכולים להתחבר למכונה של Memorystore for Redis מכל מכונה וירטואלית של Compute Engine שמשתמשת ברשת המורשית של המכונה עם כתובת IP נתמכת מסוג RFC 1918.
אם אין לכם מכונה וירטואלית ב-Compute Engine שמשתמשת באותה רשת מורשית כמו המכונה שלכם, אתם צריכים ליצור מכונה כזו ולהתחבר אליה באמצעות SSH. כדי לעשות זאת, פועלים לפי השלבים שמפורטים במאמר יצירת מכונה וירטואלית של Linux ב-Compute Engine.
משתמשים ב-
apt-getכדי להתקין אתtelnet:sudo apt-get install telnetמהטרמינל, מפעילים telnet לכתובת ה-IP של המכונה. מחליפים את VARIABLES בערכים המתאימים.
telnet INSTANCE_IP_ADDRESS 6379
אם אתם מצליחים להתחבר למופע, הפקודה מחזירה את התוצאה הבאה:
Trying INSTANCE_IP_ADDRESS… Connected to INSTANCE_IP_ADDRESS
בסשן telnet, מזינים כמה פקודות Redis:
צריך להזין את הפרטים הבאים:
PING
תוצאה:
PONG
Enter
SET HELLO WORLD
תוצאה:
+OK
צריך להזין את הפרטים הבאים:
GET HELLO
תוצאה:
$5 WORLD
התחברות למכונה של Redis ממכונה וירטואלית של Compute Engine באמצעות redis-cli
אתם יכולים להתחבר למכונה של Redis מכל מכונה וירטואלית של Compute Engine שמשתמשת ברשת המורשית של המכונה של Redis עם כתובת IP נתמכת מסוג RFC 1918.
אם אין לכם מכונת VM ב-Compute Engine שמשתמשת ברשת המורשית של מכונת Redis, אתם צריכים ליצור מכונה כזו ולהתחבר אליה לפי ההוראות במאמר יצירת מכונת VM ברשת משנה ספציפית.
מתקינים את
redis-cliבמכונה הווירטואלית של Compute Engine באמצעות הרצת הפקודה הבאה מהטרמינל של Compute Engine SSH:sudo apt-get install redis-tools
מריצים את הפקודה הבאה במסוף של Compute Engine, ומחליפים את variables בערכים המתאימים.
redis-cli -h redis-instance-ip-address
עכשיו אתם מחוברים למכונה של Redis באמצעות
redis-cli.אחרי שמסיימים לבדוק את החיבור למופע Redis, מומלץ למחוק את המכונה הווירטואלית ב-Compute Engine ששימשה לחיבור למופע Redis. כך תוכלו להימנע מחיובים בחשבון לחיוב ב-Cloud.
התחברות למכונה של Redis שמשתמשת ב-AUTH
בקטע הזה מוסבר איך להתחבר למכונה של Redis שהתכונה AUTH מופעלת בה.
אם עדיין אין לכם מכונת VM ב-Compute Engine שמשתמשת באותה רשת מורשית כמו מופע Redis, אתם יכולים ליצור מכונה כזו ולהתחבר אליה באמצעות המדריך להתחלה מהירה בנושא שימוש במכונת VM של Linux.
מתקינים את
redis-cliבמכונה וירטואלית ב-Compute Engine על ידי הרצת הפקודה הבאה מטרמינל ה-SSH של Compute Engine:sudo apt-get install redis-tools
משיגים את מחרוזת האימות של המכונה
מריצים את הפקודה הבאה כדי להשתמש ב-
redis-cliלאימות ולהתחברות למכונה, ומחליפים את variables בערכים המתאימים:redis-cli -h instance-ip-address -a auth-string
או:
redis-cli -h instance-ip-address AUTH auth-string
מריצים את הפקודות
SETו-GETשל Redis כדי לוודא שיצרתם חיבור מאומת למופע.אחרי שסיימתם לבדוק את החיבור למכונה של Redis, כדאי למחוק את המכונה הווירטואלית של Compute Engine שבה השתמשתם כדי להתחבר למכונה של Redis. כך תוכלו להימנע מצבירת חיובים בחשבון לחיוב ב-Cloud.
התחברות למכונת Redis באמצעות נקודת הקצה לקריאה
אם במכונה מופעלות רפליקות לקריאה בלבד, אתם יכולים להתחבר לנקודת הקצה לקריאה לפי ההוראות הבאות:
אם עדיין אין לכם מכונה וירטואלית ב-Compute Engine שמשתמשת באותה רשת מורשית כמו מופע Redis, אתם יכולים ליצור מכונה וירטואלית כזו ולהתחבר אליה באמצעות המדריך להתחלה מהירה לשימוש במכונה וירטואלית של Linux.
התקנת
telnetבאמצעותapt-get:sudo apt-get install telnetכדי למצוא את כתובת ה-IP של נקודת הקצה לקריאה של המכונה, צפו במידע על הרפליקה לקריאה בלבד של המכונה.
מהטרמינל, מבצעים telnet לכתובת ה-IP של נקודת הקצה לקריאה של מכונת Redis, ומחליפים את variables בערכים המתאימים.
telnet read-endpoint-ip 6379
אם הפעולה הצליחה, הפקודה תחזיר את התוצאה הבאה:
Trying read-endpoint-ip… Connected to read-endpoint-ip
בסשן telnet, מזינים כמה פקודות Redis:
צריך להזין את הפרטים הבאים:
PING
תוצאה:
PONG
חיבור מאובטח למכונה של Redis באמצעות Stunnel ו-telnet
בקטע הזה מובאת דוגמה לאופן שבו אפשר להתחבר למופע Redis שבו מופעלת הצפנה במעבר באמצעות Stunnel. Stunnel הוא שרת proxy שמוסיף פונקציונליות של הצפנת Transport Layer Security (TLS) ללקוחות ולשרתים בלי לשנות את הקוד שלהם. מידע נוסף מופיע במאמרי העזרה של Stunnel.
אם אין לכם מכונה של Redis שמופעלת בה הצפנה במעבר, אתם צריכים ליצור אחת. מידע נוסף זמין במאמר בנושא יצירת מופע Redis עם הצפנה במעבר.
אם אין לכם מכונה וירטואלית ב-Compute Engine שמשתמשת באותה רשת מורשית כמו מכונת Redis מהשלב הקודם, אתם צריכים ליצור מכונה כזו ולהתחבר אליה. מידע נוסף זמין במאמר יצירת מכונות וירטואלית של Linux ב-Compute Engine.
כדי להתקין את הכלים הנדרשים לתהליך, מריצים את הפקודות הבאות:
sudo apt-get install stunnel4
sudo apt-get install telnet
שאר השלבים בתהליך הזה מתרחשים במסוף ה-SSH של המכונה הווירטואלית ב-Compute Engine שיצרתם והתחברתם אליה, אלא אם צוין אחרת.
מגדירים את המכונה הווירטואלית ב-Compute Engine לשימוש ב-Stunnel:
כדי ליצור קובץ עבור רשות האישורים (CA), מריצים את הפקודה הבאה:
sudo vim /tmp/server_ca.pem
כדי לראות את רשויות האישורים של מכונת Redis, מריצים את הפקודה הבאה בטרמינל הרגיל שבו אתם משתמשים לניהול המשאבים ב- Google Cloud (לא הטרמינל של Compute Engine):
gcloud redis instances describe INSTANCE_ID --region=REGION
מחליפים את הפרטים הבאים:
- INSTANCE_ID: המזהה של מכונת Redis
- REGION: האזור שבו נמצאת המכונה
יכולים להיות עד שלושה רשויות אישורים.
מעתיקים את כל רשויות האישורים, כולל השורה
-----BEGIN CERTIFICATE-----והשורה
-----END CERTIFICATE-----, מדביקים את התוכן בקובץserver_ca.pemשיצרתם ושומרים אותו.חשוב לוודא שהטקסט של רשות האישורים מיושר לשמאל באופן מלא, ושאין רווחים לבנים מובילים באף שורה של רשות האישורים.
מריצים את הפקודה הבאה כדי ליצור קובץ לפרטי ההגדרות של Stunnel:
sudo vim /etc/stunnel/redis-client.conf
מדביקים את הטקסט הבא בקובץ, ומחליפים את REDIS_INSTANCE_IP בכתובת ה-IP של המכונה:
output=/tmp/stunnel.log CAfile=/tmp/server_ca.pem client=yes pid=/var/run/stunnel.pid verifyChain=yes sslVersion=TLSv1.2 [redis] accept=127.0.0.1:6378 connect=REDIS_INSTANCE_IP:6378
מפעילים את Stunnel על ידי הרצת הפקודה הבאה:
sudo stunnel /etc/stunnel/redis-client.conf
מוודאים ש-Stunnel פועל:
ps aux | grep stunnel
מפעילים מחדש את Stunnel באמצעות הפקודה הבאה:
sudo systemctl restart stunnel4
כדי לוודא שההפעלה מחדש בוצעה בהצלחה, אפשר להשתמש בפקודה
ps aux | grep stunnelלפני ואחרי ההפעלה מחדש של Stunnel. אם מזהה התהליך של Stunell שמוצג בפקודהps aux | grep stunnelשונה, סימן שההפעלה מחדש של Stunell הצליחה.
כדי להתחבר למכונה של Redis באמצעות telnet, מריצים את הפקודה הבאה:
telnet localhost 6378
בסשן telnet, בודקים את החיבור.
אופציונלי: אם במכונה שלכם מופעל Redis AUTH, צריך לבצע אימות לפני בדיקת החיבור.
מריצים את הפקודה הבאה:
AUTH AUTH_STRING
מחליפים את AUTH_STRING במחרוזת האימות של המכונה.
תוצאה:
OK
מריצים את הפקודה הבאה:
PING
תוצאה:
PONG
אופציונלי: כחלופה ל-telnet, אפשר להתחבר באמצעות
redis-cliדרך יציאת Stunnel המקומית ולהעביר את מחרוזת ה-AUTH.מריצים את הפקודה הבאה:
redis-cli -h 127.0.0.1 -p 6378 -a AUTH_STRING
התחברות ממחשב מקומי באמצעות העברת יציאות
במהלך הפיתוח, יכול להיות שיהיה לכם נוח להתחבר למכונה של Redis מהמחשב המקומי. כדי לעשות את זה, צריך ליצור מכונה של Compute Engine שתשמש להעברה ליציאה אחרת במכונה של Redis.
מריצים את הפקודה הבאה כדי ליצור מכונה של Compute Engine:
gcloud compute instances create COMPUTE_VM_NAME --machine-type=f1-micro --zone=ZONE
כאשר:
- COMPUTE_VM_NAME הוא השם שאתם מקצים למכונה הווירטואלית ב-Compute Engine.
- ZONE הוא האזור שבו רוצים להקצות את המכונה הווירטואלית.
הפקודה הזו יוצרת מכונה וירטואלית ב-Compute Engine עם סוג המכונה
f1-microכדי לחסוך בעלויות. אפשר לבחור סוגי מכונות אחרים.פותחים טרמינל חדש במחשב המקומי.
כדי ליצור מנהרת SSH שמעבירה את התנועה ליציאה אחרת דרך המכונה הווירטואלית של Compute Engine, מריצים את הפקודה הבאה:
gcloud compute ssh COMPUTE_VM_NAME --zone=ZONE -- -N -L 6379:REDIS_INSTANCE_IP_ADDRESS:6379
כאשר:
- COMPUTE_VM_NAME הוא השם של המכונה הווירטואלית ב-Compute Engine.
- ZONE הוא אותו אזור שבו נמצאת המכונה הווירטואלית של Compute Engine.
- REDIS_INSTANCE_IP_ADDRESS היא כתובת ה-IP של מכונת Redis.
כדי לבדוק את החיבור, פותחים חלון טרמינל חדש ומריצים את הפקודה הבאה:
redis-cli ping
אם הכל פועל כמו שצריך, התוצאה צריכה להיות:
PONG
עכשיו אתם מחוברים למופע Redis, ואתם יכולים לשלוח פקודות למופע Redis באמצעות מנהרת ה-SSH הפתוחה הזו. אם עדיין לא התקנתם את
redis-cli, תצטרכו להתקין אותו כדי להריץ את הפקודה הזו.מנהרת ה-SSH נשארת פתוחה כל עוד חלון הטרמינל עם החיבור למנהרת ה-SSH פועל.
התחברות למופע Redis מאשכול Google Kubernetes Engine
כדי לבדוק אם האשכול משתמש בכינוי IP, משתמשים ב-gcloud container clusters describe.
אפשר להתחבר למופע Redis מאשכולות Google Kubernetes Engine שמשתמשים באותה רשת מורשית כמו מופע Redis.
התחברות מ-Pod שמריץ מעטפת bash
- נכנסים לדף GKE במסוף Google Cloud .
GKE - לוחצים על אשכול GKE שממנו רוצים להתחבר. אם עדיין אין לכם אשכול, אתם צריכים ליצור אשכול עם כתובות IP חלופיות. במאמר יצירת אשכול המותאם ל-VPC מוסבר איך יוצרים אשכול עם כתובות IP חלופיות.
- לוחצים על הלחצן Connect (התחברות) משמאל לשם האשכול, ואז לוחצים על הלחצן Run in Cloud Shell (הפעלה ב-Cloud Shell) בחלון שמופיע.
- מגדירים גישה לשורת הפקודה
kubectlעל ידי הפעלת הפקודה הבאה:gcloud container clusters get-credentials CLUSTER_NAME --zone=CLUSTER_ZONE --project=PROJECT_ID
-
CLUSTER_NAMEהוא שם האשכול. -
CLUSTER_ZONEהוא האזור שבו נמצא האשכול. האזור חייב להיות גם האזור שבו נמצא המכונה של Redis. -
PROJECT_IDהוא הפרויקט שבו נמצאים האשכול והמכונות של Redis.
kubeconfig generated for CLUSTER_NAME -
- אם האשכול שלכם הוא גרסה 1.8 ואילך והאפשרות 'כינויי IP' מופעלת בו, אפשר לדלג על השלב הזה. אם גרסת האשכול היא 1.7 או גרסה ישנה יותר, או אם באשכול בגרסה 1.8 או גרסה חדשה יותר לא מופעלים כינויי IP, צריך לבצע את השלבים הבאים כדי לעקוף את הבעיה לפני שמנסים להתחבר למכונה: מידע נוסף על כתובות IP חלופיות, כולל איך ליצור אשכול כשההגדרה הזו מופעלת, זמין במאמר יצירת אשכול המותאם ל-VPC.
- כדי להתחבר למעטפת Bash, משתמשים בפקודה הבאה:
kubectl run -i --tty busybox --image=busybox -- sh
- מפעילים את Telnet למכונה של Redis באמצעות כתובת המארח ומספר היציאה:
telnet HOST-IP PORT
- מזינים פקודת Redis בסיסית כדי לאמת את החיבור:
PING +PONG
- כדי לסגור את חיבור ה-Telnet, מקישים על Control+C (או על Command+C ב-Mac). כדי לצאת ממעטפת ה-bash בפוד, מקישים על Return. אם סיימתם ואתם לא צריכים יותר להתחבר ל-Redis, מריצים את הפקודה הבאה מהספרייה
/k8s-custom-iptables/:./uninstall.sh
התחברות למכונה של Redis מ-Pod של Google Kubernetes Engine
לפני שמתחילים, צריך אשכול GKE. אם עדיין אין לכם אשכול, צרו אשכול עם כתובות IP חלופיות מופעלות. הוראות ליצירת אשכול עם כינויי IP מופעלים מופיעות במאמר יצירת אשכול המותאם ל-VPC.
- בפינה הימנית העליונה של המסוף, לוחצים על הלחצן Activate Cloud Shell
. - מריצים את הפקודה הבאה כדי להגדיר גישה לשורת הפקודה של
kubectl:gcloud container clusters get-credentials CLUSTER_NAME --zone CLUSTER_ZONE --project PROJECT_ID
-
CLUSTER_NAMEהוא שם האשכול. -
CLUSTER_ZONEהוא האזור שבו נמצא האשכול. האזור חייב להיות גם האזור שבו נמצא המכונה של Redis. -
PROJECT_IDהוא הפרויקט שבו נמצאים האשכול והמכונות של Redis.
kubeconfig generated for CLUSTER_NAME -
- אם האשכול שלכם הוא גרסה 1.8 ואילך והאפשרות 'כינויי IP' מופעלת בו, אפשר לדלג על השלב הזה. אם גרסת האשכול היא 1.7 או גרסה ישנה יותר, או אם באשכול בגרסה 1.8 או גרסה חדשה יותר לא מופעלים כינויי IP, צריך לבצע את השלבים הבאים כדי לעקוף את הבעיה לפני שמנסים להתחבר למכונה: מידע נוסף על כינויי IP, כולל איך ליצור אשכול כשההגדרה הזו מופעלת, זמין במאמר יצירת אשכול המותאם ל-VPC.
- משתמשים בפקודה הבאה כדי להפעיל Redis pod עם
redis-cli:kubectl run -i --tty redisbox --image=redis:7.2 -- sh
- מריצים פקודת
redis-cli, ומחליפים אתHOST-IPבכתובת ה-IP של המארח של מכונת Redis:redis-cli -h HOST-IP info
- אם רוצים, מריצים פקודת בדיקת ביצועים של Redis, ומחליפים שוב את
HOST-IPבכתובת ה-IP של המארח של מכונת Redis:redis-benchmark -c 100 -n 100000 -d 1024 -r 100000 -t PING,SET,GET,INCR,LPUSH,RPUSH,LPOP,RPOP,SADD,SPOP,MSET -h HOST-IP -q
- כדי לצאת מה-Pod של Redis, מזינים
return. אם סיימתם ואתם לא צריכים יותר להתחבר ל-Redis, הריצו את הפקודה הבאה מהספרייה/k8s-custom-iptables/:./uninstall.sh
המאמרים הבאים
התחברות למכונה של Redis באמצעות אפליקציה לדוגמה שפועלת ב:
- Compute Engine
- GKE
- Cloud Run
- סביבת ברירת המחדל ב-App Engine
- סביבה גמישה ב-App Engine
- פונקציות Cloud Run