התקנות של יישומים ב-Kubernetes יכולות להיות אתגריות, במיוחד עבור יישומים השומרים על המצב כמו MongoDB לאשף Kubernetes. איך ניתן להקל על ההתקנה? השתמשו ב-MongoDB Kubernetes Operator להתקנה ולניהול אוטומטי של יישומים ששומרים על המצב בתוך אשף Kubernetes שלכם.
במדריך זה, תלמדו איך להתקין את MongoDB ב-Kubernetes באמצעות ה- MongoDB Kubernetes Operator.
המשך לקרוא והתחילו לאוטומט את ההתקנות שלכם ב-Kubernetes!
דרישות מקדימות
מדובר בהדגמה ידי יד. כדי לעקוב, וודאו שיש לכם את הדרישות הבאות:
- A Kubernetes cluster – This demo uses the Kubernetes cluster v1.23.
- קובקובנטל (Kubectl) מותקן על המכונה המקומית שלך.
- MongoDB Compass מותקן על המכונה המקומית שלך.
- גיט (Git) מותקן על המכונה שלך.
- jq מפרט JSON מותקן על המכונה המקומית שלך.
יצירת מרחב שמות עבור MongoDB
כאשר אתה מפרסם יישומים ל-Kubernetes, יצירת מרחב שמות מסוים עבור הפרוייקטים שלך תמיד מומלצת.
מרחבי שמות עוזרים בניהול משאבי Kubernetes יותר קל עבור מנהלי מערכות ומונעים קריסות שמות. בו זמנית, יצירת מרחבי שמות מונעת שימוש לא נכון במשאבים בסביבת Kubernetes.
פתח את הטרמינל שלך והרץ את הפקודה kubectl create
ליצירת מרחב שמות חדש (ns
) בשם mongodb
באשכול Kubernetes שלך.
עכשיו הרץ את הפקודה הבאה kubectl get
כדי לאמת את רשימת מרחבי השמות באשכול Kubernetes שלך.
תראה מרחב שמות חדש בשם mongodb זמין באשכול שלך, כפי שמוצג למטה.

הורדת מפעיל Kubernetes של MongoDB
אחרי שיצרת מרחב שמות, הגיע הזמן להוריד את אופרטור ה־Kubernetes של MongoDB. אופרטור ה־Kubernetes של MongoDB הוא סט של אופרטורים Kubernetes. אלו אופרטורים Kubernetes מציעים התקנה, הגדרה וניהול אוטומטי של MongoDB Community על סביבת Kubernetes.
הריצו את הפקודה git
למטה כדי לקלון
את פרויקט אופרטור ה־Kubernetes של MongoDB למכונה המקומית שלכם.
עכשיו, הריצו כל פקודה למטה כדי לשנות את תיקיית העבודה הנוכחית שלכם ל־mongodb-kubernetes-operator
ולרשום (ls
) את כל הקבצים והתיקיות הזמינים.
תראו תת־תיקייה בשם config בתוך תיקיית הפרויקט ~/mongodb-kubernetes-operator, כפי שמוצג למטה. התת־תיקייה config מכילה דוגמאות של קבצי YAML להפצת MongoDB על Kubernetes.

הפצת ה־MongoDB Operator
עכשיו, כשהמרחב המותאם אישית שלכם ואופרטור ה־Kubernetes של MongoDB מוכנים, אתם מוכנים להפיץ את אופרטור ה־MongoDB לאשף ה־Kubernetes שלכם. כיצד? תשתמשו בתצורה בתוך תיקיית ה־config.
אופרטור ה־MongoDB טופל את מחזור החיים של ההפצה שלכם של MongoDB על אשף ה־Kubernetes. האופרטור ייצור, ינהל ויגדיל באופן אוטומטי את המצב של ההפצה של MongoDB שלכם.
להפעיל את אופרטור MongoDB, יש ליצור הגדרת משאבים מותאמת אישית (CRD) של Kubernetes Custom Resources Definition (CRD) ואת הבקר. ה- CRD של Kubernetes הוא נרחב ל- API של Kubernetes, שמאפשר לך ליצור משאבים מותאמים אישית ב-Kubernetes.
1. הפעל את הפקודה kubectl apply
למטה כדי ליצור CRD חדש של Kubernetes עבור פיתוח MongoDB.
ה-אופרטור Kubernetes החליף את כל ההתמעטות אדם כדי לפרסם את היישום ב-Kubernetes. האופרטור הוא בקר של קפיצים שפותח ומנהל באופן אוטומטי את היישום התקי לך ב-Kubernetes.

