באמצעות Cloud Code אפשר ליצור אפליקציית Kubernetes על סמך דוגמה או מפרויקט קיים.
יצירת אפליקציה מתבנית
Cloud Code כולל אוסף של תבניות דוגמת קוד שיעזרו לכם להתחיל במהירות. כדי ליצור אפליקציית Kubernetes באמצעות דוגמה קיימת, מבצעים את השלבים הבאים:
- מפעילים את לוח הפקודות (לוחצים על
Ctrl/Cmd+Shift+Pאו על View (תצוגה) > Command Palette (לוח הפקודות)) ואז מריצים את Cloud Code: New Application (Cloud Code: אפליקציה חדשה). - בוחרים באפשרות Kubernetes application (אפליקציית Kubernetes) בתור סוג הדוגמה.
- בוחרים דוגמה על סמך השפה שרוצים להשתמש בה מבין האפשרויות הזמינות: NodeJS, Go, Python, Java.
בוחרים את המיקום המועדף של האפליקציה במחשב המקומי ולוחצים על יצירת אפליקציה חדשה כדי לשמור.
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 או בכל ספק שירותי ענן אחר.
- פותחים את לוח הפקודות (מקישים על
Ctrl/Cmd+Shift+P) ומריצים את הפקודה Cloud Code: Run on Kubernetes. - מאשרים אם להשתמש בהקשר הנוכחי של Kubernetes כדי להריץ את האפליקציה (או עוברים להקשר מועדף). מידע נוסף על הגדרת הקשר של Kubernetes זמין במאמר הגדרת התצורה.
אם בחרתם באשכול מרוחק כהקשר, כשתתבקשו, בחרו במאגר תמונות להעלאת התמונות. אם Artifact Registry API מופעל בפרויקט שלכם ויש בו לפחות מאגר אחד של Artifact Registry, תוכלו לעיין במאגר קיים של Artifact Registry ולבחור אותו.
בדוגמאות הבאות מוסבר איך לציין איפה מאוחסנים קובצי אימג' של קונטיינר בכמה מאגרי רישום נפוצים:
Artifact Registry REGION-docker.pkg.dev/PROJECT_ID/REPO_NAMEDocker 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/APPAzure Container Registry (ACR) ACR_NAME.azurecr.io/APPCloud Code משרשר את מאגר התמונות הזה עם שם התמונה שצוין במניפסטים של Kubernetes כדי ליצור את השם הסופי של מאגר התמונות.
מידע נוסף זמין במדריך לטיפול במאגר תמונות.
הבחירה הזו מאוחסנת ב
cloudcode.kubernetesהגדרת ההפעלה (ב- .vscode/launch.json).Cloud Code יוצר את הקונטיינרים, מעביר אותם בדחיפה למאגר, מחיל את ההגדרות של Kubernetes על האשכול וממתין להשקה.
צפייה ביומנים
בנוסף ליומנים של פודים פועלים שמוצגים כשידור חי בפלט של הטרמינל בזמן הפיתוח וההפעלה של האפליקציה, אפשר לראות יומנים של פוד ספציפי על ידי מעבר לקטע Kubernetes.
כדי לראות את היומנים של פוד ספציפי, פועלים לפי השלבים הבאים:
- בקטע Kubernetes, מרחיבים את Deployments.
לוחצים לחיצה ימנית על הפוד שרוצים לראות את היומנים שלו, ואז לוחצים על View Logs (הצגת יומנים).
ייפתח מציג היומנים.
ביצוע שינויים, בנייה מחדש וניקוי
אם הגדרתם את מצב הצפייה ל-false בהגדרות ההפעלה ואתם רוצים לבצע שינויים באפליקציה, לבנות אותה מחדש ולפרוס אותה מחדש:
מבצעים את השינויים ושומרים אותם.
בסרגל הכלים של ניפוי הבאגים, לוחצים על Pause (השהיה) (
F6) ואז על Restart (הפעלה מחדש) (Ctrl/Cmd + Shift + F5) כדי לבנות מחדש את האפליקציה ולפרוס אותה מחדש.כדי להפסיק את הפעלת האפליקציה, בסרגל הכלים לניפוי באגים, לוחצים על עצירה.
אחרי שמפסיקים את האפליקציה, כל משאבי Kubernetes שנפרסו נמחקים מהאשכול. אפשר לשנות את ההתנהגות הזו באמצעות הדגל cleanUp
בהגדרות ההפעלה.
אחסון סודות
אם הקוד שלכם כולל נתונים רגישים כמו מפתחות API, סיסמאות ואישורים, מומלץ לאחסן אותם כסודות. באמצעות Cloud Code, אתם יכולים לאחסן את הסודות האלה בצורה מאובטחת ב-Secret Manager ולאחזר אותם באופן פרוגרמטי כשאתם צריכים אותם.
במדריך Secret Manager מוסבר איך ליצור ולנהל סודות באמצעות Cloud Code.
צפייה בפרטי המשאב
בקטע Kubernetes מוצגים אשכולות, מרחבי שמות, צמתים, עומסי עבודה (כמו פריסות, ערכות שכפול, פודים וקונטיינרים), שירותים ו-Ingress, הגדרות (כמו סודות ומפות הגדרות) ואחסון (כמו נפחים). בקטע Kubernetes, אפשר לבצע פעולות ייחודיות בחלק מהמשאבים האלה.
מידע נוסף על הצגת פרטי משאבים זמין בסקירה הכללית על Kubernetes.
המאמרים הבאים
- אפשרויות שונות לבנייה באמצעות buildpacks, Jib או Docker.
- כדי לזרז את תהליך הפיתוח, אפשר להשתמש בסנכרון קבצים ו-Hot Reload.
- מידע נוסף על עריכת YAML ב-Cloud Code