תהליך התקנת א אשכול Kubernetes עַל CentOS 8 כמעט דומה לזה של CentOS 7 (שאתה יכול לעבור פה), אך התהליך כאן כולל מספר שינויים. שינויים אלה, סובבים בעיקר סביב ההתקנה של דוקר.
התחיל מ CentOS 8 (ובהרחבה RHEL 8), עגינה הוחלף כעת על ידי פודמן ו buildah שהם כלים מ כובע אדום. למעשה, חבילת העגינה הוסרה כעת ממאגר ברירת המחדל של החבילות.
עם מהלך זה, ה כובע אדום הצוות שואף לפשט את תהליך היצירה והשימוש במכולות, ללא צורך בהרשאות מיוחדות, יחד עם זאת, שמירה על תאימות לתמונות docker והפעלתן ללא צורך ב שד. פודמן מבטיח להציע גמישות רבה יותר בעת הפעלה Kubernetes סביבות, אך חבר המושבעים נשאר שם בחוץ.
עבור מאמר זה, נעבור על תהליך ההתקנה Kubernetes על CentOS 8 פלטפורמה, רצה הלאה Docker-CE (מהדורה קהילתית). במאמר מאוחר יותר, נריץ גם התקנה דומה, באמצעות פודמן עבור המכולות שלנו.
לרוב הצמתים יש ייחודיות מק עם זאת, בכמה מקרים ייחודיים, בחלקם מכונות וירטואליות עשויות להיות כתובות MAC זהות. לכן מומלץ לאשר כי Product_UUID וה מק כתובת אינה זהה באף אחד מהצמתים.
Kubernetes משתמש בערכים אלה כדי לזהות באופן ייחודי את הצמתים באשכול. אם ערכים אלה אינם ייחודיים לכל צומת, תהליך ההתקנה עלול להיכשל.
כדי לבדוק את כתובת ה- MAC של ממשק הרשת ולהשוות אותה.
קישור # ip.
כדי לבדוק את product_uuid והשווה, הפעל את הפקודה הבאה.
# cat/sys/class/dmi/id/product_uuid
ההתקנה שלנו נועדה לקבל את צומת מאסטר שליטה על צמתים של עובדים. בסוף התקנה זו הארכיטקטורה הלוגית שלנו תיראה בערך כך.
צומת מאסטר - מכונה זו בדרך כלל משמשת כמטוס הבקרה ומפעילה את מסד הנתונים של האשכול ושרת ה- API (שאיתו מתקשר CLI kubectl).
הצומת 3 שלנו אשכול Kubernetes יראה בערך כך:
ל Kubernetes כדי לעבוד, תזדקק למנוע מכולה. כאמור, אנו נשתמש Docker-CE.
המוסדות הבאים יבוצעו ב צומת מאסטר של CentOS 8.
על שלך צומת מאסטר של CentOS 8, הגדר את שם מארח המערכת ועדכן את ה- DNS שלך ב- /etc/hosts קוֹבֶץ.
# hostnamectl set-host-node. # חתול <> /etc /hosts. צומת מאסטר 192.168.0.47. 192.168.0.48 צומת -1 עובד-צומת -1. 192.168.0.49 צומת -2 עובד-צומת -2. EOF.
לאחר מכן, פינג שלך צומת עובד 1 ו צומת עובדים 2 כדי לבדוק אם קובץ המארח המעודכן שלך פועל כהלכה באמצעות פקודת פינג.
# פינג 192.168.0.48. # פינג 192.168.0.49.
לאחר מכן, השבת Selinux, שכן הדבר נדרש כדי לאפשר למכולות גישה למערכת הקבצים המארחת, הדרושה לרשתות פוד ושירותים אחרים.
# setenforce 0.
הגדרה setenforce ל 0
למעשה מגדיר את SELinux למתיר, מה שמשבית למעשה את SELinux עד לאתחול הבא. כדי להשבית אותו לחלוטין, השתמש בפקודה שלהלן והפעל מחדש.
# sed -i -follow -symlinks 's/SELINUX = אכיפה/SELINUX = מושבת/g'/etc/sysconfig/selinux. # אתחול מחדש.
Kubernetes עושה שימוש ביציאות שונות לתקשורת וגישה ויציאות אלה צריכות להיות נגישות ל- Kubernetes ולא מוגבלות על ידי חומת האש.
הגדר את כללי חומת האש ביציאות.
# firewall-cmd-permanent-add-port = 6443/tcp. # firewall-cmd-permanent-add-port = 2379-2380/tcp. # firewall-cmd-permanent-add-port = 10250/tcp. # firewall-cmd-permanent-add-port = 10251/tcp. # firewall-cmd-permanent-add-port = 10252/tcp. # firewall-cmd-permanent-add-port = 10255/tcp. # firewall-cmd-טען מחדש. # modprobe br_netfilter. # echo '1'>/proc/sys/net/bridge/bridge-nf-call-iptables.
יהיה עליך להוסיף את דוקר המאגר תחילה מכיוון שהוא כבר אינו ברשימת ברירת המחדל של החבילות באמצעות הדברים הבאים מנהל התצורה dnf פקודה.
# dnf config-manager --add-repo = https://download.docker.com/linux/centos/docker-ce.repo.
התקן גם containerd.io חבילה הזמינה כדמון המנהלת את מחזור חיי המכולה המלא של המערכת המארחת שלה, מ העברת תמונות ואחסון לביצוע מכולות ופיקוח לאחסון ברמה נמוכה לקבצים מצורפים לרשת ו מעבר.
# dnf להתקין https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm.
כעת התקן את הגירסה העדכנית ביותר של a docker-ce חֲבִילָה.
# dnf התקן docker-ce.
כעת תוכל להפעיל ולהפעיל את שירות העגינה.
# systemctl אפשר docker. # systemctl התחל עגינה.
לאחר מכן, יהיה עליך להוסיף Kubernetes מאגרים באופן ידני מכיוון שהם אינם מותקנים כברירת מחדל CentOS 8.
# חתול </etc/yum.repos.d/kubernetes.repo. [kubernetes] name = Kubernetes. baseurl = https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64. מופעל = 1. gpgcheck = 1. repo_gpgcheck = 1. gpgkey = https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg. EOF.
Kubeadm עוזר לך לאתחל אשכול Kubernetes מינימאלי בר קיימא התואם שיטות עבודה מומלצות. עם kubeadm, האשכול שלך צריך לעבור את בדיקות התאימות של Kubernetes.
Kubeadm תומך גם בפונקציות מחזור חיים אחרות של אשכולות, כגון שדרוגים, שדרוג לאחור וניהול אסימוני bootstrap. Kubeadm ידידותית גם לאינטגרציה עם כלי תזמור אחרים כמו אחראי ו Terraform.
כשהחבילת חבילה מוכנה כעת, תוכל להמשיך ולהתקין kubeadm חֲבִילָה.
# dnf התקן kubeadm -y
כאשר ההתקנה מסתיימת בהצלחה, הפעל והפעל את השירות.
# systemctl אפשר kubelet. # systemctl start kubelet.
המאסטר של Kubernetes שפועל כ מטוס שליטה עבור האשכול מפעיל כמה שירותים קריטיים הדרושים לאשכול. ככזה, תהליך האתחול יבצע סדרה של בדיקות מוקדמות על מנת להבטיח שהמכונה מוכנה להפעלת Kubernetes. בדיקות מוקדמות אלה חושפות אזהרות ויוצאות על שגיאות. kubeadm init לאחר מכן מוריד ומתקין את רכיבי מטוס בקרת האשכול.
עכשיו הגיע הזמן לאתחל את מאסטר Kubernetes, אך לפני כן, עליך להשבית החלפה על מנת להפעיל "kubeadm init" פקודה.
# swapoff -a.
אתחול Kubernetes מאסטר הוא תהליך אוטומטי לחלוטין הנשלט על ידי "kubeadm init"פקודה כפי שמוצג.
# kubeadm init.
לאחר מכן, העתק את הפקודה הבאה ושמור אותה במקום כלשהו, מכיוון שדרשנו להריץ פקודה זו בצמתים של העובדים מאוחר יותר.
kubeadm join 192.168.0.47:6443 --token nu06lu.xrsux0ss0ixtnms5 \-Discovery-token-ca-cert-hash ha256: f996ea35r4353d342fdea2997a1cf8caeddafd6d4360d606dbc82314683478hjmf
עֵצָה: לפעמים הפקודה לעיל עשויה להטעות שגיאות בנוגע לטענות שהועברו, כדי להימנע משגיאות, עליך להסיר את ‘\’
הדמות והפקודה הסופית שלך תיראה כך.
# kubeadm join 192.168.0.47:6443 --token nu06lu.xrsux0ss0ixtnms5 – גילוי אסימון-CA-cert-hash sha256: f996ea35r4353d342fdea2997a1cf8caeddafd6d4360d606dbc82314683478hjmf.
פַּעַם Kubernetes אתחול בהצלחה, עליך לאפשר למשתמש שלך להתחיל להשתמש באשכול. בתרחיש שלנו, נשתמש במשתמש השורש. תוכל גם להפעיל את האשכול באמצעות משתמש סודו כפי שמוצג.
להשתמש שורש, לרוץ:
# mkdir -p $ HOME/.kube. # cp -i /etc/kubernetes/admin.conf $ HOME/.kube/config. # chown $ (id -u): $ (id -g) $ HOME/.kube/config.
לשימוש א משתמש מופעל סודו, לרוץ:
$ mkdir -p $ HOME/.kube. $ sudo cp -i /etc/kubernetes/admin.conf $ HOME/.kube/config. $ sudo chown $ (id -u): $ (id -g) $ HOME/.kube/config.
כעת אשר כי פקודה kubectl הוא מופעל.
# kubectl לקבל צמתים.
ברגע זה, תראה את הסטטוס של צומת המאסטר הוא 'לא מוכן’. הסיבה לכך היא שעוד לא נפרס את רשת התרמילים לאשכול.
רשת התרמילים הינה רשת כיסוי האשכול, הנפרסת על גבי רשת הצמתים הנוכחית. הוא נועד לאפשר קישוריות בין התרמיל.
פריסת אשכול הרשת היא תהליך גמיש ביותר בהתאם לצרכים שלך וישנן אפשרויות רבות זמינות. מכיוון שאנו רוצים לשמור על ההתקנה שלנו פשוטה ככל האפשר, נשתמש וויוונט תוסף שאינו דורש שום תצורה או קוד נוסף והוא מספק כתובת IP אחת לכל תרמיל וזה נהדר עבורנו. אם אתה רוצה לראות אפשרויות נוספות, אנא בדוק פה.
פקודות אלה יהיו חשובות בכדי לקבל את הגדרת רשת התרמילים.
# ייצוא kubever = $ (גרסת kubectl | base64 | tr -d '\ n') # kubectl להחיל -f " https://cloud.weave.works/k8s/net? k8s-version = $ kubever "
עכשיו אם אתה בודק את הסטטוס של הצומת הראשי שלך, זה צריך להיות 'מוּכָן’.
# kubectl לקבל צמתים.
לאחר מכן, נוסיף את צמתים של עובדים לאשכול.
ההנחיות הבאות יבוצעו על כל אחת מהן צומת עובדים בעת הצטרפות לאשכול Kubernetes.
ראשית הגדר את שם המארח על שלך צומת עובד 1 ו צומת עובדים 2ולאחר מכן הוסף את רשומות המארח אל /etc/hosts קוֹבֶץ.
# hostnamectl set-hostname 'node-1' # חתול <> /etc /hosts. צומת מאסטר 192.168.0.47. 192.168.0.48 צומת -1 עובד-צומת -1. 192.168.0.49 צומת -2 עובד-צומת -2. EOF.
לאחר מכן, פינג שלך צומת מאסטר משלך צמתים של עובדים כדי לאשר שקובץ המארח המעודכן שלך עובד מצוין באמצעות פקודת פינג.
# 192.168.0.47.
לאחר מכן, השבת סלינוקס ועדכן את חוקי חומת האש שלך.
# setenforce 0. # sed -i -follow -symlinks 's/SELINUX = אכיפה/SELINUX = מושבת/g'/etc/sysconfig/selinux. # firewall-cmd-permanent-add-port = 6783/tcp. # firewall-cmd-permanent-add-port = 10250/tcp. # firewall-cmd-permanent-add-port = 10255/tcp. # firewall-cmd-permanent-add-port = 30000-32767/tcp. # firewall-cmd-טען מחדש. # echo '1'>/proc/sys/net/bridge/bridge-nf-call-iptables.
הוסף תחילה את מאגר Docker באמצעות מנהל התצורה של DNF.
# dnf config-manager --add-repo = https://download.docker.com/linux/centos/docker-ce.repo.
לאחר מכן, הוסף את containerd.io חֲבִילָה.
# dnf להתקין https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm.
כאשר שתי החבילות האלה מותקנות, התקן את הגירסה העדכנית ביותר של docker-ce.
# dnf התקן docker-ce.
הפעל את שירות העגינה והפעל אותו.
# systemctl אפשר docker. # systemctl התחל עגינה.
יהיה עליך להוסיף Kubernetes מאגרים באופן ידני מכיוון שהם אינם מותקנים מראש CentOS 8.
# חתול </etc/yum.repos.d/kubernetes.repo. [kubernetes] name = Kubernetes. baseurl = https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64. מופעל = 1. gpgcheck = 1. repo_gpgcheck = 1. gpgkey = https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg. EOF.
כשהחבילת חבילה מוכנה כעת, תוכל להמשיך ולהתקין kubeadm.
# dnf התקן kubeadm -y
התחל והפעל את השירות.
# systemctl אפשר kubelet. # systemctl start kubelet.
כעת אנו דורשים את האסימון לכך kubeadm init שנוצר, להצטרף לאשכול. אתה יכול להעתיק ולהדביק אותו ב- צומת -1 ו צומת -2 אם היית מעתיק את זה איפשהו.
# kubeadm join 192.168.0.47:6443 --token nu06lu.xrsux0ss0ixtnms5-Discovery-token-ca-cert-hash sha256: f996ea35r4353d342fdea2997a1cf8caeddafd6d4360d606dbc82314683478hjmf
כפי שהוצע בשורה האחרונה, חזור אל שלך צומת מאסטר ולוודא אם עובד צומת -1 ו צומת עובדים 2 הצטרפו לאשכול באמצעות הפקודה הבאה.
# kubectl לקבל צמתים.
אם כל השלבים פועלים בהצלחה, אז אתה אמור לראות צומת -1 ו צומת -2 במצב מוכן ב- צומת מאסטר. בשלב זה, כעת פרסת בהצלחה אשכול Kubernetes CentOS 8.
מומלץ לקרוא: כיצד לפרוס Nginx באשכול Kubernetes
לאשכול שיצרנו כאן יש סינגל צומת מאסטר, וככזה, אם צומת מאסטר נכשל, האשכול שלך עלול לאבד נתונים וייתכן שיהיה צורך לשחזר אותו מאפס.
מסיבה זו, אני ממליץ על התקנה זמינה מאוד.