התחברות למכונת Redis

בדף הזה מוסבר איך להתחבר למופע Redis באמצעות Telnet ו-redis-cli. בנוסף, בדף הזה מוסבר איך להתחבר כשמשתמשים בתכונות כמו רפליקות לקריאה, AUTH והצפנה במעבר. בסיום, בדף הזה מופיעות הוראות להתחברות מסביבת Google Kubernetes Engine.

רשימת Google Cloud הסביבות ש-Memorystore for Redis תומך בהן זמינה במאמר בנושא סביבות נתמכות. חלק מהסביבות של serverless ש-Memorystore תומך בהן דורשות מחבר של חיבור לרשת (VPC) מאפליקציית serverless. פרטים נוספים זמינים במאמר בנושא דרישות של מחבר חיבור לרשת (VPC) מאפליקציית serverless.

התחברות למופע Redis ממכונה וירטואלית ב-Compute Engine באמצעות telnet

אפשר להתחבר למופע של Memorystore for Redis מכל מכונה וירטואלית ב-Compute Engine שמשתמשת ברשת המורשית של המופע עם כתובת IP נתמכת מסוג RFC 1918.

  1. אם אין לכם מכונה וירטואלית של Compute Engine שמשתמשת באותה רשת מורשית כמו המופע שלכם, אתם צריכים ליצור אחת כזו ולהתחבר אליה באמצעות SSH. כדי לעשות זאת, פועלים לפי השלבים במאמר יצירת מכונה וירטואלית של Linux ב-Compute Engine.

  2. משתמשים ב-apt-get כדי להתקין את telnet:

    sudo apt-get install telnet
    
  3. מהטרמינל, מתחברים באמצעות Telnet לכתובת ה-IP של המכונה. מחליפים את VARIABLES בערכים המתאימים.

    telnet INSTANCE_IP_ADDRESS 6379
    

    אם אפשר להתחבר למופע, הפקודה תחזיר את התוצאה הבאה:

    Trying INSTANCE_IP_ADDRESS…
    Connected to INSTANCE_IP_ADDRESS
    
  4. בסשן של 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.

  1. אם עדיין אין לכם מכונת VM ב-Compute Engine שמשתמשת ברשת המורשית עבור מופע Redis, אתם יכולים ליצור מכונה כזו ולהתחבר אליה באמצעות ההוראות שבמאמר יצירת מכונת VM ברשת משנה ספציפית.

  2. מריצים את הפקודה הבאה מטרמינל ה-SSH של Compute Engine כדי להתקין את redis-cli במכונה וירטואלית של Compute Engine:

    sudo apt-get install redis-tools
    
  3. מריצים את הפקודה הבאה בטרמינל של Compute Engine, ומחליפים את variables בערכים המתאימים.

    redis-cli -h redis-instance-ip-address
    

    התחברתם עכשיו למופע Redis באמצעות redis-cli.

  4. אחרי שתסיימו לבדוק את החיבור למופע Redis, מומלץ למחוק את המכונה הווירטואלית ב-Compute Engine שבה השתמשתם כדי להתחבר למופע Redis. כך תוכלו להימנע מחיובים בחשבון לחיוב ב-Cloud.

התחברות למכונת Redis שמשתמשת ב-AUTH

