מה זה Kubernetes?

זהו פרוייקט אורכיסטרציה של קונטיינריים שנלקח מ- Google כפלטפורמט קוד פתוח. נבנה על בסיס לקחים שנלמדו בפיתוח וההפעלה של בורג ואומגה של Google. נבנה מהיסוד כאוסף של רכיבים אשר מתרכזים סביב פריסה, תחזוקה וקנה מידה של עומסי עבודה.

מה הוא עושה?

  • אוטומצייה לעומסי עבודה
  • פריסות Blue/Green
  • מנהל אפליקציות Stateless/Stateful
  • מספק מנגנון לגילוי שירותים
  • משגר עבודות ומשימות מתוזמנות cronjobs
  • שילוב ותמיכה קלה ביישומי צד שלישי

מושגי מפתח:

Pods

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

Pod Example

apiVersion: v1​
kind: Pod​
metadata:​
  name: pod-example​
spec:​
  containers:​
  - name: nginx​
    image: nginx:stable-alpine​
    ports:​
    - containerPort: 80​

Services

הם שיטה אחודה של גישה לעומסי עבודה אשר חשופים לעולם, סירביסים לעומת פודים אינם חלופיים.

סוגי Services

  • ClusterIP (בררת מחדל)
  • NodePort
  • LoadBlancer
  • ExternalName

kube-apiserver

הינו ממשק REST שפונה למישור הבקרה והנתונים של Kubernetes, כל הלקוחות היישומים האחרים מקיימים אינטרקציה עם Kubernetes אך ורק דרך שרת ה- API. הוא פועל כשומר הסף בגישה אל ה- Cluster בכך שהוא מטפל באימות, בקשות ולידציה ובקרת כניסה בנוסף להיותו חזית למערכת הנתונים.

etcd

הוא למעשה מערכת הנתונים של Kubernetes אשר שומרת אובייקטים ומידע על התצורה.

kubelet

משמש כסוכן על גבי כל אחד מהשרתים (Nodes) של Kubernetes אשר מנהל את מחזור החיים של כל אחד מהפודים שנימצאים על אותו שרת (Node)

kube-controller-manager

הוא התהליך הראשי שמנהל את כל לולאת הבקרה של רכיבי הליבה. כמו גם מנטר את המצב המצוי של ה- Cluster ומננוט לעבר המצב הרצוי.

kube-scheduler

הינו מנוע מילולי עשיר אשר מהעריך את דרישות עומס העבודה ומנסה למקם אותו על משאב תואם. דרישות עומס עבודה יכולות לכלול: דרישות בלליות לחומרה, תוויות ודרישות אחרות למשאבים מותאמים אישית.

kube-proxy

מנהל את כללי הרשת בכל שרת (Node), מבצע העברת חיבור או איזון עומסים עבור שירותי הליבה של Kubernetes.

Container runtime engine

זמן ריצה של קונטיינר הוא יישום תואם שמבצע ומנהל קונטיינרים.

Namespaces​

Namespaces הם אשכולות או סביבות לוגיות והם השיטה העיקרים לחלוקת ה- Cluster.

Helm

Helm עוזר לנו לנהל יישומי Kubernetes, תרשימי Helm עוזרים לנו להגדיר, להתקין ולשדרג אפילו את ישומי ה- Kubernetes המורכבים ביותר.

המשך יבוא.

דילוג לתוכן