PracticU

הסבר על Kubernetes - RBAC - Users & Roles

בלי כתוביותעם כתוביות
PracticU › קורס קוברנטיקס - Kubernetes › הסבר על Kubernetes - RBAC - Users & Roles
מילון מושגים:
Kubernetes - מערכת לניהול ותזמור של קונטיינרים בקנה מידה גדול, שמפעילה, מרחיבה ומתחזקת אותם אוטומטית.
הרשאה - קביעה אילו פעולות ומשאבים מותרים למשתמש או לתהליך לאחר שזהותו אומתה. שולטת במי רשאי לעשות מה.
רכיב - יחידת בניין עצמאית וניתנת לשימוש חוזר בתוך מערכת או ממשק משתמש, שאחראית על חלק מוגדר מהתפקוד.
ממשק - נקודת מגע בין רכיבים: ממשק משתמש שבו אדם מפעיל תוכנה, או ממשק תכנותי שמגדיר אילו פעולות רכיב אחד חושף לאחר.
קלאסטר - קבוצת מחשבים או שרתים שעובדים יחד כמערכת אחת, לשם זמינות גבוהה, ביצועים או חלוקת עומס.
שורת פקודה - ממשק טקסטואלי שבו מקלידים פקודות למערכת ההפעלה ומקבלים תגובה בטקסט, במקום להשתמש בעכבר.
פריסה - העברת תוכנה מסביבת פיתוח לסביבה שבה היא תרוץ בפועל, כדי להעמידה לשימוש.
משתנה סביבה - ערך בעל שם שמוגדר במערכת ההפעלה ומשמש תוכנות להגדרות, כמו נתיבים או מפתחות תצורה.

הסבר על Kubernetes - RBAC - Users & Roles
ההרצאה מסבירה איך נותנים למשתמש הרשאות רק על namespace אחד, כך שיראה ויפעיל רק את הרכיבים שלו. ההדגמה מתבצעת בממשק הניהול של הקלאסטר ובשורת הפקודה.
שלבי ההגדרה
1. יצירת משתמש: המשתמש נוצר בניהול ההרשאות של הקלאסטר. זהו משתמש רגיל, בלי הרשאות אדמין על הקלאסטר כולו.
2. Role ו-ClusterRole: ההרשאות לא נקשרות בהכרח לקלאסטר כולו. Role חל על namespace אחד, ו-ClusterRole חל על כל הקלאסטר. בהרצאה נבחר Role ברמת namespace, כך שההרשאה נשארת מוגבלת לאותו namespace גם כשהתפקיד הוא אדמין.
3. קישור ההרשאה (Role Binding): בוחרים את המשתמש, את ה-namespace ואת התפקיד. התוצאה היא שהמשתמש מקבל הרשאות רק באותו namespace.
4. בדיקה בממשק UCP: המשתמש רואה רק את ה-namespace שלו ולא את שאר ה-namespaces. הוא רואה את ה-Deployment, השירותים והפודים שלו, והוא יכול למחוק Deployment שלו.
5. שורת פקודה: כדי להריץ kubectl מהמחשב של המשתמש צריך את קובץ ה-kubeconfig שלו, עם האישורים. בהרצאה הקובץ הועתק לתיקיית המשתמש והופעל משתנה סביבה שטוען אותו.
6. namespace ברירת מחדל: בלי ציון namespace הפקודות נשלחו ל-default, שבו למשתמש אין הרשאות. לכן מגדירים את ה-namespace הנוכחי בקונטקסט, וכך kubectl get pods מציג את הפודים שלו בלבד.
פקודות
הפקודה kubectl auth can-i בודקת אם למשתמש מותרת פעולה מסוימת. בהרצאה נבדקה היכולת ליצור Deployment: ב-namespace של הלקוח השני התשובה הייתה yes, וב-namespace של הלקוח הראשון no. הפקודה kubectl get rolebinding מציגה את הקישורים הקיימים. אפשר לכתוב Role Binding גם כקובץ YAML, עם שם, namespace, משתמש ו-roleRef.
טעויות נפוצות
אם משתמש שולח פקודות ל-namespace לא נכון, הוא מקבל forbidden. הפתרון הוא להגדיר את ה-namespace בקונטקסט. Role Binding ברמת namespace אינו מאפשר לראות משאבים ברמת הקלאסטר, כמו נודים (nodes).
השיעור הבא בקורס: הסבר על Kubernetes - ReplicationSet

פרקי ההרצאה: הסבר על Kubernetes - RBAC - Users & Roles

  1. 00:00

    יצירת משתמש שמוגבל ל-Namespace אחד

  2. 01:03

    רולים ברמת השרת מול רולים ב-Namespace

  3. 03:08

    שיוך רול למשתמש ב-Role Binding

  4. 03:53

    מה המשתמש המוגבל רואה בממשק UCP

  5. 06:42

    התקנת kubectl במחשב מקומי

  6. 08:29

    הגדרת kubectl מתוך קובץ ה-Bundle

  7. 12:12

    שגיאת forbidden ובחירת Namespace

תמלול ההרצאה: הסבר על Kubernetes - RBAC - Users & Roles

