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

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

Cloud Shell היא סביבת פיתוח ותפעול אונליין שאפשר לגשת אליה מכל הדפדפן באמצעות הדפדפן. תוכלו לנהל את המשאבים באמצעות טרמינל אונליין שנטען מראש בכלים כמו כלי שורת הפקודה של Google Cloud, 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

  • Project name הוא השם המוצג של המשתתפים בפרויקט. זו מחרוזת תווים שלא משמשת את Google APIs. אפשר לעדכן אותו בכל שלב.
  • Project ID הוא ייחודי בכל הפרויקטים ב-Google Cloud ואי אפשר לשנות אותו (אי אפשר לשנות אותו אחרי שמגדירים אותו). מסוף Cloud יוצר מחרוזת ייחודית באופן אוטומטי; בדרך כלל לא מעניין אותך מה זה. ברוב ה-Codelabs תצטרכו להפנות אל מזהה הפרויקט (בדרך כלל הוא מזוהה כ-PROJECT_ID). אם המזהה שנוצר לא מוצא חן בעיניך, יש לך אפשרות ליצור מזהה אקראי אחר. לחלופין, אפשר לנסות תבנית משלך ולבדוק אם היא זמינה. לא ניתן לשנות אותו אחרי השלב הזה, והוא יישאר למשך הפרויקט.
  • לידיעתך, יש ערך שלישי – Project Number (מספר פרויקט), שחלק מממשקי ה-API משתמשים בו. מידע נוסף על כל שלושת הערכים האלה זמין במסמכי התיעוד.
  1. בשלב הבא צריך להפעיל את החיוב במסוף Cloud כדי להשתמש במשאבים או בממשקי API של Cloud. מעבר ב-Codelab הזה לא אמור לעלות הרבה, אם בכלל. כדי להשבית את המשאבים ולא לצבור חיובים מעבר למדריך הזה, אתם יכולים למחוק את המשאבים שיצרתם או למחוק את הפרויקט כולו. משתמשים חדשים ב-Google Cloud זכאים להצטרף לתוכנית תקופת ניסיון בחינם בשווי 1,200 ש"ח.

3. עבודה עם מסוף Cloud Shell

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

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

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

a78258af94ed9ec3.png

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

5b4246f45b173ff4.png

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

8495f27a3ed0f05.png

בחלונית הזאת מופיע מה שנקרא Terminal 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

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

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

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

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

פיצול חלונות עם Tmux

Tmux מועיל הרבה יותר ממה שרק השתמשת בו. שיעור ה-Lab הזה לא כולל את המדריך הזה. מידע נוסף בנושא הזה זמין בהדרכה הרשמית בנושא תחילת העבודה עם 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. עוברים לאפשרות תצוגה מקדימה באינטרנט בפינה השמאלית העליונה ובוחרים באפשרות תצוגה מקדימה ביציאה 8080:

a8363cafca79345.png

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

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

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

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

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

a5c515c9df9284be.png

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

4. שימוש ב-Cloud Shell Editor

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

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

גישה לעורך Cloud Shell

אפשר לגשת ל-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, לוחצים על הלחצן שמופיע משמאל ללחצן Edit (עריכה) כדי לסגור את הטרמינל. שני הלחצנים האלה ('פתיחה/סגירה של העורך' ו'פתיחה/סגירה של הטרמינל') יקבעו אילו מהכלים נמצאים בכרטיסיית הדפדפן. תרגלו לחיצה על שניהם כדי ללמוד היטב.
  2. כדי להפעיל את Cloud Shell Editor מסרגל כתובות ה-URL בדפדפן, מקלידים ide.cloud.google.com.

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

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

פותחים את Cloud Shell Editor באמצעות אחת מהשיטות שצוינו למעלה. לאחר מכן עוברים לתפריט 'עריכה' ובוחרים באפשרות Terminal > 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 Grand בחלק ממערכות ההפעלה.

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

בתור אמולטור Terminal שמריץ מעטפת במחשב 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 הוא גרסה משופרת של חתול הכלים הפופולרי Unix. הפלט של bat מראה כאן את הפקודה apt install ששימשה להתקנה מחדש של hey, כלי לבדיקת עומסים, בכל פעם שיוצרים מכונה של Cloud Shell חדשה.

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

כך ניתן לדמות את הזמן הקצוב לתפוגה של 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. בדיקה חוזרת של התמונה והרצת פקודת he
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 Cloud נחשפים דרך ממשק המשתמש של Cloud Shell Editor. אפשר לראות את שתי האפשרויות בסרגל התחתון ב-Editor:

f04c703ff45b05a.png

  • &lt;&gt; 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 ובוחרים באפשרות Google Kubernetes Engine (שימו לב שאפשר גם לבחור אפשרויות אחרות כמו Minikube שיצרתם לפני כן):

e7a81607c1bc7c55.png

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

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

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

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

b654e618f78de3b3.png

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

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

  • קובץ ברירת המחדל של 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