פיתוח באמצעות Cloud Shell & Cloud Code

1. סקירה כללית

‫Cloud Shell היא סביבת פיתוח ותפעול אונליין שאפשר לגשת אליה מכל מקום באמצעות הדפדפן. אתם יכולים לנהל את המשאבים שלכם באמצעות מסוף אונליין שנטענו בו מראש כלי עזר כמו כלי שורת הפקודה של Google Cloud‏ (gcloud),‏ kubectl ועוד. אפשר גם לפתח, לבנות, לנפות באגים ולפרוס את האפליקציות מבוססות-הענן באמצעות Cloud Shell Editor אונליין

בשיעור ה-Lab הזה תעבדו עם Cloud Shell ו-Cloud Shell Editor, תיצרו ותפרסו אפליקציות מבוססות-קונטיינרים ותבדקו אותן באמצעות Cloud Code באמולטורים מקומיים ובשירותים האמיתיים.

מה תלמדו

  • ניווט והיכרות עם התכונות העיקריות של Cloud Shell
  • תרגול עם דפוסי שימוש שונים ב-Cloud Shell
  • התאמה אישית של סביבת Cloud Shell לשימוש מתקדם
  • הסבר על האפשרויות והתכונות של Cloud Code
  • פרטים על Cloud Code לאפליקציות Kubernetes
  • שימוש באמולטורים מקומיים כמו Minikube

דרישות מוקדמות

  • תצטרכו פרויקט GCP עם הרשאות עריכה, חשבון GCP וגישה ל-Cloud Shell
  • כדי לבצע את החלקים האופציונליים, תצטרכו אמולטור טרמינל ו-Google Cloud SDK מותקנים.

2. הגדרה ודרישות

הגדרת סביבה בקצב עצמי

  1. נכנסים ל-מסוף Google Cloud ויוצרים פרויקט חדש או משתמשים בפרויקט קיים. אם עדיין אין לכם חשבון Gmail או Google Workspace, אתם צריכים ליצור חשבון.

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • שם הפרויקט הוא השם המוצג של הפרויקט הזה למשתתפים. זו מחרוזת תווים שלא נמצאת בשימוש ב-Google APIs. אפשר לעדכן את המיקום הזה בכל שלב.
  • מזהה הפרויקט הוא ייחודי לכל הפרויקטים ב-Google Cloud ואי אפשר לשנות אותו אחרי שהוא מוגדר. מסוף Cloud יוצר באופן אוטומטי מחרוזת ייחודית, ובדרך כלל לא צריך לדעת מה היא. ברוב ה-Codelabs, תצטרכו להפנות למזהה הפרויקט (בדרך כלל הוא מסומן כ-PROJECT_ID). אם אתם לא אוהבים את המזהה שנוצר, אתם יכולים ליצור מזהה אקראי אחר. אפשר גם לנסות שם משתמש משלכם ולבדוק אם הוא זמין. אי אפשר לשנות את ההגדרה הזו אחרי השלב הזה, והיא תישאר כזו למשך הפרויקט.
  • לידיעתכם, יש ערך שלישי, מספר פרויקט, שחלק מממשקי ה-API משתמשים בו. במאמרי העזרה מפורט מידע נוסף על שלושת הערכים האלה.
  1. בשלב הבא, תצטרכו להפעיל את החיוב במסוף Cloud כדי להשתמש במשאבי Cloud או בממשקי API של Cloud. העלות של התרגול הזה לא אמורה להיות גבוהה, ואולי אפילו לא תצטרכו לשלם בכלל. כדי להשבית את המשאבים ולא לחייב אתכם מעבר למדריך הזה, אתם יכולים למחוק את המשאבים שיצרתם או למחוק את כל הפרויקט. משתמשים חדשים ב-Google Cloud זכאים לתוכנית תקופת ניסיון בחינם בשווי 300$.

3. עבודה עם טרמינל Cloud Shell

בקטע הזה תלמדו על מסוף Cloud Shell, איך לנווט בממשק המשתמש, איך להשתמש בתכונות שלו ואיך לבדוק את אפשרויות ההגדרה השונות. בנוסף, תלמדו על דרכים שונות להשתמש בו כדי לשפר את הפרודוקטיביות.