בקטע הזה מוסבר איך להתחבר למופע Redis שבו התכונה AUTH מופעלת.

  1. אם עדיין אין לכם מכונת VM ב-Compute Engine שמשתמשת באותה רשת מורשית כמו מופע Redis, אתם יכולים ליצור מכונת VM כזו ולהתחבר אליה באמצעות המדריך להתחלה מהירה בנושא שימוש במכונת VM של Linux.

  2. מריצים את הפקודה הבאה מטרמינל ה-SSH של Compute Engine כדי להתקין את redis-cli במכונה וירטואלית של Compute Engine:

    sudo apt-get install redis-tools
    
  3. קבלת מחרוזת ה-AUTH של המכונה

  4. מריצים את הפקודה הבאה כדי להשתמש ב-redis-cli לאימות ולחיבור למכונה, אחרי שמחליפים את variables בערכים המתאימים:

    redis-cli -h instance-ip-address -a auth-string
    

    או:

    redis-cli -h instance-ip-address
    AUTH auth-string
    
  5. מריצים את הפקודות SET ו-GET של Redis כדי לוודא שיצרתם חיבור מאומת למופע.

  6. אחרי שתסיימו לבדוק את החיבור למופע Redis, מומלץ למחוק את המכונה הווירטואלית ב-Compute Engine שבה השתמשתם כדי להתחבר למופע Redis. כך תוכלו להימנע מחיובים בחשבון לחיוב ב-Cloud.

התחברות למכונת Redis באמצעות נקודת הקצה לקריאה

אם במכונה שלכם מופעלת שכפול קריאה, אתם יכולים להתחבר לנקודת הקצה של הקריאה באמצעות ההוראות הבאות:

  1. אם עדיין אין לכם מכונה וירטואלית ב-Compute Engine שמשתמשת באותה רשת מורשית כמו מופע Redis, אתם יכולים ליצור מכונה וירטואלית ולהתחבר אליה באמצעות המדריך להתחלה מהירה לשימוש במכונה וירטואלית של Linux.

  2. התקנת telnet באמצעות apt-get:

    sudo apt-get install telnet
    
  3. כדי למצוא את כתובת ה-IP של נקודת הקצה לקריאה של המכונה, צופים בפרטי הרפליקה לקריאה של המכונה.

  4. במסוף, מריצים telnet לכתובת ה-IP של נקודת הקצה לקריאה של מופע Redis, ומחליפים את variables בערכים המתאימים.

    telnet read-endpoint-ip 6379
    

    אם הפקודה מסתיימת בלי שגיאות, היא תחזיר את התוצאה הבאה:

    Trying read-endpoint-ip…
    Connected to read-endpoint-ip
    
  5. בסשן של telnet, מזינים כמה פקודות Redis:

    צריך להזין את הפרטים הבאים:

    PING
    

    תוצאה:

    PONG
    

חיבור מאובטח למופע Redis באמצעות Stunnel ו-telnet

בקטע הזה מובאת דוגמה לאופן ההתחברות למופע Redis שבו מופעלת הצפנה במעבר באמצעות Stunnel.

  1. אם עדיין אין לכם מכונת Redis שמופעל בה הצפנה במעבר, אתם יכולים ליצור אחת לפי ההוראות במאמר יצירת מכונת Redis עם הצפנה במעבר.

  2. אם עדיין אין לכם מכונה וירטואלית ב-Compute Engine שמשתמשת באותה רשת מורשית כמו מופע Redis מהשלב הקודם, אתם יכולים ליצור מכונה וירטואלית ולהתחבר אליה באמצעות המדריך להתחלה מהירה לשימוש במכונת VM של Linux.

    1. מריצים את הפקודות הבאות כדי להתקין את הכלים הנדרשים למדריך הזה:

      sudo apt-get install stunnel4
      
      sudo apt-get install telnet
      
  3. מגדירים את המכונה הווירטואלית ב-Compute Engine לשימוש ב-Stunnel:

    1. כדי ליצור קובץ חדש שבו אפשר להזין את רשות האישורים (CA), מריצים את הפקודה הבאה:

      sudo vim /tmp/server_ca.pem
      
    2. כדי לראות את רשויות האישורים של מופע Redis, מריצים את הפקודה הבאה בטרמינל הרגיל שבו משתמשים לניהול משאביGoogle Cloud (לא בטרמינל של Compute Engine):

      gcloud redis instances describe instance-id --region=region
      

      יכולות להיות עד שלוש רשויות אישורים.

    3. מעתיקים את כל רשויות האישורים שמוצגות, כולל השורה -----BEGIN CERTIFICATE----- והשורות -----END CERTIFICATE-----, ומדביקים ושומרים אותן בקובץ server_ca.pem שיצרתם קודם.

    4. כדי ליצור קובץ חדש שבו אפשר להזין את פרטי התצורה של Stunnel, מריצים את הפקודה הבאה:

      sudo vim /etc/stunnel/redis-client.conf
      

      מדביקים את הטקסט הבא בקובץ, ומחליפים את redis-instance-ip בכתובת ה-IP של מופע Redis:

      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
      

    5. מפעילים מחדש את Stunnel על ידי הרצת הפקודות הבאות:

      sudo systemctl restart stunnel4
      
  4. כדי להתחבר למכונת Redis באמצעות Telnet, מריצים את הפקודה הבאה:

    telnet localhost 6378
    
  5. בסשן Telnet, שולחים פינג למכונת Redis:

    צריך להזין את הפרטים הבאים:

    PING
    

    תוצאה:

    PONG
    