2. לאחר מכן, הפעל את פקודת kubectl get
הבאה כדי לוודא את רשימת ה-crd
הזמינה ב-Kubernetes שלך.
למטה, תראה את ה-CRD בשם mongodbcommunity.mongodbcommunity.mongodb.org.

3. הפעל את הפקודה למטה כדי ליצור גישה מבוססת תפקיד (RBAC) מותאמת אישית חדשה עבור אופרטור MongoDB, וציין את המימוש של RBAC לכתובת המרחב של mongodb.
פקודה זו יוצרת תפקיד, קשר תפקיד וחשבון שירות חדשים עבור אופרטור MongoDB, הכוללים הרשאות מותאמות אישית על קבוצת ה-Kubernetes שלך. אלו הרשאות מותאמות אישית הנדרשות לפרט לפרט להפעיל ולנהל באופן אוטומטי את MongoDB.

4. כעת, הפעל את כל פקודת kubectl
למטה כדי לוודא את התפקיד, הקשר תפקיד וחשבון השירות עבור אופרטור MongoDB.
הפלט למטה מציג את התפקיד, הקשר תפקיד וחשבון השירות "mongodb-kubernetes-operator" הוא נוצר במרחב השמור "mongodb".

5. לאחר הוודאות, הפעל את הפקודה של kubectl
למטה כדי להפעיל את אופרטור MongoDB במרחב השמור "mongodb".
פקודה זו תיצור כלי pod חדש (mongodb-kubernetes-operator) עם תמונת Docker בסיסית (quay.io/mongodb/mongodb-kubernetes-operator). פוד זה ישמש כבקר להפעלה אוטומטית של MongoDB ReplicaSets בקבוצת Kubernetes שלך.
למטה, ניתן לראות כי פרטי ההפעלה של אופרטור MongoDB נוצרים, אך הפוד עדיין בתהליך איתחול.

6. לבסוף, הפעל את הפקודות הבאות כדי לוודא את ההפעלה והפודים במרחב השמור "mongodb".
כפי שאתה יכול לראות למטה, פוד האופרטור MongoDB פועל.

