תחילת העבודה עם Cloud Code ל-VS Code ל-Kubernetes

באמצעות Cloud Code אפשר ליצור אפליקציית Kubernetes על סמך דוגמה או מפרויקט קיים.

יצירת אפליקציה מתבנית

‫Cloud Code כולל אוסף של תבניות דוגמת קוד שיעזרו לכם להתחיל במהירות. כדי ליצור אפליקציית Kubernetes באמצעות דוגמה קיימת, מבצעים את השלבים הבאים:

  1. מפעילים את לוח הפקודות (לוחצים על Ctrl/Cmd+Shift+P או על View (תצוגה) > Command Palette (לוח הפקודות)) ואז מריצים את Cloud Code: New Application (Cloud Code: אפליקציה חדשה).
  2. בוחרים באפשרות Kubernetes application (אפליקציית Kubernetes) בתור סוג הדוגמה.
  3. בוחרים דוגמה על סמך השפה שרוצים להשתמש בה מבין האפשרויות הזמינות: NodeJS, ‏ Go, ‏ Python, ‏ Java.
  4. בוחרים את המיקום המועדף של האפליקציה במחשב המקומי ולוחצים על יצירת אפליקציה חדשה כדי לשמור.

    ‫Cloud Code משכפל את הדוגמה שבחרתם ופותח את הפרויקט החדש שלכם לשימוש.

דוגמה למבנה של אפליקציה

לכל האפליקציות לדוגמה של שפות יש מבנה כמעט זהה. זו לא המבנה היחיד שנתמך, אבל מומלץ להתחיל איתו.

לדוגמה, המבנה של אפליקציית פנקס האורחים ב-Node.js נראה כך:

.
|---- .vscode
|      └---- launch.json
|---- kubernetes-manifests
|     |---- guestbook-backend.deployment.yaml
|     |---- guestbook-backend.service.yaml
|     |---- guestbook-frontend.deployment.yaml
|     |---- guestbook-frontend.service.yaml
|     |---- mongo.deployment.yaml
|     └---- mongo.service.yaml
|---- src
|     |---- backend
|     |     |---- Dockerfile
|     |     |---- index.js
|     |     |---- app.js
|     |     └---- package.json
|     |---- frontend
|           |---- Dockerfile
|           |---- index.js
|     |     |---- app.js
|           └---- package.json
└---- skaffold.yaml

אם נתבונן מקרוב באפליקציית הדוגמה הזו של ספר אורחים ב-Kubernetes Node.js, נראה כמה קבצים חשובים והשימושים שלהם:

  • .vscode
    • ‫extensions.json: הצגת הנחיה לבקשת הורדה של תוספים קשורים כשפותחים את הפרויקט הזה
    • ‫launch.json: הגדרת ההפעלה (מהסוג cloudcode.kubernetes) להרצה או לניפוי באגים באפליקציית Kubernetes
    • ‫tasks.json: פרטי התצורה של משימות Visual Studio Code
  • kubernetes-manifests
    • guestbook-backend.deployment.yaml: מפרט של Pod לצמתים של ה-Backend
    • ‫guestbook-frontend.deployment.yaml: מפרט ה-Pod לצמתים של חזית האתר
    • mongo.deployment.yaml: מפרט ה-Pod של מסד הנתונים
  • src
    • ‫(backend|frontend)/app.js: קוד Node.js עם הלוגיקה של שרת האינטרנט
    • ‫(backend|frontend)/Dockerfile: משמש לבניית קובץ האימג' של הקונטיינר עבור התוכנית שלנו
  • ‫skaffold.yaml: קובץ תצורה שמשמש את Cloud Code לבנייה, לפריסה ולניפוי באגים של אפליקציות Kubernetes

שימוש באפליקציה משלכם

הוראות לשימוש בפרויקט קיים מופיעות במאמר בנושא שימוש ב-Cloud Code עם אפליקציית Kubernetes קיימת.

הגדרת ההקשר של Kubernetes

לפני שמריצים את האפליקציה, מוודאים שההגדרה מאפשרת פריסה של האפליקציה בהקשר המועדף של Kubernetes. אפשר לציין את זה בהגדרות.

הגדרות אישיות

כשמשתמשים בהגדרת ההפעלה Cloud Code: Develop on Kubernetes, אפשר להתאים אישית את הפריסה על ידי הגדרת ההגדרות הזמינות.

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