התחברות ממחשב מקומי באמצעות העברת יציאות

במהלך הפיתוח, יכול להיות שתרצו להתחבר למופע Redis מהמחשב המקומי. כדי לעשות זאת, צריך ליצור מכונה של Compute Engine שתשמש להעברת יציאות למופע Redis.

  1. מריצים את הפקודה הבאה כדי ליצור מכונה של Compute Engine:

    gcloud compute instances create COMPUTE_VM_NAME --machine-type=f1-micro --zone=ZONE
    

    כאשר:

    • COMPUTE_VM_NAME הוא השם שאתם מקצים למכונת ה-VM של Compute Engine.
    • ZONE הוא האזור שבו רוצים להקצות את המכונה הווירטואלית.

    הפקודה הזו יוצרת מכונה וירטואלית ב-Compute Engine עם f1-micro סוג המכונה כדי לחסוך בעלויות. אפשר לבחור סוגים אחרים של מכונות.

  2. פותחים טרמינל חדש במחשב המקומי.

  3. כדי ליצור מנהרת SSH שמעבירה תעבורה דרך המכונה הווירטואלית ב-Compute Engine, מריצים את הפקודה הבאה:

    gcloud compute ssh COMPUTE_VM_NAME --zone=ZONE -- -N -L 6379:REDIS_INSTANCE_IP_ADDRESS:6379
    

    כאשר:

    • COMPUTE_VM_NAME הוא השם של מכונת ה-VM ב-Compute Engine.
    • ZONE הוא אותו תחום שבו נמצאת המכונה הווירטואלית ב-Compute Engine.
    • REDIS_INSTANCE_IP_ADDRESS היא כתובת ה-IP של מופע Redis.
  4. כדי לבדוק את החיבור, פותחים חלון טרמינל חדש ומריצים את הפקודה הבאה:

    redis-cli ping
    

    אם הפעולה מתבצעת כראוי, התוצאה שמתקבלת היא:

    PONG
    

    עכשיו אתם מחוברים למופע Redis, ואתם יכולים לשלוח פקודות למופע Redis באמצעות מנהרת ה-SSH הפתוחה הזו. אם עדיין לא התקנתם את redis-cli, תצטרכו להתקין אותו כדי להריץ את הפקודה הזו.

  5. מנהרת ה-SSH נשארת פתוחה כל עוד חלון הטרמינל עם חיבור מנהרת ה-SSH פועל.

חיבור למופע Redis מאשכול Google Kubernetes Engine

כדי לבדוק אם באשכול שלכם נעשה שימוש בכינוי IP, משתמשים ב-gcloud container clusters describe.

אתם יכולים להתחבר למופע Redis מאשכולות Google Kubernetes Engine שמשתמשים באותה רשת מורשית כמו מופע Redis.

