איך יוצרים ConfigMap ואז מגדירים את השירותים והעדכונים של Knative Serving כך שישתמשו ב-ConfigMap הזה.
תרחיש שימוש נפוץ בשירות הוא שימוש ב-ConfigMaps כדי להפריד בין קוד האפליקציה לבין ההגדרה. ConfigMap דומה ל-Secret, אבל משתמשים ב-Secret למידע רגיש וב-ConfigMap לאחסון נתונים לא רגישים כמו מחרוזות חיבור, פרטי כניסה ציבוריים, שמות מארחים וכתובות URL. אפשר לקרוא מידע נוסף על שימוש ב-ConfigMaps במסמכי Google Kubernetes Engine.
כשמאפשרים למאגרי נתונים לגשת ל-ConfigMaps, אפשר לבחור באחת מהאפשרויות הבאות:
- מטמיעים את ConfigMap כנפח, כשהערכים של ConfigMap זמינים כקבצים בנפח המוטמע. מומלץ לעשות את זה כדי לוודא שאתם קוראים את הגרסה העדכנית ביותר של ConfigMap.
- מעבירים את ה-ConfigMap באמצעות משתני סביבה.
יצירת ConfigMap
יש כמה דרכים ליצור ConfigMap, כמו שמתואר בדף ConfigMaps בחומרי העזר של GKE. לנוחיותכם, השלבים הבאים מראים דרך פשוטה ליצירת ConfigMap.
כשיוצרים ConfigMap, חשוב לוודא שיוצרים אותו באותו מרחב שמות כמו האשכול שבו פועל שירות Knative serving. בהוראות האלה נעשה שימוש במרחב השמות default.
אפשר ליצור ConfigMap משורת הפקודה:
kubectl create configmap NAME DATA
מחליפים את:
- NAME הוא השם של אובייקט ConfigMap.
הערך DATA יכול להיות:
- הדגל
--from-fileוהנתיב של כל ספרייה שמכילה קובץ תצורה אחד או יותר. - הדגל
--from-literalוצמד מפתח/ערך לכל אחד מהם שרוצים להוסיף ל-ConfigMap.
- הדגל
לדוגמה:
kubectl create configmap special-config --from-literal=special.how=very --from-literal=special.type=charm
ה-ConfigMap נוצר ומועלה למרחב השמות default, שבו הוא זמין לאשכולות.
הגדרת ConfigMap כזמין לשירות
אחרי שיוצרים ConfigMap, אפשר להפוך אותו לזמין לשירות Knative serving שלכם כנפח או כמשתני סביבה באמצעות Google Cloud המסוף או Google Cloud CLI כשפורסים שירות חדש או מעדכנים שירות קיים ופורסים עדכון:
המסוף
נכנסים אל Knative serving במסוף Google Cloud :
אם אתם מגדירים שירות חדש שאתם פורסים, לוחצים על יצירת שירות. אם אתם מגדירים שירות קיים, לוחצים על השירות ואז על Edit & Deploy New Revision (עריכה ופריסה של עדכון חדש).
בקטע הגדרות מתקדמות, לוחצים על משתנים וסודות.
בקטע Reference a ConfigMap (הפניה ל-ConfigMap), בוחרים את ה-ConfigMap הרצוי מהתפריט הנפתח.
- בתפריט הנפתח Reference method (שיטת ההפניה), בוחרים את האופן שבו רוצים להשתמש ב-ConfigMap, שמוגדר כנפח או כמשתני סביבה.
- אם משתמשים בנתיב כנפח, מציינים את הנתיב ואז לוחצים על סיום.
- אם חושפים את המשתנים כמשתני סביבה:
- מזינים את השם של המשתנה ובוחרים את הערך המתאים של ConfigMap מהתפריט הנפתח מפתח.
- לוחצים על הוספה כדי להוסיף עוד ערך ConfigMap.
- מזינים את השם של המשתנה ובוחרים את הערך המתאים של ConfigMap מהתפריט הנפתח מפתח.
- לוחצים על סיום.
לוחצים על הבא כדי להמשיך לקטע הבא.
בקטע Configure how this service is triggered (הגדרה של אופן הפעלת השירות), בוחרים את סוג הקישוריות שרוצים להשתמש בו כדי להפעיל את השירות.
לוחצים על יצירה כדי לפרוס את התמונה ב-Knative serving ומחכים עד שהפריסה תסתיים.
שורת הפקודה
אפשר להשתמש ב-Google Cloud CLI כדי להגדיר ConfigMaps לשירותים חדשים או לעדכן שירותים קיימים:
בשירותים קיימים, מריצים את הפקודה
gcloud run services updateעם אחד מהפרמטרים הבאים כדי לעדכן את ConfigMap:דוגמה:
gcloud run services update SERVICE --update-config-maps KEY1=VALUE1,KEY2=VALUE2
מחליפים את:
- SERVICE בשם של השירות.
- KEY1=VALUE1,KEY2=VALUE2 עם רשימה מופרדת בפסיקים של צמדים של שם וערך לכל ConfigMap.
לכל KEY אפשר לציין נתיב לטעינה או לספק משתנה סביבה. מציינים נתיב להרכבה
על ידי התחלה בקו נטוי
/. כל שאר המפתחות תואמים למשתני סביבה. לכל VALUE, מציינים את שם ה-ConfigMap. איך מציינים כמה פרמטרים
אפשרויות של פרמטרים של פקודות
כדי לציין כמה קבוצות של צמדי מפתח/ערך, אפשר לציין כמה פרמטרים כדי שהקוד יהיה קריא. דוגמה:[...] --update-config-maps "KEY=VALUE1" \ --update-config-maps "KEY=VALUE2" \ --update-config-maps "KEY=VALUE3"
בשירותים חדשים, מגדירים את ConfigMap על ידי הרצת הפקודה
gcloud run deployעם הפרמטר--set-config-maps:gcloud run deploy SERVICE --image=IMAGE_URL --set-config-maps KEY1=VALUE1,KEY2=VALUE2
מחליפים את:
- IMAGE_URL עם הפניה לקובץ אימג' של קונטיינר, לדוגמה,
gcr.io/cloudrun/hello. - SERVICE בשם של השירות.
- KEY1=VALUE1,KEY2=VALUE2 עם רשימה מופרדת בפסיקים של צמדים של שם וערך לכל ConfigMap.
לכל KEY אפשר לציין נתיב לטעינה או לספק משתנה סביבה. מציינים נתיב להרכבה
על ידי התחלה בקו נטוי
/. כל שאר המפתחות תואמים למשתני סביבה. לכל VALUE, מציינים את שם ה-ConfigMap. איך מציינים כמה פרמטרים
אפשרויות של פרמטרים של פקודות
כדי לציין כמה קבוצות של צמדי מפתח/ערך, אפשר לציין כמה פרמטרים כדי שהקוד יהיה קריא. דוגמה:[...] --update-config-maps "KEY=VALUE1" \ --update-config-maps "KEY=VALUE2" \ --update-config-maps "KEY=VALUE3"
- IMAGE_URL עם הפניה לקובץ אימג' של קונטיינר, לדוגמה,