ב-Cloud Shell יש שני כלים עיקריים: Cloud Shell Terminal ו-Cloud Shell Editor. בשיעור ה-Lab הזה, המונחים Cloud Shell Terminal ו-Cloud Shell ישמשו לסירוגין, אבל תמיד נתייחס ל-Editor כ-Cloud Shell Editor כדי להבחין בבירור בין אמולטור הטרמינל לבין סביבת הפיתוח המשולבת (IDE).

‫Cloud Shell הוא Shell מבוסס-ענן שפועל באופן מלא, ונבנה על בסיס מכונת Linux זמנית מבוססת-Debian של Google Compute Engine, שתמיד זמינה לשימוש. הוא מגיע עם Google Cloud SDK מותקן וכמה כלים רלוונטיים כמו git, ‏ kubectl, ‏ kubectx, ‏ curl, ‏ python3, ‏ tmux...

הספרייה $HOME נשמרת ב-Cloud Storage על ידי Google Cloud ומצורפת אוטומטית בכל פעם שמכונת Cloud Shell מופעלת, כך שלא תאבדו מידע ששמרתם בה גם אם מכונת Cloud Shell נסגרת. המשמעות היא שאם תפעילו שוב את Cloud Shell, ספריית $HOME וכל התאמה אישית שביצעתם בה יהיו זמינות לשימוש.

הפעלת Cloud Shell

  1. עוברים אל console.cloud.google.com ואם עדיין לא נכנסתם למסוף GCP, מזינים את פרטי הכניסה לחשבון Google. יוצג לכם ממשק המשתמש הראשי של מסוף Google Cloud Platform.
  2. בוחרים את מזהה הפרויקט ב-GCP שבו תעבדו בסרגל התפריטים של Cloud Console:

a78258af94ed9ec3.png

  1. מחפשים את הלחצן להפעלת Cloud Shell בצד השמאלי של סרגל התפריטים, לצד הדמות שמייצגת את החשבון:

5b4246f45b173ff4.png

  1. לוחצים על הסמל של Cloud Shell. הטרמינל של Cloud Shell ייפתח בחלונית חדשה ממש מתחת לממשק המשתמש של מסוף GCP:

8495f27a3ed0f05.png

בחלונית הזו יש את מה שנקרא טרמינל Cloud Shell.

  1. עוברים לטרמינל Cloud Shell ורואים שאחרי שבחרתם את מזהה פרויקט GCP המתאים במסוף GCP, מערכת Cloud Shell יודעת על כך ולא צריך לציין אותו שוב:
echo $GOOGLE_CLOUD_PROJECT

יוצג פלט של מזהה הפרויקט ב-GCP, שמוצג גם בהנחיה של Cloud Shell.

מעבר בין כלים

ב-Cloud Shell יש כמה כלים ואפשרויות הגדרה. בודקים אותם באמצעות האפשרויות שזמינות בתפריט Cloud Shell:

595834af08265e5c.png

  1. לוחצים על הלחצן 67bd0e39332a8438.png בסרגל כדי להגדיל את טרמינל Cloud Shell ולתפוס את כל השטח בכרטיסייה בדפדפן:

1197e3e9a36bc7aa.png

  1. ‫Cloud Shell מוגדל למקסימום ומשתלט על כל השטח של כרטיסיית הדפדפן:

ecb227a1d39b8021.png

  1. לוחצים עליו שוב. השטח בכרטיסיית הדפדפן יחזור להיות משותף ל-Cloud Console ול-Cloud Shell.

פתיחת כרטיסיות חדשות

במסוף Cloud Shell אפשר לפתוח כמה כרטיסיות שרוצים.

  1. לוחצים על הלחצן הבא ופותחים כרטיסייה חדשה.

e5757f88b64c7f5.png

  1. עכשיו סוגרים את הכרטיסייה החדשה בלחיצה על ה-X שליד שם הכרטיסייה או בהקלדת exit במעטפת המתאימה:

8828238e04a14a20.png

פתיחת חלון חדש

פתיחת Cloud Shell בחלון דפדפן חדש מאפשרת לכם להציג את Cloud Console בחלון אחד ואת Cloud Shell בחלון אחר.

  1. לוחצים על הכפתור הבא ורואים איך Cloud Shell נפתח בכרטיסייה חדשה בדפדפן:

bd407e51ae78d9fe.png

  1. שימו לב: עכשיו יש ב-Cloud Shell את אותן אפשרויות בסרגל הכלים, אבל המראה שלהן קצת שונה:

4bce4507ce34a695.png

  1. חשוב להישאר בכרטיסייה החדשה בדפדפן לאורך הקטעים הבאים.

העברת סשנים באמצעות Tmux

‫Cloud Shell כולל את tmux. ‫Tmux הוא כלי פופולרי מאוד לריבוב טרמינלים, בדומה ל-GNU Screen. השילוב עם tmux מאפשר ל-Cloud Shell לשמור את ההפעלה שלכם בכל מקום שבו אתם נמצאים.

בשלבים הבאים תתרגלו את המושג הזה כדי להבין טוב יותר את התכונה.

הזזת הטרמינל של Cloud Shell

  1. בכרטיסייה של Cloud Shell שפתחתם, מקלידים את הפקודה top:

bdd80a3fdcc6c7db.png

הפקודה top מספקת תצוגה בזמן אמת של התהליכים שפועלים בטרמינל של Cloud Shell. תשתמשו בו כדי להמחיש את התמדת הסשן ב-Cloud Shell שסופק על ידי tmux.

  1. חוזרים לכרטיסייה הראשונה בדפדפן (הכרטיסייה שבה פתוח Cloud Console).
  2. שימו לב: מכיוון שהחלטתם קודם לפתוח את Cloud Shell בחלון חדש, מוצגת ההודעה Your session was transferred to another browser tab. You can disable this from the "Tmux Settings" option in the Cloud Shell settings menu.
  3. לוחצים על לחצן החיבור מחדש:

bdc5d5773296bcfe.png

לאחר מכן תהיה לכם גישה למעטפת שפעלה בכרטיסייה השנייה, והפקודה top תמשיך לפעול כאן בדיוק כמו שהשארתם אותה.

  1. עוברים לכרטיסייה השנייה בדפדפן, שבה פתחתם את Cloud Shell בחלון חדש.
  2. לוחצים על חיבור מחדש. התהליך העליון ישוחזר בדיוק כמו שהוא פעל לפני שסגרנו את החלון.

פיצול חלונות באמצעות Tmux

השימוש ב-Tmux הרבה יותר יעיל ממה שראיתם עכשיו. הדרכה על tmux היא מעבר להיקף של ה-Lab הזה, אבל אפשר למצוא מידע נוסף על tmux במדריך הרשמי למתחילים ב-tmux.

עם זאת, tmux מעניק ל-Cloud Shell כמה תכונות נוספות שאפשר למצוא באמולטורים של מסופים מקומיים. כדי להדגים אחת מהן, תפצלו את המסוף לשני חלקים זה לצד זה.

  1. ב-Cloud Shell, מקישים על Ctrl + b ואז על %.
  2. שימו לב איך tmux יוצר חלונית חדשה מימין לחלונית המקורית:

717b047d71c8eeef.png

  1. לוחצים על החלונית השנייה ומקלידים exit.

שימוש בתצוגה מקדימה של אתרים

בנוסף, Cloud Shell יכול להגדיר העברת יציאות אוטומטית מהמכונה של Cloud Shell שפועלת בענן דרך הדפדפן המקומי שפועל במחשב.

  1. מקלידים ב-Cloud Shell:
python3 -m http.server 8080
  1. עוברים לאפשרות Web Preview (תצוגה מקדימה באינטרנט) בפינה השמאלית העליונה ובוחרים באפשרות Preview on port 8080 (תצוגה מקדימה ביציאה 8080):

a8363cafca79345.png

תיפתח כרטיסייה חדשה עם דף ברירת המחדל שמוצג ביציאה הזו.

שימו לב שאפשר לשנות את היציאה ולבצע תצוגה מקדימה של כל יציאה שהאפליקציה חושפת ב-Cloud Shell, ולא רק של יציאה 8080.

גישה לאפשרויות נוספות של Cloud Shell

יש הגדרות ואפשרויות נוספות ב-Cloud Shell.

  1. לוחצים על סמל האפשרויות הנוספות (3 נקודות) בתפריט Cloud Shell כדי לגשת לאפשרויות:

a5c515c9df9284be.png