התחברות מ-Pod שמריץ מעטפת bash

  1. נכנסים לדף GKE במסוף Google Cloud .
    GKE
  2. לוחצים על אשכול GKE שרוצים להתחבר ממנו. אם עדיין אין לכם אשכול, יוצרים אשכול עם כינויי IP מופעלים. הוראות ליצירת אשכול עם כינויי IP מופעלים מופיעות במאמר יצירת אשכול המותאם ל-VPC.
  3. לוחצים על הלחצן Connect (התחברות) משמאל לשם האשכול, ואז לוחצים על הלחצן Run in Cloud Shell (הפעלה ב-Cloud Shell) בחלון שמופיע.
  4. מגדירים גישה לשורת הפקודה 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
  5. אם הגרסה של האשכול היא 1.8 ואילך והאפשרות 'כינויי IP' מופעלת, מדלגים על השלב הזה. אם האשכול שלכם הוא מגרסה 1.7 או מגרסה מוקדמת יותר, או אם באשכול מגרסה 1.8 או מגרסה מאוחרת יותר לא מופעלים כינויי IP, צריך לבצע את השלבים הבאים כדי לעקוף את הבעיה לפני שמנסים להתחבר למופע: מידע נוסף על כינויי IP, כולל איך ליצור אשכול כשההגדרה הזו מופעלת, זמין במאמר יצירת אשכול המותאם ל-VPC.
  6. כדי להתחבר למעטפת bash, משתמשים בפקודה הבאה:
    kubectl run -i --tty busybox --image=busybox -- sh
  7. מתחברים למופע Redis באמצעות Telnet, באמצעות כתובת המארח ומספר היציאה:
    telnet HOST-IP PORT
  8. מזינים פקודת Redis בסיסית כדי לאמת את החיבור:
    PING
    +PONG
  9. כדי לסגור את חיבור ה-Telnet, מקישים על Control+C (או על Command+C ב-Mac). כדי לצאת ממעטפת bash בתא, מזינים return. אם סיימתם ואין לכם יותר צורך להתחבר ל-Redis, מריצים את הפקודה הבאה מהספרייה /k8s-custom-iptables/:
    ./uninstall.sh

התחברות למופע Redis מ-Pod של Google Kubernetes Engine

לפני שמתחילים, צריך אשכול GKE. אם עדיין אין לכם אשכול, צריך ליצור אשכול עם כינויי IP מופעלים. הוראות ליצירת אשכול המותאם ל-VPC עם כינויי IP מופיעות במאמר יצירת אשכול המותאם ל-VPC.

  1. לוחצים על הלחצן Activate Cloud Shell בשלב הזה מפעילים את Cloud Shell. בפינה השמאלית העליונה של המסוף.
  2. מגדירים גישה לשורת הפקודה 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
  3. אם הגרסה של האשכול היא 1.8 ואילך והאפשרות 'כינויי IP' מופעלת, מדלגים על השלב הזה. אם האשכול שלכם הוא מגרסה 1.7 או מגרסה מוקדמת יותר, או אם באשכול מגרסה 1.8 או מגרסה מאוחרת יותר לא מופעלים כינויי IP, צריך לבצע את השלבים הבאים כדי לעקוף את הבעיה לפני שמנסים להתחבר למופע: מידע נוסף על כינויי IP, כולל איך ליצור אשכול כשההגדרה הזו מופעלת, זמין במאמר יצירת אשכול המותאם ל-VPC.
  4. משתמשים בפקודה הבאה כדי להפעיל פוד של Redis עם redis-cli:
    kubectl run -i --tty redisbox --image=redis:7.2 -- sh
  5. מריצים את הפקודה redis-cli ומחליפים את HOST-IP בכתובת ה-IP של המארח של מופע Redis:
    redis-cli -h HOST-IP info
  6. אופציונלי: מריצים שוב פקודת Redis benchmark, ומחליפים את 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
  7. כדי לצאת מ-Redis pod, מזינים return. אם סיימתם ואין לכם יותר צורך להתחבר ל-Redis, מריצים את הפקודה הבאה מהספרייה /k8s-custom-iptables/:
    ./uninstall.sh

המאמרים הבאים

מתחברים למופע Redis באמצעות אפליקציה לדוגמה שפועלת ב: