אפשר לפרוס אפליקציות של Kf בצמתים ייעודיים באשכול. התכונה הזו נדרשת אם יש לכם נסיבות שבהן אתם רוצים יותר שליטה בצומת שבו נוחת App Pod. לדוגמה:
- אם אתם משתפים את אותו אשכול עבור אפליקציות שונות, אבל רוצים צמתים ייעודיים לאפליקציה מסוימת.
- אם רוצים צמתים ייעודיים לארגון מסוים (מרחב Kf).
- אם רוצים לטרגט מערכת הפעלה ספציפית כמו Windows.
- אם רוצים למקם יחד Pods משני שירותים שונים שמתקשרים לעיתים קרובות.
כדי להפעיל בידוד של מחשוב, Kf משתמש ב-nodeSelector של Kubernetes. כדי להשתמש בתכונה הזו, קודם מוסיפים תוויות לצמתים או למאגרי הצמתים שבהם רוצים שה-Pods של האפליקציה ימוקמו, ואז מוסיפים את אותן תוויות שעומדות בדרישות למרחב Kf. כל האפליקציות שמותקנות במרחב הזה מגיעות לצמתים עם תוויות תואמות.
הגדרת nodeSelector באשכול Kf
כברירת מחדל, בידוד המחשוב מושבת. כדי להגדיר תוויות ו-nodeSelector, פועלים לפי השלבים הבאים.
מוסיפים תווית (
distype=ssd) לצומת שבו רוצים שה-Pods של האפליקציה ינחתו.kubectl label nodes nodeid disktype=ssdמוסיפים את אותה תווית במרחב Kf. כל האפליקציות שנפרסו במרחב הזה ינחתו בצמתים שעומדים בדרישות.
kf configure-space set-nodeselector space-name disktype ssdאפשר להוסיף כמה תוויות על ידי הפעלת אותה פקודה שוב.
בודקים שהתווית מוגדרת.
kf configure-space get-nodeselector space-nameלמחוק את התווית מהמרחב.
kf configure-space unset-nodeselector space-name disktype
החלפת nodeSelector עבור מערכי Kf
אפשר לטרגט פריסה של אפליקציות Kf לפי סוג ה-stack (buildpack) שמשמש לבנייה ולאריזה של האפליקציה. לדוגמה, אם רוצים שאפליקציות שנבנו באמצעות spaceStacksV2 יגיעו לצמתים עם ליבת Linux 4.4.1. ערכי nodeSelector במערך מבטלים את הערכים שהוגדרו במרחב.
כדי להגדיר את nodeSelector במערך:
עורכים את
config-defaultsשל אשכול Kf ומוסיפים את התוויות.$ kubectl -n kf edit configmaps config-defaultsמוסיפים את
nodeSelectorלהגדרת הערימות...... ..... spaceStacksV2: | - name: cflinuxfs3 image: cloudfoundry/cflinuxfs3 nodeSelector: OS_KERNEL: LINUX_4.4.1 ..... .....