האפשרויות הרלוונטיות ביותר כאן הן האפשרות להעלות או להוריד קבצים ל-Cloud Shell, ולהפעיל מחדש את מכונת Cloud Shell אם נתקלים בבעיות.

4. עבודה עם Cloud Shell Editor

אחת התכונות החשובות ביותר של Cloud Shell היא Cloud Shell Editor. זהו סביבת פיתוח משולבת (IDE) מלאה שמבוססת על פרויקט הקוד הפתוח Eclipse Theia, ו-Google היא אחת מהתורמות לפיתוח שלו. המראה והתחושה דומים מאוד ל-VSCode, כי שניהם משתמשים בכמה רכיבי בסיס משותפים של קוד פתוח, כמו העורך Monaco, מודל התוספים, פרוטוקול שרת השפה ופרוטוקול מתאם הניפוי.

הכלי Theia/Cloud Shell Editor הוא כלי מורכב למדי, ולכן לא נתאר במעבדה הזו את כל התכונות שלו. בקטע הזה נסביר כמה מושגי ליבה ותכונות ייחודיות שזמינים בהטמעה הזו של Google Cloud.

גישה ל-Cloud Shell Editor

יש שלוש דרכים לגשת ל-Cloud Shell Editor:

  • גישה משורת הפקודה
  • גישה דרך התפריט של Cloud Shell
  • כניסה לכתובת URL בדפדפן

כדי לנסות את השיטות האלה, פועלים לפי השלבים הבאים

  1. פותחים את הקובץ ‎ .bashrc משורת הפקודה באמצעות הפקודה הבאה:
cloudshell edit $HOME/.bashrc
  1. פותחים את Cloud Shell מהתפריט, על ידי לחיצה על הלחצן Open Editor (פתיחת העורך) 6039dbc755bfca9f.png: f493b9a98771b0af.png כך נפתח Cloud Shell Editor, וטרמינל Cloud Shell נשאר פתוח. אם רוצים להשתמש בכל השטח של הכרטיסייה רק בשביל Cloud Shell Editor, לוחצים על הלחצן שמשמאל ללחצן העריכה כדי לסגור את הטרמינל. שני הלחצנים האלה (פתיחה/סגירה של הכלי לעריכה ופתיחה/סגירה של הטרמינל) יקבעו איזה מהכלים יוצג בכרטיסיית הדפדפן. כדאי לתרגל את הלחיצה על שניהם כדי להבין איך זה עובד.
  2. מפעילים את Cloud Shell Editor מסרגל כתובות ה-URL בדפדפן על ידי הקלדת ide.cloud.google.com.

שימוש בשורת הפקודה מ-Cloud Shell Editor

למרות ש-Cloud Shell Terminal ו-Cloud Shell Editor פועלים יחד באותו כרטיסייה בדפדפן, אתם יכולים לוותר על Cloud Shell Terminal ולהשתמש רק ב-Cloud Shell Editor ובטרמינל שזמין מתוך Cloud Shell Editor לכל הצרכים שלכם. זה יכול להיות שימושי אם אתם רגילים לעבוד בתוך סביבת הפיתוח המשולבת (IDE) ומכירים את קיצורי הדרך השונים ואת הדינמיקה של החלוניות ב-VSCode.