הטקסט המלא של הדקות הראשונות בהרצאה «הסבר על Kubernetes - RBAC - Users & Roles» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    שלום לכולם בהרצאה הזאת אנחנו רוצים ליצור יוזר שיהיה לו גישה רק לקליינט שתיים ניימספייס רק למה שיש לנו פה בניימספייס השני שיהיה לו גישה שיראה רק את ה-MySQL שלו ואת ה-Wordpress שלו ולא שום דבר אחר אז אנחנו נלך לאדמין לאקסס קונטרול ל-users ונעשה פה יוזר חדש בשם תום לכבודו של תום קרוז

  2. 00:40

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

  3. 01:26

    בואו נראה מה קורה כשאנחנו עושים Create Role Binding. אנחנו יכולים לבחור איזה יוזר או איזה אורגניזיישן או סרוויס אקאונט. סרוויס אקאונט זה מה שרץ בתוך הקונטיינרים ורוצה להתחבר ל-API של דוקר, להעביר פקודות לדוקר עצמו.

  4. 01:55

    אז זה נקרא סרוויס אקאונט, אני בוחר יוזר בשם תום קרוז, ואני אומר לו על איזה משאב אני רוצה לחלק לו הרשאות. רוצה לחלק לו רק על ניימספייס הזה הנה על ריסורס ניימספייס הזה איזה רול אני רוצה לתת לו ואין לי פה שום רול שימו לב זה רול פר ניימספייס כן יש רולים בתוך הניימספייס ויש רולים ברמת

  5. 02:30

    שרת כולו אז אני אומר ברמת שרת כולו הוא קלאסטר אדמין אבל הקלאסטר אדמין או האדמין הזה שאני מביא לו חבר'ה זה יהיה מוגבל בכל מקרה רק לניימספייס מסוים זה שאני נותן להרשאה זה עדיין יהיה מוגבל לניימספייס מסוים ואני עושה לו קריאייט, צייתי את זה, אז יש לנו עכשיו תום אדמין ושימו לב למרות שהוא אדמין זה role binding,

  6. 03:05

    זה לא קלאסטר role זה role זה role ברמת הניימספייס מסוים, אז הבנתם? אז אני הצמדתי לו role של אדמין לתום על ניימספייס מסוים והנה אנחנו רואים פה קליינשטיין ניימספייס role reference name קלאסטר role ככה וככה.

  7. 03:28

    וזהו זה בעצם זה כל מה שרציתי להראות לכם רק בואו נבדוק את זה ניכנס לדוגמה מתוך Windows דווקא אני רוצה להראות לכם מתוך Windows ונעשה פה איך ucp איך זה הולך פה ucp.practice.com ואנחנו נכנסים עם שם וסיסמה של תום ובואו נראה מה תום יכול לראות בקוברנטיס הוא רואה רק ניימספייס אחד הוא לא רואה שאפילו קיימים ניימספייסים

  8. 04:12

    אחרים אתם רואים הוא רואה רק אחד והוא לא רואה שהם קיימים בקונטרולרס הוא רואה את כל הקונטרולרים שלו אבל רק שלו ובסרוויסים הוא רואה את הסרוויסים שלו ובפודים הוא רואה רק את הפודים שלו יותר מזה בגלל שהוא אדמין הוא יכול לעשות רימוב לפוד מסוים האם אתה רוצה למחוק את הפוד הזה אני עושה לו קונפורם שימו לב ישר מוצר אחד חדש בגלל שזה קלאסטר

  9. 04:42

    אם הוא ממש רוצה באמת למחוק אותו הוא עוד לא צריך למחוק פוד אלא ללכת לקונטרולר ולמחוק deployment אתם רואים דרך אגב זה באדום כי המצב של הפודים לא תקין.

  10. 04:57

    זאת אומרת הוא כן יכול לנהל את מה שמותר לו ואם הוא רוצה הוא יכול גם למחוק את כל הוורדפרס קליין 2 דיפלוימנט הוא יכול למחוק אותו ולא יהיה לא יהיה דיפלוימנט.

  11. 05:11

    אני רק מראה לכם שהוא באמת יכול למחוק ובאמת יכול לנהל את הכל. עכשיו הדבר הבא שאני רוצה להראות לכם איך הוא יכול לעשות קיובלט כן להריץ פקודות בקומנד ליין איך הוא עושה את זה.

  12. 05:36

    ניתן לזה refresh כל הקונטרולרים נמחקו מה קרה לו בוא נריץ עוד פעם התקנה כמה שזה פשוט כשיש לנו קובץ customize אנחנו נכנסים לתיקייה עם כל הקבצים עושים open in terminal אגב באמת מה קרה לו נראה פה קורה כולף 5 במצב של deleting כנראה שהוא נתקע טוב בוא בוא ניתן לו קצת זמן לעבוד בינתיים אני רוצה לדבר איתכם פה איך הוא מתחבר

  13. 06:49

    בcommand line אז בשביל להתחבר בcommand line עדיין צריך להוריד את החבילה. זה מדאיג אותי. Space Client 2, הנה, בסדר, יש פה דברים שעובדים.

  14. 07:23

    לא יודע, נתקע ממשק גרפי שמה, Get Deployments, לא יודע מה יש לו. קצת נתקע הממשק כנראה. טוב, מה אנחנו רוצים? אנחנו רוצים קיוב CTL להריץ מתוך התחנה. בשביל שזה יעבוד, אז אני צריך קודם כל להתקין את הקיוב CTL, אז אני כותב קיוב CTL for Windows, for Windows, Install קיוב CTL מאתר של קוברנטיס, הולך להינסטול קיוב סיטי

  15. 08:04

    אל און ווינדוס ודאונלוד כאן מוריד אותו מכאן שואו ווינד פולדר הנה קיוב סיטי אל ובוא נראה שהוא עובד קיוב סיטי אל ורז'ן מינוס מינוס שורט הוא אכן עובד רק אין לו שרת להתחבר קליינט עובד שרת אין לו לאן להתחבר עכשיו אני עושה פה איזה טריק מלוכלך אני אראה

  16. 08:39

    לכם מה אני עושה לוקח את הקיוב סיטי אל הזה עושה לו קופי ומעביר אותו לתיקייה שנמצאת בתוך הפאת' כדי שאני אוכל מכל מקום להפעיל את הקובץ זאת התיקייה שנמצאת בפאפ סיסטם 32 אני יודע שחלק יגידו שזה ממש לא יפה וככה זה ממש נוח לי ועכשיו אני מכל מקום יוכל להפעיל קיוב ctl אתם רואים מכל מקום אני אוכל להפעיל אותו ואני

  17. 09:08

    עושה ורז'ן מינוס מינוס help לא עוזר לי נכון לא עוזר לי כי אין לי שרת שאליו הוא מתחבר טוב בגלל שאין לו שרת לאן הוא מתחבר אז אנחנו מה אנחנו עושים אנחנו הולכים לכאן לפרופיל של משתמש אתם רואים תום מיי פורפייל, מורידים את הבאנדל שלו, שהוא כולל את כל התעודות הדיגיטליות והמשתנה

  18. 09:37

    סביבה, פותחים את הבאנדל הזה בניהו כאן ומריצים CMD. עכשיו לפני שאני מריץ את זה אני רק רוצה לבדוק כמה דברים, תנו לי לראות, זה אני שם בצד וכאן אני רוצה לראות מה יש לי בתיקיית הבית, C-users תיקיית הבית, יש

  19. 10:05

    לי תיקייה נקודה דוקר, אין לי תיקייה נקודה קיוב CTL. אז מה אנחנו עושים? אנחנו פותחים פה CMD, בוא ניכנס ככה, נפתח CMD ונפעיל environment.cmd, הנה הפעלתי, הוא עשה את כל ההגדרות ואין לי פה נקודה קיוב, הנה יש לי פה תיקי הנקודה קיוב שלא הייתה

  20. 10:37

    לפני כן ובפנים פייל קונפיג, אם נפתח אותו עם notepad נראה שהוא הגדיר הכל, בוא נראה שזה באמת עובד, אם זה לא עובד נעתיק ידנית את הקיוב נקודה ימל, הקיוב נקודה ימל אמור להיות בדיוק הזה זה אמור להיות בדיוק אותו דבר אנחנו הפעלנו environment.cmd שיצר את ה-config הזה אם

  21. 11:04

    הוא לא תקין אז מעתיקים את ה-qbaml לכאן בשם config טוב בוא נראה נסגור נפתח נעשה qbctl version ==help ==qbctl version ==short סליחה והוא לא עובד לנו לא יודע למה הוא לא עובד אז אנחנו לוקחים qbaml מוחקים לפה את זה מוחקים בוא ננסה עכשיו עכשיו עובד אז לא יודע למה הוא לא עובד משהו דפוק בקובץ הזה של environment.cmd בסופו של דבר

  22. 12:07

    העתקנו את ה-cube.yaml וזה עבד לנו יופי מה רצינו זהו עכשיו הוא יכול להריץ פקודות בוא נעשה לו get pods בוא נראה עוד פעם מה הוא כותב לי ש-forbidden אסור ליוזר כזה וכזה list רסורסס לראות משאבים של פודס בתוך הנמספייס דיפולט אה הוא מנסה בדיפולט לראות אז אנחנו נעשה לו מינוס מינוס נמספייס שווה קליינט שתיים

לקורס המלא: קורס קוברנטיס – Kubernetes

ההרצאה הקודמת: הסבר על Kubernetes - Namespace

ההרצאה הבאה: הסבר על Kubernetes - ReplicationSet

הרצאות קשורות מקורסים אחרים

  • Swarm - RBAC - Users & Roles
  • הרשאות לפי משתמשים - Users & Roles
  • הסבר על Kubernetes
  • ניהול מרכזי עם IPA Users

קורסים נוספים במסלול

  • קורס AWS - ניהול מכונה וירטואלית בענן
  • קורס Terraform - DevOps - Azure & AWS
  • קורס Docker - עם Swarm Cluster
  • קורס DevOps - Ansible
  • קורס PowerShell
  • קורס Git ו-GitHub עם Visual Studio