עימות MongoDB ReplicaSet ל-Kubernetes
לאחר הפעלת מסד הנתונים של MongoDB, יש להפעיל את ReplicaSet ב-Kubernetes כדי לספק זמינות גבוהה ואחריות עבור הפעלת MongoDB שלך. לא תרצה זמן מעצור בהפעלה שלך.
הפעלת ReplicaSets של MongoDB באמצעות MongoDB Kubernetes Operator מאובטחת כברירת מחדל באמצעות אימות SCRAM למשתמשים. באותו זמן, ניתן להשתמש בחיבור מאובטח של TLS למשתמשים ולחיבורי יישומים, ולחשוף מדדי Prometheus לניטור של משאבים.
קשור: התחלה עם מערכת ניטור Kubernetes של Grafana & Prometheus
בתוך התיקייה config/samples/, ישנם מספר דוגמאות של קבצי YAML להפעלת ReplicaSet. כל קובץ יכול לשמש בסטריאו שונה של הפעלה, אך קובץ ההפעלה המוגדר כברירת מחדל הוא mongodb.com_v1_mongodbcommunity_cr.yaml.
1. ערוך את קובץ ה-YAML של ההפעלה בעזרת העורך שאתה מעדיף. בדוגמה זו נעשה שימוש בקובץ /mongodb.com_v1_hostpath.yaml עבור הפעלה מקומית. קובץ זה נמצא בתיקייה config/samples/arbitrary_statefulset_configuration/.
אם אתה מיישם את אופרטור MongoDB Kubernetes בשירותי הענן כמו GKE ו-AKS, השתמש בקובץ YAML mongodb.com_v1_mongodbcommunity_cr.yaml. אך אם אתה מיישם מקומית בתוך Kind או Minikube, אתה יכול להשתמש בקובץ YAML מותאם אישית (arbitrary_statefulset_configuration/mongodb.com_v1_hostpath.yaml), שיצירת PV ו-PVC מותאמים אוטומטית עבור כדוריות MongoDB ReplicaSet.
למטה, שנה את מספר הכדוריות השכפול (חברים) שברצונך להטביע בהתאם לסביבתך, אך ברירת המחדל היא 3. למדריך זה, מספר הכדוריות השכפול מוגדר ל-2.
החלף את <your-password-here> בסיסמה החזקה שלך. תשתמש בסיסמה זו כדי להתחבר למסד הנתונים של MongoDB, וברירת המחדל, אתה משתמש באימות SCRAM.
שמור את השינויים וסגור את העורך כאשר אתה מרוצה מהסיסמה.
2. לאחר מכן, הרץ את הפקודה kubectl
הבאה כדי להטביע (apply
) את כדוריות השכפול של MongoDB באמצעות הקובץ mongodb.com_v1_hostpath.yaml
במרחב השמות mongodb.
הפקודה הזו יוצרת את האלה:
- A new custom resource (MongoDBCommunity) with the name mdb0 under the
mongodbcommunity.mongodb.com/v1
CRD
- סודות Kubernetes לאחסון סיסמאות משתמש MongoDB. בנוסף, כמה PVs ו-PVCs עם סוג ה-typ כ-
hostPath
עבור קבוצת השכפול MongoDB.
ההפרטה תיקח זמן מסוים, תלוי בגודל של ReplicaSets שיש ליצור ובקשת הקוברנטיס עצמה.

3. לאחר ההפרטה, הריצו כל פקודה מתחת כדי לוודא את המשאבים המותאמים אישית וה-pods במרחב ה-mongodb
.
הפלט למטה מראה את התוכן הבא:
- המשאב המותאם MongoDBCommunity עם השם mdb0 פועל עם MongoDB v4.4.0.
- שני pods של MongoDB ReplicaSet פועלים עם השמות mdb0-0 ו־mdb0-1. כל פוד מכיל שני תוכניות שונות, התוכנית mongod, והתוכנית mongodb-agent.

4. לבסוף, הריצו פקודת kubectl
נוספת מתחת כדי לוודא את ה-pv
וה-pvc
במרחב ה-mongodb
.
הפלט למטה מראה לכם כמה pv ו־pvc בשימוש על ידי pods של MongoDB ReplicaSet.

יצירת משתמש ובסיס נתונים חדשים עבור ההפצה של MongoDB
כרגע, השלמתם את ההפצה של מפעיל MongoDB ו-ReplicaSets לערכת הקוברנטיס שלכם. השלב הבא הוא ליצור בסיס נתונים חדש ומשתמש MongoDB עבור האפליקציה שלך.
תיצרו סוד קוברנטיס חדש עבור המשתמש החדש, תערכו את משאב המותאם של ה-ReplicaSet, ותעדכנו את ה-ReplicaSet שלכם בערכת הקוברנטיס.
1. צור קובץ YAML חדש באמצעות העורך שאתה מעדיף ומלא את הסוד הקובנטי של Kubernetes הבא. אתה יכול לתת לקובץ YAML שם לפי בחירתך, אך הקובץ מקבל את השם new-user.yaml במדריך זה.
קובץ YAML זה יוצר סוד חדש של Kubernetes עם השם myappdata והסיסמה myapppassword.
2. לאחר מכן, הריץ את הפקודה kubectl
הבאה כדי לבצע את התצורה של new-user.yaml
.
הפקודה הזו יוצרת ומחילה (apply) סוד חדש של Kubernetes לאשכול שלך ומחילה את הסוד הזה למרחב השמות של mongodb.

