בדוגמא הבאה השתמשתי בהפצה של לינוקס מסוג 7 Centos:
לפני שנתחיל - אם יש מכונה של Linux ב-OCI, ראשית יש לוודא שמותקנים עליה הכלים הבאים:
OCI CLI
Kubectl
(אפשר להשתמש ב Image-הנקראImage : Oracle Developer Cloud) הזמין בענן ומבוסס על הפצה של Oracle Linux ומגיע עם OCI CLI וכלי פיתוח שמותקנים מראש, מלבד Kubectl נכון לרגע כתיבת המדריך.
- הערה: במידה ואין את הכלים זמינים, צריך להתקין אותם וההוראות במדריך נפרד.
1. בשלב הראשון מתחברים ב-SSH למכונה ומריתים את הפקודות הבאות:
[opc@my-oracle-vm ~] $ kubectl version --short
זה בסדר גם אם יופיע רק ה-Client Version.
[opc@my-oracle-vm ~] $ oci --version
2. מתחברים דרך הדפדפן ל Console של הענן. מעתיקים את ה-Instance OCID של המכונה שאנחנו רוצים לעבוד דרכה. בתפריט הצידי לוחצים על Compute > Instances
לאחר מכן בוחרים את המכונה ברשימה:
מעתיקים את ה-Instance OCID של המכונה, בלחיצה על כפתור ה-copy:
3. פותחים שוב את התפריט ומנווטים ל-Identity > Dynamic Groups
יוצרים Dynamic Group דרך הכפתור "Create Dynamic Group":
ממלאים את הפרמטרים הבאים:
Name – שם הקבוצה.
Description – כדי לתאר למה.
Rule 1 – החוק עם אותו Instance ID שהעתקנו במקום <Instance-OCID>.
למידע נוסף לגבי חוקים:
https://docs.cloud.oracle.com/en-us/iaas/Content/General/Concepts/identifiers.htm
דוגמא:
לבסוף לוחצים על הכפתור "Create".
הסבר: בשלב זה יצרנו את ה-Dynamic Group עם המזהה של המכונה שלנו, עכשיו יש לתת הרשאה לאותו Dynamic Group, לפי ה-Policy בענן אנחנו יכולים לתת הרשאות לקבוצות משתמשים, בעזרת Dynamic Group, אנחנו יכולים לתת הרשאות למשאבים – כמו מכונות לדוגמא.
4. נתקדם ונפתח את התפריט הצידי וננווט ל Identity > Policies.
הולכים ל-policy קיים או מייצרים חדש, עם ה-Rule הבא (כל ההרשאות):
לוחצים על הכפתור "Edit Policy Statements":
ומוסיפים את ה-Rule הבא:
allow dynamic-group <dynamic-group-name> to manage all-resources in compartment <compartment-name>
יש להזין את שם ה-Dynamic Group ואת שם ה-Compartment שלנו. דוגמא:
- הערה: מומלץ לא לעשות את זה, הדוגמא להמחשה בלבד. אנחנו נותנים למכונה את כל ההראשות, יש להחליט על הרשאות ספציפיות.
לקריאה נוספת על Policies:
https://docs.cloud.oracle.com/en-us/iaas/Content/Identity/Concepts/commonpolicies.htm
5. חוזרים לחלון SSH במכונה שלנו ועושים בדיקה שההרשאות עובדות, במידה וההרשאות עובדות ניתן יהיה להריץ את הפקודה הבאה, בלי OCI CONFIG FILE.
oci os ns get --auth instance_principal
במידה ואנחנו מקבלים שגיאה, יש לבדוק את ההרשאות שהוגדרו בצורה נכונה.
- כדי לוודא שזה עובד, מי שהיה לו OCI Config file, יכול למחוק את הקובץ: $HOME/.oci/config rm -rf
ולהריץ שוב את הפקודה:
oci os ns get --auth instance_principal
6. חוזרים לדפדפן לחלון ה-OCI, מנווטים בתפריט צד ל- Developer Services > Container Clusters (OKE).
לוחצים על שם ה- OKE Cluster שלנו:
ולוחצים על הכפתור "copy" כדי להעתיק את ה Cluster ID:
7. חוזרים למכונה – כדי ליצור קובץ kubeconfig:
לפני שמייצרים אותו, מומלץ למחוק ולוודא שאין אחד שקיים לפני:
rm -rf $HOME/.kube/config
oci ce cluster create-kubeconfig --cluster-id <oke-ocid> --auth instance_principal
8. לאחר שיצרנו את ה Kubeconfig, נייצא אותו כמשתנה סביבה:
export KUBECONFIG=$HOME/.kube/config
9. נוסיף את המשתנה של הזדהות באמצעות Instance Principal כמשתנה סביבה לתוך ה-bashrc:
echo "export OCI_CLI_AUTH=instance_principal" >> $HOME/.bashrc
ונעשה Source לbashrc לאחר השינוי.
source $HOME/.bashrc
10. בואו נוודא שזה עובד: - עכשיו אפשר לבדוק שהכל עובד ולהריץ פקודה שלkubectl
kubectl get nodes
אם התקבלה תוצאה ללא שגיאה, הכל מוגדר כמו שצריך!
בדוגמא הבאה השתמשתי בהפצה של לינוקס מסוג 7 Centos:
לפני שנתחיל - אם יש מכונה של Linux ב-OCI, ראשית יש לוודא שמותקנים עליה הכלים הבאים:
OCI CLI
Kubectl
(אפשר להשתמש ב Image-הנקראImage : Oracle Developer Cloud) הזמין בענן ומבוסס על הפצה של Oracle Linux ומגיע עם OCI CLI וכלי פיתוח שמותקנים מראש, מלבד Kubectl נכון לרגע כתיבת המדריך.
- הערה: במידה ואין את הכלים זמינים, צריך להתקין אותם וההוראות במדריך נפרד.
1. בשלב הראשון מתחברים ב-SSH למכונה ומריתים את הפקודות הבאות:
[opc@my-oracle-vm ~] $ kubectl version --short
זה בסדר גם אם יופיע רק ה-Client Version.
[opc@my-oracle-vm ~] $ oci --version
2. מתחברים דרך הדפדפן ל Console של הענן. מעתיקים את ה-Instance OCID של המכונה שאנחנו רוצים לעבוד דרכה. בתפריט הצידי לוחצים על Compute > Instances
לאחר מכן בוחרים את המכונה ברשימה:
מעתיקים את ה-Instance OCID של המכונה, בלחיצה על כפתור ה-copy:
3. פותחים שוב את התפריט ומנווטים ל-Identity > Dynamic Groups
יוצרים Dynamic Group דרך הכפתור "Create Dynamic Group":
ממלאים את הפרמטרים הבאים:
Name – שם הקבוצה.
Description – כדי לתאר למה.
Rule 1 – החוק עם אותו Instance ID שהעתקנו במקום <Instance-OCID>.
למידע נוסף לגבי חוקים:
https://docs.cloud.oracle.com/en-us/iaas/Content/General/Concepts/identifiers.htm
דוגמא:
לבסוף לוחצים על הכפתור "Create".
הסבר: בשלב זה יצרנו את ה-Dynamic Group עם המזהה של המכונה שלנו, עכשיו יש לתת הרשאה לאותו Dynamic Group, לפי ה-Policy בענן אנחנו יכולים לתת הרשאות לקבוצות משתמשים, בעזרת Dynamic Group, אנחנו יכולים לתת הרשאות למשאבים – כמו מכונות לדוגמא.
4. נתקדם ונפתח את התפריט הצידי וננווט ל Identity > Policies.
הולכים ל-policy קיים או מייצרים חדש, עם ה-Rule הבא (כל ההרשאות):
לוחצים על הכפתור "Edit Policy Statements":
ומוסיפים את ה-Rule הבא:
allow dynamic-group <dynamic-group-name> to manage all-resources in compartment <compartment-name>
יש להזין את שם ה-Dynamic Group ואת שם ה-Compartment שלנו. דוגמא:
- הערה: מומלץ לא לעשות את זה, הדוגמא להמחשה בלבד. אנחנו נותנים למכונה את כל ההראשות, יש להחליט על הרשאות ספציפיות.
לקריאה נוספת על Policies:
https://docs.cloud.oracle.com/en-us/iaas/Content/Identity/Concepts/commonpolicies.htm
5. חוזרים לחלון SSH במכונה שלנו ועושים בדיקה שההרשאות עובדות, במידה וההרשאות עובדות ניתן יהיה להריץ את הפקודה הבאה, בלי OCI CONFIG FILE.
oci os ns get --auth instance_principal
במידה ואנחנו מקבלים שגיאה, יש לבדוק את ההרשאות שהוגדרו בצורה נכונה.
- כדי לוודא שזה עובד, מי שהיה לו OCI Config file, יכול למחוק את הקובץ: $HOME/.oci/config rm -rf
ולהריץ שוב את הפקודה:
oci os ns get --auth instance_principal
6. חוזרים לדפדפן לחלון ה-OCI, מנווטים בתפריט צד ל- Developer Services > Container Clusters (OKE).
לוחצים על שם ה- OKE Cluster שלנו:
ולוחצים על הכפתור "copy" כדי להעתיק את ה Cluster ID:
7. חוזרים למכונה – כדי ליצור קובץ kubeconfig:
לפני שמייצרים אותו, מומלץ למחוק ולוודא שאין אחד שקיים לפני:
rm -rf $HOME/.kube/config
oci ce cluster create-kubeconfig --cluster-id <oke-ocid> --auth instance_principal
8. לאחר שיצרנו את ה Kubeconfig, נייצא אותו כמשתנה סביבה:
export KUBECONFIG=$HOME/.kube/config
9. נוסיף את המשתנה של הזדהות באמצעות Instance Principal כמשתנה סביבה לתוך ה-bashrc:
echo "export OCI_CLI_AUTH=instance_principal" >> $HOME/.bashrc
ונעשה Source לbashrc לאחר השינוי.
source $HOME/.bashrc
10. בואו נוודא שזה עובד: - עכשיו אפשר לבדוק שהכל עובד ולהריץ פקודה שלkubectl
kubectl get nodes
אם התקבלה תוצאה ללא שגיאה, הכל מוגדר כמו שצריך!
הודעתך לא התקבלה - נסה שוב מאוחר יותר
Oops! Something went wrong while submitting the form