פותחים את Cloud Shell Editor באחת מהשיטות שצוינו למעלה. לאחר מכן, עוברים לתפריט Editor ובוחרים באפשרות Terminal > New Terminal (או מקישים על `Ctrl + `` במקלדת). בחלק התחתון של Cloud Shell Editor תיפתח חלונית טרמינל חדשה שבה תוכלו להשתמש לכל צורכי המעטפת:

8b2c36f71e851c40.png

בנוסף, תוכלו לנהל חלוניות טרמינל שונות בלי להשתמש בניהול חלוניות tmux, כמו בטרמינל Cloud Shell.

התאמה אישית של הגדרות Cloud Shell

ב-Cloud Shell יש כמה אפשרויות להתאמה אישית, החל ממראה ותחושה והתנהגות בסיסית, ועד לתצורה של הפעלת Cloud Shell Terminal ופעולה מפורטת. בקטעים הבאים מפורטות האפשרויות השונות.

נכנסים לתפריט של מסוף Cloud Shell ולוחצים על סמל גלגל השיניים. יופיעו כמה אפשרויות הגדרה:

a473c985a434070b.png

כדאי לעיין בכמה מהם:

  • ערכות צבעים: אפשר להשתמש בערכת צבעים בהירה, כהה או להשתמש בסט של צבעים בהתאמה אישית (בסיסית, כמו צבע הגופן וצבע הרקע).
  • גודל הטקסט: 5 גדלים שונים של גופן לבחירה
  • גופן: Courier new או Monospace
  • העתקת הגדרות: כאן אפשר לשנות את מקש הקיצור להעתקה כך שיהיה דומה לקיצורי הדרך שמשמשים ברוב אמולטורי הטרמינל הפופולריים של Linux.
  • מקלדת: מיפוי של מקש Meta ל-Alt (כברירת מחדל, Meta הוא ESC) ומיפוי של מקש Alt Gr במערכות הפעלה מסוימות.

הגדרת סביבת המעטפת

בתור אמולטור טרמינל שמריץ מעטפת במחשב Linux מבוסס Debian, אתם יכולים להתאים אישית את סביבת המעטפת בדיוק כמו ב-Linux. לכן, כל קובצי ההגדרות שקיימים ב-$HOME (כמו .bashrc)) יסופקו בכל פעם שייווצר תהליך חדש של מעטפת כניסה.

בנוסף, ב-Cloud Shell אפשר לציין אילו פעולות רוצים לבצע בכל פעם שמופעל מופע Cloud Shell בקובץ הגדרה מיוחד שנקרא .customize_environment. מידע נוסף בנושא זמין במסמכי התיעוד בנושא התאמה אישית של הסביבה.

מתרגלים הוספה של הגדרות לטרמינל Cloud Shell. עוברים למסוף Cloud Shell ומשכפלים את מאגר הקוד לדוגמה הבא:

git clone https://gitlab.com/javiercanadillas/cloud-code-getting-started.git

מאגר הנתונים הזה מכיל דוגמאות לשני האירועים העיקריים שבהם כדאי להגדיר את Cloud Shell:

  • בכל פעם שמופעל מופע Cloud Shell: הקובץ $HOME/.customize_environment ייקרא. יומן הביצוע של התהליך הזה נמצא ב-/var/log/customize_environment, ואם הביצוע יסתיים בהצלחה, ייווצר /google/devshell/customize_environment_done.
  • בכל פעם שתהליך חדש של מעטפת מתחיל (חלון חדש, כרטיסייה חדשה...), קובצי התצורה הרגילים של מעטפת Bash ייקראו.

כדי להתאמן בשניהם, פועלים לפי השלבים הבאים:

  1. מריצים את הפקודה הבאה כדי להפעיל את ההתאמות האישיות שסופקו על ידי המאגר:
cd cloud-code-getting-started
source set_env_cust.sh

הפעולה הזו מגדירה ומפעילה את שתי אפשרויות ההתאמה האישית שצוינו קודם.

  1. שימו לב להנחיה החדשה של המעטפת. סקריפט Bash שמוגדר בקובץ .bash_profile הגדיר את ההנחיה החדשה הזו, שהיא קצרה יותר מההנחיה שמוגדרת כברירת מחדל, וכוללת מידע בסיסי על Git, כמו ההסתעפות שחולצה או סטטוס ה-Git.
  2. יש עכשיו כינוי חדש code לפקודה cloudshell edit, והוא קצר יותר. משתמשים בו כדי לראות את התוכן של הקובץ .bash_profile:
code $HOME/.bash_profile
  1. משתמשים בפקודה bat שהותקנה כדי לראות את התוכן של הקובץ .customize_environment:
bat $HOME/.customize_environment

bat היא גרסה משופרת של הכלי הפופולרי cat של Unix. בפלט של bat שמוצג כאן אפשר לראות את הפקודה apt install שמשמשת להתקנה מחדש של hey, כלי לבדיקת עומסים, בכל פעם שמפעילים מכונה חדשה של Cloud Shell.

  1. כדי לבדוק שהכל פועל, לוחצים על התפריט של Cloud Shell (סמל האפשרויות הנוספות, 3 נקודות בפינה השמאלית העליונה) ובוחרים באפשרות הפעלה מחדש.

כך תוכלו לדמות מצב של פסק זמן ב-Cloud Shell ויצירה מחדש של מופע, ולוודא שהכל מוגדר בצורה נכונה.

התאמה אישית של קובץ האימג' של הקונטיינר ב-Cloud Shell

אפשרות ההתאמה האישית הזו מאפשרת ליצור קובץ אימג' של Docker שפועל כסביבת Cloud Shell מותאמת אישית עם חבילות נוספות והגדרות מותאמות אישית. התמונה שנוצרת תתחיל הרצה של מכונת VM של Cloud Shell שהיא זמנית לחלוטין, כך שלא מכונת ה-VM של Cloud Shell ולא הספרייה $HOME שמצורפת אליה יישמרו. עם זאת, יצירת התמונה הזו תהיה שימושית בתרחישי שימוש שבהם צריך לספק לצדדים שלישיים מופעים של Cloud Shell שספציפיים לפונקציה מסוימת, כדי שהם יוכלו לבצע משימה ספציפית בצורה הכי יעילה.

במקום להתאים אישית את הסביבה כמו שעשיתם בקטע הקודם, תטמיעו את השינויים בתמונה חדשה שתשמש להתחלת הרצת Cloud Shell. יש לכך יתרונות ברורים, כי סביבת Cloud Shell המותאמת אישית תופעל מהר יותר.

יצירת תמונה חדשה של Cloud Shell

  1. כדי להתחיל ליצור את קובץ האימג' של הקונטיינר ב-Cloud Shell, מקלידים בטרמינל של Cloud Shell:
cloudshell env create-custom-image custom-cloud-shell
cd custom-cloud-shell

פעולה זו יוצרת ספרייה חדשה ב-Cloud Shell ומאגר חדש ב-Cloud Source Repositories עם אותו שם לאירוח הקוד. הוא גם משכפל דוגמה של Dockerfile ב$HOME/custom-cloud-shell/ directory.

  1. מוסיפים את השורה RUN apt install -y hey לשורה האחרונה של קובץ ה-Dockerfile:
echo "RUN apt install -y hey" >> $HOME/custom-cloud-shell/Dockerfile

הפעולה הזו מגדירה את אותה התאמה אישית שהייתה לכם ב-.customize_environment, אבל היא מוטמעת במאגר תגים במקום זאת.

  1. יוצרים את התמונה באופן מקומי:
cloudshell env build-local
  1. מריצים את הפקודה הבאה כדי לבדוק את התמונה החדשה:
cloudshell env run

עכשיו תהיו במעטפת בתוך התמונה.

  1. מריצים את הפקודה hey כדי לוודא שהיא מותקנת:
hey
  1. בסיום, מקלידים exit כדי לצאת מהקונטיינר:
exit
  1. מעבירים את השינויים בדחיפה אל Cloud Source Repository ואת קובץ האימג' אל Container Registry:
git commit -a -m "Initial commit"
git push origin master
cloudshell env push

בדיקת התמונה החדשה

  1. כדי להשתמש בתמונה, צריך להגדיר אותה כגלוי לכולם:
gsutil iam ch allUsers:objectViewer $(gsutil ls)
  1. יוצרים כתובת URL שאפשר להשתמש בה כדי לבדוק את המכונה המותאמת אישית שפורסמה ב-Cloud Shell:
echo "https://ssh.cloud.google.com/cloudshell/editor?cloudshell_image=gcr.io/$GOOGLE_CLOUD_PROJECT/custom-cloud-shell"
  1. מעתיקים את כתובת ה-URL של הפלט ומדביקים אותה בכרטיסייה חדשה בדפדפן. המופע המותאם אישית של Cloud Shell ייפתח. שימו לב שכשתקבלו גישה למופע, יופיעו באנרים שמציינים שאתם מפעילים את המצב הזמני המלא:

bc091a4c33649aa9.png

  1. בודקים שוב את התמונה באמצעות הפעלת הפקודה hey
hey
  1. אחרי שמסיימים, exit את המופע הארעי של Cloud Shell, חוזרים לכרטיסייה שבה נפתח Cloud Shell הרגיל ולוחצים על Reconnect (התחברות מחדש).

גישה מרחוק ל-Cloud Shell באמצעות SSH

אפשר גם להשתמש בתכונות של Cloud Shell מרחוק מהמחשב המקומי. בדרך כלל מדובר בשני תרחישי שימוש שונים:

  • חיבור SSH למכונת Cloud Shell מהטרמינל המקומי
  • טעינה מקומית של ספריית $HOME המרוחקת של Cloud Shell.

לשם כך, צריך להתקין את Google Cloud SDK באופן מקומי. תצטרכו גם להגדיר אותו עם מזהה הפרויקט ופרטי הכניסה הספציפיים שבהם אתם משתמשים.

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

  1. מגדירים את מזהה הפרויקט ב-GCP ונכנסים באמצעות פרטי הכניסה שמתאימים לארגון ב-Cloud שבו יש לכם Cloud Shell.
gcloud config set project <your project id>
gcloud auth login
  1. מתחברים באמצעות SSH למכונת Cloud Shell המרוחקת:
gcloud cloud-shell ssh --authorize-session

עכשיו תהיו ב-Cloud Shell, אבל תשתמשו בתכונות ובהגדרות של אמולטור הטרמינל המקומי. אם המערכת שבה אתם משתמשים תומכת ב-tmux, תוכלו ליהנות משילובים נוספים כדי לשפר את חוויית השימוש מרחוק.

העלאת ספריית הבית של Cloud Shell מהמחשב המקומי

אמנם נחמד שיש אפשרות להתחבר באמצעות SSH למופע Cloud Shell מרוחק, אבל עדיף שתהיה לסביבת הפיתוח המשולבת (IDE) המקומית שלכם גישה לספריית $HOME של Cloud Shell המרוחק. כך תוכלו לשלב את גישת ה-SSH שהודגמה קודם עם היכולת לערוך קוד מרחוק באופן מקומי.

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

mkdir $HOME/cloudshell

זו הספרייה שבה Cloud Shell יוטען. כדי לטעון אותו, מוודאים שמופע Cloud Shell מופעל, ואז מקלידים בטרמינל המקומי:

$(gcloud cloud-shell get-mount-command $HOME/cloudshell)
cd $HOME/cloudshell

הפקודה הזו תציג את פקודת ההרכבה שצריך להריץ כדי להרכיב את Cloud Shell באופן מקומי, ותבצע את ההרכבה. התוכן של ספריית הבית של Cloud Shell יותקן במחשב המקומי.

עכשיו אפשר לפתוח סביבת פיתוח משולבת (IDE) כמו VSCode באופן מקומי ולפתוח סביבת עבודה שהיא מרוחקת בענן. במקביל, באמצעות גישת SSH ל-Cloud Shell, אפשר לפתוח חלונית טרמינל בתוך סביבת הפיתוח המשולבת (IDE) כדי לשלב טרמינל מרוחק בסביבת הפיתוח המשולבת המקומית.

5. שימוש ב-Cloud Code

Cloud Code הוא פלאגין שפותח על ידי Google ומאפשר למפתחים לעבוד בצורה יעילה יותר עם כלים מבוססי-ענן. הוא זמין בכמה סביבות פיתוח משולבות (IDE) ועורכי קוד, כמו מוצרי VSCode ו-Jetbrains, והוא משולב כברירת מחדל ב-Cloud Shell Editor לנוחיותכם. ‫Cloud Code כולל הרבה תכונות ידידותיות למפתחים, שתוכלו להתנסות בהן בשלבים הבאים.

איפה נמצא Cloud Code ב-Cloud Shell Editor

שימוש בלחצני הגישה המהירה

בחלונית הימנית של העורך, מאתרים את ארבעת הלחצנים הבאים:

de0b6c69b590d21b.png

פריטי התפריט האלה מאפשרים גישה קלה לשירותי GCP והגדרה שלהם ישירות מ-Cloud Shell Editor.

בשיעור ה-Lab הזה נתמקד באשכולות Kubernetes.

שימוש בשורת הסטטוס

יש עוד שני חלקים ב-Cloud Shell שמוצגים בממשק המשתמש של Cloud Shell Editor, והם רלוונטיים. שניהם מופיעים בסרגל התחתון בכלי העריכה:

f04c703ff45b05a.png

  • <> Cloud Code: לחיצה כאן תציג תפריט פעולות מהירות שבו תשתמשו במהלך המדריך הזה: 58a3f8940f6263ae.png
  • שליטה ב-minikube: האפשרות הזו מאפשרת לכם לשלוט באמולטור המקומי של Kubernetes, ‏ minikube, באמצעות פעולות בסיסיות כמו הפעלה או עצירה של האשכול.

יצירת מופע של Minikube

כדי ליצור עכשיו מכונת Minikube, לוחצים על הכפתור.

540da42dd52e1469.png

יצירת אשכול GKE באמצעות Cloud Code

  1. לוחצים על הסמל Cloud Code - Kubernetes Clusters ( 5ffab5cb541da6.png) בצד ימין. בצד ימין יופיע חלונית חדשה בשם קוד ענן – Kubernetes: אשכולות.
  2. לוחצים על הלחצן + לצד CLOUD CODE - KUBERNETES: CLUSTERS ובוחרים באפשרות Google Kubernetes Engine (אפשר גם לבחור באפשרויות אחרות, כמו Minikube שהפעלתם קודם):

e7a81607c1bc7c55.png

  1. לוחצים על Create a New GKE Cluster (יצירת אשכול GKE חדש). האפשרות הזו תטען חלונית חדשה בצד שמאל, שבה תוכלו להזין מידע נוסף כדי ליצור במהירות אשכול פיתוח. פועלים לפי ההוראות בחלונית ומזינים את הפרטים הבאים:
  • בחירת טייס אוטומטי
  • בחירת האזור (europe-west-1)
  • נותנים לאשכול את השם dev.
  1. לוחצים על הלחצן יצירת אשכול. ייווצר אשכול חדש של Autopilot.

תהליך יצירת האשכול יכול להימשך עד 5 דקות. לכן, בזמן שהאשכול נוצר, כדאי לעיין עוד קצת בחלונית Kubernetes ב-Cloud Code.

התנסות בחלונית Kubernetes ב-Cloud Code

קודם יצרתם אשכול Minikube. כשהאשכול יהיה מוכן, הוא יופיע בחלונית Kubernetes ב-Cloud Code עם השם שנתתם לו, minikube:

b654e618f78de3b3.png

האשכול יופיע בממשק המשתמש כפעיל. ההגדרה הזו מסונכרנת עם הקשר הנוכחי של kubernetes בשורת הפקודה. .

בחלונית Kubernetes ב-Cloud Code אפשר לראות את הפרטים הבאים:

  • קובץ KubeConfig שמוגדר כברירת מחדל: Cloud Code קורא את הקובץ ‎~/.kube/config של המשתמש ומשתמש בו כדי להתחבר לאשכולות Kubernetes שמוגדרים בו, כך שתוכלו לנווט בהם בקלות. אם רוצים, אפשר לערוך את קובץ ה-Kubeconfig על ידי העברת העכבר מעל השורה Default Kubeconfig ולחיצה על הריבוע עם החץ היוצא שלידה.
  • עיבוד שניתן לעיון של האובייקטים השונים של האשכולות הרשומים: במקרה הזה, אפשר לראות את אשכול minikube Minikube שיצרתם קודם, עם ההקשרים, מרחבי השמות והצמתים שלו. אפשר להרחיב חלק מהצמתים בעץ. עדיין לא יהיו פודים כי לא פרסתם אפליקציה.

אחרי שקלאסטר GKE החדש יפעל, הוא יוצג בחלונית הימנית לצד minikube קלאסטר Minikube. שימו לב שאפשר ללחוץ לחיצה ימנית על כל אחד מהאשכולות ולהפוך אותו ל'פעיל' במובן של בחירת האשכול לכל אחת מהפעולות של Cloud Code שאפשר להפעיל:

8e4306c3ce707ef8.png

6. מעולה!

כל הכבוד, סיימתם את ה-Codelab!

מה נכלל

  • התמצאות בתכונות העיקריות של Cloud Shell
  • התאמנתם עם דפוסי שימוש שונים ב-Cloud Shell
  • התאמה אישית של סביבת Cloud Shell לשימוש מתקדם
  • הכרתם את האפשרויות והתכונות של Cloud Code
  • בדקתם את הפרטים של Cloud Code לאפליקציות Kubernetes
  • שימוש באמולטורים מקומיים כמו Minikube