האימוץ של ארכיטקטורות נייטיביות לענן ושל קונטיינרים משנה את הדרך בה אנו מפתחים, מושקים וניהלים אפליקציות. קונטיינרים מציעים מהירות, גמישות וקידמה, מדליקים היסטריה חשובה באסטרטגיות ה-IT. אך, המציאות עבור רבות מהארגונים היא שמכונות וירטואליות (VMs) ממשיכות לשחק תפקיד מרכזי, במיוחד כאשר מדובר באפליקציות מורשות או עם מצב קבוע. גם מוסדות פיננסיים מובילים כמו גולדמן סאקס מכירים את הערך של מכונות וירטואליות לצד עומסי עבודה בקונטיינרים ומחפשים דרכים לנהל אותן ביעילות.
כל זאת יוצרת פער פוטנציאלי: היתרונות של הקונטיינריזציה מצד אחד והצורך הנמשך ב-VMs מצד שני. KubeVirt מציב גשר זה על ידי הרחבת יכולות Kubernetes לניהול מכונות וירטואליות, מעניק לך אפשרות לאחד את התשתיות שלך ולהפוך את המעבר לטכנולוגיות נייטיביות לענן לפעולה חלקה יותר.
במאמר זה, אנו חוקרים למה KubeVirt היא פתרון משכנע עבור ארגונים שמחפשים לייעל את פעולות ה-IT ולקבל גמישות בסביבת תשתיות היברידית.
מה זה בדיוק KubeVirt?
KubeVirt היא פרוייקט קוד פתוח המהפך את Kubernetes לפלטפורמה עוצמתית המסוגלת לנהל גם קונטיינרים וגם מכונות וירטואליות. פשוט לומר, KubeVirt משנה את Kubernetes למערך בקרה יחיד עבור תשתיות כולן.
כך זה עובד:
- קובירט כהרחבה: קובירט מוסיף הגדרות משאבים מותאמות (CRDs) לקוברנטיס, ומציג סוג אובייקט חדש המייצג מכונות וירטואליות.
- מכונות וירטואליות כ"פודים": באמצעות קובירט, כל מכונה וירטואלית פועלת בתוך פוד מיוחד, שמשתלב בצורה הדוקה במערכת האקולוגית של קוברנטיס.
- ניהול מכונות וירטואליות מְפָשֵׁט עם קוברנטיס: כעת אתה יכול לנצל את אותם כלים של קוברנטיס (
kubectl
ואת ממשק ה-API של קוברנטיס) ואת השיטות המומלצות כדי ליצור, להתחיל, להפסיק, להעביר ולנטר מכונות וירטואליות לצד העומסים המיכליים שלך.
חשוב על קובירט כהאפשרה לקוברנטיס לדבר את שפת הוירטואליזציה, ולפתוח עולם של אפשרויות לניהול התשתיות שלך.
ההשפעה העסקית של קובירט
קובירט מספק יתרונות מוחשיים שהולכים מעבר לאלגנטיות טכנית. על ידי אימוץ קובירט, הארגון שלך עשוי להרוויח את הדברים הבאים:
- ניהול עומסי עבודה חלק: פרק את הקירות בין היישומים המבוססים על מכונות וירטואליות לבין העומסים המיכליים שלך. נהל הכל מפלטפורמה אחת באמצעות אותם כלים ותהליכים, וכך מפשט את הפעולות ומפחית את המורכבות.
- יעילות משאבים משופרת: קובירט מאפשר לך להריץ הן מכונות וירטואליות מסורתיות והן מיכלים על אותה חומרה של אשכול ביסוד. אופטימיזציה של ניצול המשאבים, שיפור הצפיפות של התשתיות, ואפשרות להשיג חיסכון משמעותי בעלויות.
- מודרניזציה מואצת: יישומים ישנים הקשורים ל-VMs לא צריכים להיות מחסום לחדשנות. KubeVirt מספקת נתיב הדרגתי למודרניזציה של יישומים בקצב שלך. אתה יכול לארוז ולמגר את הרכיבים לאורך זמן, הכל בתוך אותו סביבה של Kubernetes, תוך צמצום הפרעות.
- תשתית מוכנה לעתיד: על ידי השקעה ב-KubeVirt, אתה מתאם עם עקרונות של ענן-native וממקם את Kubernetes כבסיס של ערמת הטכנולוגיה שלך. זה מקדם גמישות ואגיליות, ומאפשר לך להסתגל בקלות לדרישות העסקים המתפתחות.
למה הארגון שלך צריך להתעניין?
KubeVirt מספקת ערך משכנע, במיוחד בתחומים אלה:
- צוותי IT ו-DevOps: KubeVirt מפשטת את הפעולות על ידי מתן מישור שליטה מאוחד לכל העומסים שלך. זה מאפשר לך לייעל את זרימת העבודה, להפחית את העומס על הכלים, ולשפר את היעילות הכוללת של הצוות.
- מנהלים: השג גמישות תפעולית והשג הפחתת עלויות ונתיב מזורז לעבר מודרניזציה של התשתית. KubeVirt מתאימה את ההשקעות בטכנולוגיה להצלחה עסקית ארוכת טווח.
- עומסים מעורבים: אם אתה מנהל גם יישומים מבוססי VM ישנים וגם פריסות מודרניות באריזות, KubeVirt חיונית. זה מאפשר לך להימנע מהתקשרות עם ספקים, לצמצם את המורכבות, ולשמור על שליטה מלאה על הבחירות שלך בתשתית.
הנה כמה נקודות כאב ספציפיות ש-KubeVirt מטפלת בהן:
- מתוסכל מלה管理 סביבות נפרדות עבור VMs ואריזות? KubeVirt מביאה אותם יחד, מה שמקל מאוד על הניהול.
- מחפש גמישות מבלי להתפשר על השקעות קיימות? KubeVirt מאפשר לך לנצל את תשתית ה-VM שלך תוך כדי עדכון.
- רוצה לשפר את היעילות הכלכלית ושימוש במשאבים? KubeVirt מסייע לאחד עומסי עבודה לשימוש טוב יותר.
- מתמודד עם העברות מורכבות של אפליקציות ישנות? עדכן בהדרגה ושלוט בקצב שלך עם KubeVirt.
מתחילים: פריסה ויישום
פריסת KubeVirt דורשת סביבה של Kubernetes מוכנה היטב. סעיף זה מספק מדריך מפורט שיעזור לך להקים וליישם את KubeVirt בתשתית שלך.
דרישות מקדימות
לפני שתתחיל, ודא שהדרישות הבאות מתקיימות:
1. אשכול Kubernetes
נדרש לך אשכול Kubernetes (או נגזרת כמו OpenShift) על בסיס אחת מהשחרורים האחרונים של Kubernetes הזמינים בזמן שחרור KubeVirt.
2. תצורת שרת API של Kubernetes
שרת ה-API של Kubernetes חייב להיות מוגדר עם --allow-privileged=true
כדי להריץ את DaemonSet המורשה של KubeVirt.
3. כלי Kubectl
ודא שיש לך את הכלי הלקוח kubectl
מותקן ומוגדר כדי לתקשר עם האשכול שלך.
4. תמיכה בריצת קונטיינרים
KubeVirt נתמך על ידי ריצות קונטיינרים הבאות:
Containerd
crio
(עםrunv
)
ריצות קונטיינרים אחרות אמורות לעבוד גם כן, אך אלו המוזכרות הן היעדים העיקריים.
5. וירטואליזצית חומרה
חומרה עם תמיכה בוירטואליזציה מומלצת. ניתן להשתמש ב- virt-host-validate
כדי לוודא שהמארחים שלך מסוגלים להפעיל עובדות וירטואליזציה:
$ virt-host-validate qemu
שיקולי רשת ואבטחה
-
תצורת רשת: תכנן איך המכונות הווירטואליות שלך יתחברו ויתקשרו עם רשתות חיצוניות ושאר סביבת ה-Kubernetes שלך.
-
אינטגרצית AppArmor: על מערכות שבהן מופעל AppArmor, עשוי להיות צורך לשנות את פרופילי ה-AppArmor כדי לאפשר את ביצוע המיכלים המפונים של KubeVirt. לדוגמה:
# vim /etc/apparmor.d/usr.sbin.libvirtd
/usr/libexec/qemu-kvm PUx,
# apparmor_parser -r /etc/apparmor.d/usr.sbin.libvirtd
התקנת KubeVirt
כדי להתקין את KubeVirt, עקוב אחרי השלבים הבאים:
1. התקנת אופרטור KubeVirt
האופרטור של KubeVirt פשוט את ההתקנה והניהול של רכיבי KubeVirt. הריץ את הפקודות הבאות כדי להשיג את הגרסה העדכנית ביותר של KubeVirt:
# Point at latest release
$ export RELEASE=$(curl https://storage.googleapis.com/kubevirt-prow/release/kubevirt/kubevirt/stable.txt)
# Deploy the KubeVirt operator
$ kubectl apply -f https://github.com/kubevirt/kubevirt/releases/download/$ RELEASE /kubevirt-operator.yaml
# Create the KubeVirt CR (instance deployment request) which triggers the actual installation
$ kubectl apply -f https://github.com/kubevirt/kubevirt/releases/download/$ RELEASE /kubevirt-cr.yaml
# Wait until all KubeVirt components are up
$ kubectl -n kubevirt wait kv kubevirt --for condition=Available
2. תצורה עבור וירטואליזציה לא חומרתית
אם וירטואליזציה חומרתית אינה זמינה, הפעל אמולצית תוכנה על ידי הגדרת useEmulation לערך true ב- KubeVirt CR:
$ kubectl edit -n kubevirt kubevirt kubevirt
# Add the following to the kubevirt.yaml file
spec
configuration
developerConfiguration
useEmulationtrue
שיטות יישום מומלצות
כדי להשיג את המרב מ-KubeVirt, עקוב אחרי שיטות היישום המומלצות הבאות:
1. הערכה של עומס העבודה
לתת עדיפות ל-VMs שמתאימות לאחסון בקונטיינרים. התחילו עם אפליקציות פחות חיוניות כדי לצבור ניסיון מעשי.
2. לבחון את הרשת ואת האחסון
תכננו איך לחבר את רשת ה-VM לרשת ה-Kubernetes הקיימת שלכם ולאינטגרציה של פתרונות אחסון לנתונים עמידים באמצעות תוספות של ממשק אחסון לקונטיינרים (CSI).
3. להדגיש ניטור וניהול
השתמשו בכלי ניטור של Kubernetes או חקרו פתרונות ספציפיים של KubeVirt כדי לקבל תובנות בביצועי VM לצד הקונטיינרים שלכם.
4. העברת חיים
אפשרו והגדירו העברת חיים כדי להעביר VMs פועלות למחשבים אחרים ללא הפסקת שירות. זה כולל הגדרת שערי תכונות והגדרת פרמטרים ספציפיים להעברה ב-KubeVirt CR:
apiVersion kubevirt.io/v1
kind KubeVirt
metadata
name kubevirt
namespace kubevirt
spec
configuration
developerConfiguration
featureGates
LiveMigration
migrations
parallelMigrationsPerCluster5
parallelOutboundMigrationsPerNode2
bandwidthPerMigration 64Mi
completionTimeoutPerGiB800
progressTimeout150
דוגמא להתקנה על OpenShift (OKD)
אם אתם משתמשים ב-OKD, צעדים נוספים כוללים הגדרת דרישות ניהול האבטחה (SCC):
$ oc adm policy add-scc-to-user privileged -n kubevirt -z kubevirt-operator
דוגמא להתקנה על k3OS
עבור k3OS, וודאו שאתם טוענים את המודולים הנדרשים על כל הצמתים לפני התקנת KubeVirt:
k3os
modules
kvm
vhost_net
אתחלו את הצמתים עם ההגדרה הזו ואז התקינו את KubeVirt כפי שתואר לעיל.
התקנת בנייה יומית של מפתחים
עבור בניית מפתחים האחרונה, הריצו:
$ LATEST=$(curl -L https://storage.googleapis.com/kubevirt-prow/devel/nightly/release/kubevirt/kubevirt/latest)
$ kubectl apply -f https://storage.googleapis.com/kubevirt-prow/devel/nightly/release/kubevirt/kubevirt/$ LATEST /kubevirt-operator.yaml
$ kubectl apply -f https://storage.googleapis.com/kubevirt-prow/devel/nightly/release/kubevirt/kubevirt/$ LATEST /kubevirt-cr.yaml
התקנה מהמקור
על ידי עקיבות אחרי השלבים ושיטות העבודה הטובות האלה, תוכל להבטיח יישום חלק ומוצלח של KubeVirt, שמספק פתרון אחיד לניהול תשתית המבוססת על מכונות ומיכלים.
שיטות העבודה ביישום
עקוב אחרי שיטות העבודה הטובות הללו כדי להפיק את המרב מ-KubeVirt:
- ניתוח עומס: לא כל אפליקציה מתאימה מיידית ל-KubeVirt. כדאי לתת עדיפות למכונות וירטואליות עם פוטנציאל טוב להמרה למיכלים. אפליקציות פחות קריטיות יכולות להיות דרך נהדרת לקבל ניסיון פרקטי תוך מינימום סיכון.
- ניתוח רשת ואחסון: חשוב לשקול בקפידה איך לחבר את רשת ה-VM עם רשת ה-Kubernetes הקיימת שלך. תכנן אינטגרצית אחסון לנתונים עמידים באמצעות פתרונות כמו תוספות של ממשק אחסון של מיכלים (CSI).
- הדגש על ניטור וניהול: התאם את הכלים הקיימים שלך לניטור של Kubernetes או חקור פתרונות התואמים ל-KubeVirt כדי לרכוש נראות לביצועי ה-VM לצד המיכלים שלך.
מסקנה
KubeVirt מציע נתיב משכנע לארגונים המחפשים לנצל את היתרונות של טכנולוגיות ענן-נייטיביות תוך מקסימום הערך של ההשקעות הקיימות במכונות וירטואליות. זה מעלה את היעילות התפעולית, מעודד גמישות, ומאיץ את המסע המודרניזציה שלך.
Source:
https://dzone.com/articles/kubevirt-implementation-who-needs-it-and-why