3. ערוך את קובץ ה-YAML של תצורת ReplicaSet CRD שלך (mongodb.com_v1_hostpath.yaml) בתיקיית config/samples/arbitrary_statefulset_configuration.
הוסף את התצורה הבאה לקובץ mongodb.com_v1_hostpath.yaml שיוצר את מסד הנתונים והמשתמש עבור MongoDB.
ודא שתחליף את scram-secret-myapp בפרטי הזיהוי שלך, שמור את השינויים בקובץ וסגור את העורך.
4. כעת, הפעל את הפקודה הבאה כדי לבצע את השינויים החדשים שביצעת בקובץ mongodb.com_v1_hostpath.yaml
בשלב שלוש.

5. לבסוף, הפעל כל פקודה למטה כדי ליצור את חיבורי ה-MongoDB המפורטים עבור היישום שלך. פקודות אלו יוצרות את חיבורי ה-MongoDB המפורטים עבור היישומים שלך בפורמט JSON ומפענחות את הפלט באמצעות פקודת jq
בשורת הפקודה.
החלף את mdb0-admin-mongoadmin בפרטי הסביבה שלך כדלהלן:
mdb0
– שם המטא-דאטה של משאבי MongoDB.
admin
– מסד הנתונים לאימות.
mongoadmin
– המשתמש שתשתמש בו לאימות
הפלט למטה מראה שאתה יכול להתחבר ל-MongoDB באמצעות חיבורים סטנדרטיים ו-Srv סטנדרטיים. תראה גם את שם המשתמש והסיסמה של התקנת MongoDB שלך.

חיבור להתקנת MongoDB
סיימת להתקין את MongoDB באשף Kubernetes באמצעות אופרטור MongoDB של Kubernetes. אך איך תדע שההתקנה עובדת? תוודא את חיבור המסד והמשתמש שלך ל-MongoDB בתוך אשף Kubernetes.
לאמת את החיבור להתקנת MongoDB שלך, תשתמש בפורוורד פורטים. פורוורד פורטים ב-Kubernetes מאפשר לך ליצור פורט הולך ומכל שירות Kubernetes לפורט המקומי שלך.
1. הפעל את הפקודה kubectl
למטה כדי לקבל את רשימת השירותים (svc
) בכתום mongodb
.
מתחת לכך, תראה את השירות הנקרא mdb0-svc, שמציג את פתח היציאה 27017 (פורט ברירת המחדל של MongoDB).

2. לאחר מכן, הפעל את הפקודה למטה כדי ליצור הפניית פורט לקבוצת Kubernetes.
הפקודה הזו יוצרת הפנייה חדשה לפורט בשירות Kubernetes (mdb0-svc) ומפנה את פורט המקומי 27017 לפורט השירות ב-Kubernetes 27017.

3. לבסוף, פתח את אפליקציית MongoDB Compass על המחשב המקומי שלך, הוסף חיבור חדש בעזרת הפורמט הבא, ולחץ התחבר כדי להתחבר ל-MongoDB.
שנה את שדה שם המשתמש והסיסמה עם המשתמש והסיסמה של MongoDB שלך.


כאשר ההתחברות הצליחה, תקבל את החלון הבא שמאשר שהתקנת ה-MongoDB ל-Kubernetes עובדת כהלכה.
עבור המשתמש mongoadmin, תראה בסיסי נתונים ברירת מחדל (local, config ו-admin).

עבור המשתמש appuser, תראה רק מסד נתונים של רשיונות אחד בשם appdb1.

מסקנה
דרך המדריך הזה, למדת כיצד להטמיע את MongoDB לקבוצת Kubernetes באמצעות MongoDB Kubernetes Operator. גם נגעת בשימוש הבסיסי של האופרטור של Kubernetes. וכעת, כבר יש לך ידע רציני על התקנת וניהול אוטומטי של אפליקציות ל-Kubernetes.
אנו ממליצים להגדיר חיבור TLS בהקמת MongoDB שלך כדי לבנות על הידע החדש שרכשת. חיבור TLS מבטיח את החיבורים בין סטים משקפים ומאבטח את חיבורי הלקוחות או האפליקציות ל-MongoDB.