פיתוח באמצעות 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.pnga99b7ace416376c4.pngbd84a6d3004737c5.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 זמנית של Google Compute Engine שמבוססת על Debian, ותמיד זמינה לשימוש. הוא מגיע עם 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. בסרגל התפריטים של Cloud Console, בוחרים את מזהה הפרויקט ב-GCP שבו תעבדו:

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 בחלון אחד ואת 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 תיפתח חלונית טרמינל חדשה שבה תוכלו להשתמש לכל הפעולות שאתם צריכים לבצע ב-Shell:

8b2c36f71e851c40.png

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

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

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

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

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

מאגר ה-repo הזה מכיל דוגמאות לשני האירועים העיקריים שבהם כדאי להגדיר את 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 מותאמת אישית עם חבילות נוספות והגדרות מותאמות אישית. התמונה שנוצרת תתחיל הרצה של מכונת 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 לשורה האחרונה של קובץ Docker:
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) בצד ימין. יظهر חלונית חדשה מימין בשם CLOUD CODE - KUBERNETES: CLUSTERS.
  2. לוחצים על הלחצן + לצד CLOUD CODE - KUBERNETES: CLUSTERS (קוד בענן – Kubernetes: אשכולות) ובוחרים באפשרות Google Kubernetes Engine (שימו לב שאפשר לבחור גם באפשרויות אחרות, כמו Minikube שהפעלתם קודם):

e7a81607c1bc7c55.png

  1. לוחצים על יצירת אשכול GKE חדש. האפשרות הזו תטען חלונית חדשה בצד שמאל שבה תוכלו להזין מידע נוסף כדי ליצור במהירות אשכול פיתוח. פועלים לפי ההוראות בחלונית ומזינים את הפרטים הבאים:
  • בחירת Autopilot
  • בחירת האזור (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