קדמה
Consul מלפנים HashiCorp הוא כלי גמיש שמשמש למספר תפקידים בסביבת DevOps מודרנית. הוא משמש בשימוש רחב לגילוי שרותים, בדיקות בריאות, שיווק עומס ובעיקר, כמחסנין מפוזר למפתח-ערך (KV). המחסן KV ב-Consul הוא מושלם לאחסן נתוני הגדרות דינמיים, דגלי תכונות, סודות ומידע מטה בדרך בהירה, עם זמינות גבוהה ועקבייתית ברשת התשתית שלך, כך שניתן לגשת אליהם באופן דינמי על ידי שרותים במערכת המפוזרת. שימוש ב-Docker כדי להגדיר את מחסני KV של Consul מאפשר עיצוב מהיר וסביבות מבודדות, מה שהופך אותו למתאים ביותר לבדיקות ופיתוח.
המדריך הזה ינחץ אתך דרך תהליך ההקמה וההגדרה של מחסן KV של Consul בעזרת Docker. בסוף, תהיה לך מופע Consul מוכן לשימוש ב-Docker, עם זוגות KV הוגדרים ונגישים. ההגדרה הזו היא מהותית להגדרה דינמית של שרותים וניהול מצב במערכות מפוזרות.
הנדסות קדם
לפני שתתחיל, וודא שיש לך את הדברים הבאים:
- חשבון Cloud DigitalOcean.
- שרת מופעל בעזרת Ubuntu ומשתמש לא-ראשי עם רשיונות sudo ומערך הגדלה פעיל. עבור הוראות על איך להגדיר את זה, בבקשה בחרו את ההפצה שלכם מרשימה זו ועבדו אחר הוראת ההגדרה הראשונית של השרת. תוודאו שתעבדו עם גירסה מסupported של Ubuntu.
- Docker מותקן על השרת שלכם ב Ubuntu Droplet. בבקשה עבדו אחר הוראת הדיוק הזו על איך להתקין ולהשתמש ב Docker על Ubuntu.
- מומחיות בשולחן הפקודות של Linux. עבור התחלה או השינוי הזה, תוכלו לבקר במדריך הזה על השולחן הפקודות של Linux.
- ידע בסיסי על הפקודות של Docker וניהול התאים.
שלב 1 — משך התמונה של התא של Consul
בואו נמשך את התמונה הרשמית של Consul מ Docker Hub. התמונה הזו נשלטת על ידי HashiCorp וכוללת את כל מה שצריך להפעיל את Consul.
כנסו לקונסול של השרת שלכם והריצו:
שלב 2 — הרצת קונטיינר ה-Consul
עכשיו שהתמונה של Consul נוצרה, אתה יכול להתחיל קונטיינר חדש של Consul. קונטיינר זה ישרת כשרת Consul ויאפשר לך לתקשר עם KV האחסון.
כדי להתחיל את הקונטיינר, רץ:
זה מה שפקודה זו עושה:
-
-d
מריץ את הקונטיינר במצב מנותק (ברקע). -
--name=consul-server
מקבל על הקונטיינר שם. -
-e CONSUL_BIND_INTERFACE=eth0
מגדיר את המנשק הרשת שConsul יצטרך להכנס אליו. זה הכרחי לתקשורת רשת נכונה. -
-p 8500:8500
ממפה את פורט ה-UI וה-API של Consul למארח. -
-p 8600:8600/udp
ממפה את פורט השרות DNS לגילוי שרותים.
שלב זה חשוב מאד כיוון שהוא מתקין את שרות ה-Consul המרכזי, שאתה תשתמש בו כדי להגדיר את KV האחסון.
שלב 3 — בדיקת התקנת Consul
כדי לוודא שConsul רץ כראוי, אתה צריך לוודא את מצב הקונטיינר ולגשת ל-UI של Consul.
ראשית, רץ docker ps
כדי לרשום את כל העיסקאות המופעלים ולבדוק שהעיסקאות המופעלים של Consul מסתדרים.
עכשיו, בדוק אם Consul נגיש, פתח דפדפן אינטרנטי, ועבר לhttp://localhost:8500
. אתה צריך לראות את המסך המשנה של Consul.
שלב זה חשוב לאמת שהמיקום שלך של Consul מסתדר ללא בעיות לפני שירים במאגר KV (שלב 5).
שלב 4 — הגדרת המחסה (באופציה)
אם המיקום שלך של Consul צריך להיות נגיש מבחוץ (לדוגמה, מן הנודדים במערכת קלט), עליך לשנות את הגדרות המחסה שלך כדי לאפשר תנועה בפורטים הנחוצים.
לדוגמה, אם אתה מפעיל את Consul על מיקום סייבר מערכת על, אתה עלול להיות צריך לאפשר תנועה קדם בפורט 8500 (API HTTP) ו8600 (DNS). הפקטים הספציפיים ישנים בהתאם לפתרונות המחסה שלך (UFW, iptables וכדומה).
השלב הזה מובטח שהמיקום שלך של Consul נגיש ממכשירים אחרים, שהוא קריטי לתצפיות מורחבות.
שלב 5 — אחסון פעמים-מפתח
עם Consul פעיל, ניתן כעת להשתמש באוסף KV כדי לאחסן מידע תצורה. ניתן להוסיף זוגות מפתח-ערך באמצעות שורת הפקודה Consul או איזור המשתמש האינטרנטי.
כדי לאחסן זוג מפתח-ערך באמצעות הCLI, רץ:
זה מה שפקודה זו עושה:
-it
– משגרת את המסוף האינטראקטיבי מהמערכת המקומית לתיבת ההרכבה.consul kv put
– פקודת kv put כותבת את המידע לנתיב הKV הנתון.config/db_host
– הנתיב לאחסן הערך.192.168.1.100
– הערך.
בשימוש באיזור המשתמש האינטרנטי,
- ניווט לאיזור המשתמש של Consul (
http://localhost:8500
). - לחיצה על הלשונית “Key/Value”.
- יצירת מפתח חדש על ידי לחיצה על “Create”.
- הזנת המפתח (לדוגמה,
config/db_host
) והערך (לדוגמה,192.168.1.100
).
פקודות אלה ופעולות אלה מאחסנות מידע תצורה קריטי ששירותים יכולים לגשת אליו באופן דינמי בזמן הריצה.
שלב 6 — השליפה של זוגות מפתח-ערך
לאחר שאחסנת זוגות KV, תרצה להשיג אותם כדי לוודא שהם נשמרו כראוי.
באמצעות הCLI, השליפת ערך באמצעות הפקודה הבאה:
בשימוש באיזור המשתמש האינטרנטי,
- עבור הגשה ל“מפתן מפתח/ערך” במסך של קונסול.
- מצא את המפתן שהכינית ולחץ עליו כדי לראות את הערך האחסן.
שימור הזנים KV הוא שלב הכרחי על מנת לוודא שהמידע שלך נאחסן ונגיש בצורה נכונה.
שלב 7 — שימור מידע בעזרת תוך גודלים Docker
בהגדרה, התאים Docker הם זמניים, משמע שכל המידע שנאחסן בתוכם יאבד אם התא יוסל. כדי לשמר את המידע הקיים בקונסול KV, צריך להשתמש בגודלים Docker.
- עצור והסר את התא הקיים של הקונסול:
עכשיו, בחנה את התאים ותוכל להבחין שהתא של הקונסול כבר אינו ממונע.
2.בואו תא חדש של הקונסול עם גודל Docker מוחובר:
האפשרות -v consul_data:/consul/data
מותקן גודל Docker אצל התא, וזה מובטח שהמאגר הזה מידע ממשיך להישאר בעזרת התחילות התא מחדש.
שלב 8 — אוטומציית ההתחלה של הקונסול (אופציonal)
שבשימושים משלוחים, ייתכן שתרצה לאוטומט את ההפעלה של הקונטיינר של Consul באמצעות Docker Compose. Docker Compose מפשט אפליקציות דוקר מרובות קונטיינרים ומקל על ניהול שרותים.
צור קובץ docker-compose.yml
עם התוכן הבא:
לאחר מכן, רץ:
הפקודה הזו מתחילה את Consul באופן אוטומטי ומבטיחה שהוא יורץ מחדש אם הוא כשלה, כך שהוא יהיה יותר חזק לשימושים ייצוריים.
שלב 9 — הניקוי
לאחר שסיימת לעבוד עם המופע של Consul, יש לנקות את סביבת Docker שלך כדי לשחרר משאבים.
בואו נעצור ונסיר את הקונטיינר של Consul:
אם סיימת עם Consul, ניתן גם למחוק את הדימות של Docker:
הניקוי עוזר לשמור על סביבת פיתוח נקיה ולוודא שמשאבי Docker לא נצרכים בלתי צורך.
מסקנה
בהדרכה זו, למדת איך להגדיר ולהגדיר את המאגר KV של Consul בעזרת Docker. עבדת את התקנת Docker, הרצת האחריות של Consul, הגדרת המאגר KV, השמרת המידע בעזרת תאי גדלה של Docker, וניקוי הסביבה שלך. עם השלבים האלה, אתה יכול עכשיו להשתמש בConsul כדי לנהל מאגר נתונים פולי דיספקציה במערכות המופלאות שלך, מנצלת את הכוח של Docker עבור הגדלה וניהול קל.
Source:
https://www.digitalocean.com/community/tutorials/how-to-configure-consul-kv-using-docker