זמן הריצה של האפליקציה הוא הסביבה שבה האפליקציות מופעלות.
| אפליקציות Buildpack | אפליקציות של קובצי אימג' של קונטיינרים | |
|---|---|---|
| ספריות מערכת | סופק על ידי Stack | המידע שמופיע בקונטיינר |
| גישה לרשת | גישה מלאה דרך Envoy sidecar | גישה מלאה דרך Envoy sidecar |
| מערכת קבצים | שטח אחסון זמני | שטח אחסון זמני |
| שפת זמן הריצה | מסופק על ידי Stack או Buildpack | מובנה במאגר |
| משתמש | מוגדר על ידי המקבץ | מוגדר במאגר |
| מנגנון בידוד | Kubernetes Pod | Kubernetes Pod |
| DNS | סופק על ידי Kubernetes | סופק על ידי Kubernetes |
משתני סביבה
משתני הסביבה מוזרקים לאפליקציה בזמן הריצה על ידי Kubernetes. המשתנים מתווספים לפי הסדר הבא, כאשר ערכים מאוחרים יותר מבטלים ערכים קודמים עם אותו שם:
- מרחב (מוגדר על ידי האדמינים)
- אפליקציה (מוגדר על ידי מפתחים)
- מערכת (הוגדר על ידי 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_idorganization_namespace_idstart(זהה ל-started_at)started_at_timestamp(זהה ל-state_timestamp)