הגדרות הבנייה

‫Cloud Code תומך בסוגי הארטיפקטים Docker,‏ Jib ו-Buildpacks. במדריך להגדרת העדפות של build של קובץ אימג' של קונטיינר מוסבר איך מגדירים את כלי ה-build המועדף וההגדרות הרלוונטיות שלו.

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

כדי להגדיר איך האפליקציה תופעל, אפשר להתאים אישית את הקובץ skaffold.yaml.

אפשר גם להגדיר את ההפעלה על ידי עריכת ההגדרה cloudcode.kubernetes בקובץ .vscode/launch.json.

מידע נוסף על התאמה אישית של הגדרות ההפעלה זמין במאמר בנושא Kubernetes ב-Cloud Code.

הפעלת האפליקציה

אחרי שמגדירים אפליקציה, אפשר להריץ אותה באשכול Kubernetes ולצפות בה בשידור חי באמצעות skaffold dev. אתם יכולים להריץ את האפליקציה באשכול מקומי (כמו minikube או Docker Desktop), ב-Google Kubernetes Engine או בכל ספק שירותי ענן אחר.

  1. פותחים את לוח הפקודות (מקישים על Ctrl/Cmd+Shift+P) ומריצים את הפקודה Cloud Code: Run on Kubernetes.
  2. מאשרים אם להשתמש בהקשר הנוכחי של Kubernetes כדי להריץ את האפליקציה (או עוברים להקשר מועדף). מידע נוסף על הגדרת הקשר של Kubernetes זמין במאמר הגדרת התצורה.
  3. אם בחרתם באשכול מרוחק כהקשר, כשתתבקשו, בחרו במאגר תמונות להעלאת התמונות. אם Artifact Registry API מופעל בפרויקט שלכם ויש בו לפחות מאגר אחד של Artifact Registry, תוכלו לעיין במאגר קיים של Artifact Registry ולבחור אותו.

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

    Artifact Registry ‪REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME
    Docker Hub docker.io/ACCOUNT
    Make sure that you're properly authenticated if you're using a private Docker Hub repository.
    מאגר קונטיינרים של AWS‏ (ECR) AWS_ACCOUNT_ID.dkr.ecr.REGION.amazonaws.com/APP
    ‫Azure Container Registry‏ (ACR) ACR_NAME.azurecr.io/APP

    ‫Cloud Code משרשר את מאגר התמונות הזה עם שם התמונה שצוין במניפסטים של Kubernetes כדי ליצור את השם הסופי של מאגר התמונות.

    מידע נוסף זמין במדריך לטיפול במאגר תמונות.

    הבחירה הזו מאוחסנת בcloudcode.kubernetesהגדרת ההפעלה (ב-‎ .vscode/launch.json).

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

צפייה ביומנים

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

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

  1. בקטע Kubernetes, מרחיבים את Deployments.
  2. לוחצים לחיצה ימנית על הפוד שרוצים לראות את היומנים שלו, ואז לוחצים על View Logs (הצגת יומנים).

    ייפתח מציג היומנים.

ביצוע שינויים, בנייה מחדש וניקוי

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

  1. מבצעים את השינויים ושומרים אותם.

  2. בסרגל הכלים של ניפוי הבאגים, לוחצים על Pause (השהיה) (F6) ואז על Restart (הפעלה מחדש) (Ctrl/Cmd + Shift + F5) כדי לבנות מחדש את האפליקציה ולפרוס אותה מחדש.

  3. כדי להפסיק את הפעלת האפליקציה, בסרגל הכלים לניפוי באגים, לוחצים על עצירה.

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

אחסון סודות

אם הקוד שלכם כולל נתונים רגישים כמו מפתחות API, סיסמאות ואישורים, מומלץ לאחסן אותם כסודות. באמצעות Cloud Code, אתם יכולים לאחסן את הסודות האלה בצורה מאובטחת ב-Secret Manager ולאחזר אותם באופן פרוגרמטי כשאתם צריכים אותם.

במדריך Secret Manager מוסבר איך ליצור ולנהל סודות באמצעות Cloud Code.

צפייה בפרטי המשאב

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

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

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

תמיכה

כדי לשלוח משוב, אפשר לשאול שאלה ב-Stack Overflow. אם אתם לקוחות Google Cloud, אתם יכולים לשלוח כרטיסי תמיכה דרך ערוצי התמיכה הרגילים של Google Cloud.