שיעור 8: Service — כתובת רשת יציבה ל-Pods
עד עכשיו למדנו ש-Kubernetes שומר על מספר עותקים (Pods) של האפליקציה ומשחזר אותם כשהם נופלים. אבל יש כאן בעיה שקטה: לכל Pod יש כתובת רשת (IP) משלו, והכתובת הזו זמנית — היא משתנה בכל פעם שה-Pod נופל, נוצר מחדש או עובר ל-node אחר. אם רכיב אחד יפנה ישירות ל-IP של Pod, ברגע שה-Pod יוחלף הכתובת תהפוך לחסר
Service הוא כמו מספר הטלפון של דלפק הקבלה במשרד. העובדים מתחלפים כל הזמן, אבל מי שמתקשר תמיד מחייג לאותו מספר — והשיחה מגיעה למישהו שזמין.
- סרוויס
- אובייקט ב-Kubernetes שנותן שם וכתובת רשת יציבים לקבוצת Pods, ומפזר אליהם בקשות. הכתובת נשארת קבועה גם כשה-Pods מתחלפים.
- קלאסטר-איי-פי
- סוג ה-Service ברירת המחדל: כתובת וירטואלית פנימית שזמינה רק מתוך הקלאסטר, כך שרכיבים פנימיים יכולים לפנות אליה אבל לא העולם החיצוני.
- selector ותוויות
- label היא זוג מפתח-ערך שמודבק על Pod (למשל app: web). selector ב-Service מציין אילו תוויות לחפש, וכך ה-Service יודע לאילו Pods לשלוח תעבורה.
- כתובת Pod זמנית
- כל Pod מקבל IP משלו, אבל ה-IP הזה לא יציב: הוא משתנה כשה-Pod נוצר מחדש או עובר node. לכן אסור להסתמך עליו ישירות.
- איזון עומסים
- חלוקת הבקשות הנכנסות בין כמה Pods זהים, כדי שאף עותק לא יעמיס לבדו ושהשירות יישאר זמין.
- targetPort
- הפורט שבו האפליקציה בתוך ה-Pod מאזינה בפועל. ה-Service מקבל תעבורה ב-port שלו ומעביר אותה אל ה-targetPort של ה-Pod.