App runtime

זמן הריצה של האפליקציה הוא הסביבה שבה האפליקציות מופעלות.

אפליקציות Buildpack אפליקציות של קובצי אימג' של קונטיינרים
ספריות מערכת סופק על ידי Stack המידע שמופיע בקונטיינר
גישה לרשת גישה מלאה דרך Envoy sidecar גישה מלאה דרך Envoy sidecar
מערכת קבצים שטח אחסון זמני שטח אחסון זמני
שפת זמן הריצה מסופק על ידי Stack או Buildpack מובנה במאגר
משתמש מוגדר על ידי המקבץ מוגדר במאגר
מנגנון בידוד ‫Kubernetes Pod ‫Kubernetes Pod
DNS סופק על ידי Kubernetes סופק על ידי Kubernetes

משתני סביבה

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

  1. מרחב (מוגדר על ידי האדמינים)
  2. אפליקציה (מוגדר על ידי מפתחים)
  3. מערכת (הוגדר על ידי Kf)

‫Kf מספק את משתני הסביבה הבאים של המערכת:

משתנה מטרה
CF_INSTANCE_ADDR כתובת ה-IP:PORT שבה מופעלת האפליקציה.
CF_INSTANCE_GUID המזהה הייחודי האוניברסלי (UUID) של מופע האפליקציה.
INSTANCE_GUID כינוי של CF_INSTANCE_GUID.
CF_INSTANCE_INDEX מספר האינדקס של מופע האפליקציה, תמיד יהיה 0.
INSTANCE_INDEX כינוי של CF_INSTANCE_INDEX.
CF_INSTANCE_IP כתובת ה-IP הגלויה של המופע של האפליקציה.
CF_INSTANCE_INTERNAL_IP כינוי של CF_INSTANCE_IP
VCAP_APP_HOST כינוי של CF_INSTANCE_IP
CF_INSTANCE_PORT היציאה שגלויות לאשכול של מופע האפליקציה. ב-Kf, זהה ל-PORT.
DATABASE_URL ה-URI הראשון שנמצא בהרשאה VCAP_SERVICES.
LANG נדרש על ידי Buildpacks כדי להבטיח סדר טעינה עקבי של סקריפטים.
MEMORY_LIMIT הכמות המקסימלית של הזיכרון ב-MB שהאפליקציה יכולה לצרוך.
PORT היציאה שהאפליקציה צריכה להאזין לה לבקשות.
VCAP_APP_PORT כינוי של PORT.
VCAP_APPLICATION מבנה JSON שמכיל את המטא-נתונים של האפליקציה.
VCAP_SERVICES מבנה JSON שמציין שירותים מקושרים.

פרטי הכניסה לשירותים מקושרים מוזרקים לאפליקציות באמצעות משתנה הסביבה VCAP_SERVICES. המשתנה הוא אובייקט JSON תקין עם המבנה הבא.

VCAPServices

אובייקט JSON שבו המפתחות הם תוויות שירות והערכים הם מערך של VCAPService. המערך מייצג כל שירות שמשויך לתווית הזו. שירותים שסופקו על ידי משתמשים מסומנים בתווית user-provided.

דוגמה

{
  "mysql": [...],
  "postgresql": [...],
  "user-provided": [...]
}

VCAPService

הסוג הזה מייצג מופע יחיד של שירות מאוגד.

דוגמה

{
  "binding_name": string,
  "instance_name": string,
  "name": string,
  "label": string,
  "tags": string[],
  "plan": string,
  "credentials": object
}

שדות

שדה סוג תיאור
binding_name string השם שהמשתמש הקצה לכבילת השירות.
instance_name string השם שהמשתמש הקצה למופע השירות.
name string הערך binding_name אם הוא קיים, אחרת הערך instance_name.
label string שם השירות המוצע.
tags string[] מערך של מחרוזות שאפליקציה יכולה להשתמש בהן כדי לזהות מופע של שירות.
plan string[] תוכנית השירות שנבחרה כשנוצר מופע השירות.
credentials object פרטי הכניסה הספציפיים לשירות שנדרשים כדי לגשת למופע השירות.

VCAP_APPLICATION

משתנה הסביבה VCAP_APPLICATION הוא אובייקט JSON שמכיל מטא-נתונים על האפליקציה.

דוגמה

{
  "application_id": "12345",
  "application_name": "my-app",
  "application_uris": ["my-app.example.com"],
  "limits": {
    "disk": 1024,
    "mem": 256
  },
  "name": "my-app",
  "process_id": "12345",
  "process_type": "web",
  "space_name": "my-ns",
  "uris": ["my-app.example.com"]
}

שדות

שדה סוג תיאור
application_id string ה-GUID שמזהה את האפליקציה.
application_name string השם שהוקצה לאפליקציה כשהיא נדחפה.
application_uris string[] מזהי ה-URI שהוקצו לאפליקציה.
limits object המגבלות על נפח האחסון ועל הזיכרון שמותרים לאפליקציה. מגבלות הזיכרון ונפח האחסון מסופקות כשפורסים את האפליקציה, בשורת הפקודה או בקובץ מניפסט של אפליקציה. מגבלות הדיסק והזיכרון מיוצגות כמספרים שלמים, עם יחידה משוערת של MB.
name string זהה ל-application_name.
process_id string מזהה המשתמש (UID) של התהליך. המאפיין הזה מופיע רק בקונטיינרים של אפליקציות שפועלות.
process_type string סוג התהליך. המאפיין הזה מופיע רק בקונטיינרים של אפליקציות שפועלות.
space_name string השם של המרחב שבו האפליקציה פרוסה, בפורמט שקריא לבני אדם.
uris string[] זהה ל-application_uris.

שדות חסרים

חלק מהשדות ב-VCAP_APPLICATION שנמצאים ב-Cloud Foundry לא נתמכים כרגע ב-Kf.

בנוסף לשדות ספציפיים ל-CF ולשדות שיצאו משימוש (cf_api, host, users), השדות שלא נתמכים ב-Kf הם:

  • application_version (זהה ל-version)
  • organization_id
  • organization_name
  • space_id
  • start (זהה ל-started_at)
  • started_at_timestamp (זהה ל-state_timestamp)