בדף הזה מוסבר על הרשאות ה-RBAC שרכיבי Knative serving מחזיקים כדי לשמור על הגישה לאשכול. ההרשאות האלה נדרשות ומופעלות כברירת מחדל ב-Knative serving. אל תנסו להשבית אותן.
| רכיבים | מרחב שמות | חשבון שירות |
|---|---|---|
activator |
knative-serving | בקר |
autoscaler |
knative-serving | בקר |
controller |
knative-serving | בקר |
webhook |
knative-serving | בקר |
storage-version-migration-serving |
knative-serving | בקר |
webhook |
knative-serving | בקר |
cloud-run-operator |
cloud-run-system | cloud-run-operator |
שימו לב שלחשבון השירות cloud-run-operator יש את אותן הרשאות כמו לחשבון controller. האופרטור הוא מה שפורס את כל רכיבי Knative serving, כולל הגדרות של משאבים מותאמים אישית ובקרי משאבים.
RBAC לחשבונות שירות של Knative serving
כדי להבין אילו הרשאות של בקרת גישה יש לכל משאב ב-Knative serving עבור חשבונות השירות controller ו-cloud-run-operator, אפשר להיעזר בהגדרות הבאות של apiGroup.
- apiGroups:
- ""
resources:
- pods
- secrets
verbs:
- deletecollection
- apiGroups:
- ""
resources:
- nodes
verbs:
- get
- watch
- list
- apiGroups:
- ""
resources:
- pods
- namespaces
- secrets
- configmaps
- endpoints
- services
- events
- serviceaccounts
verbs:
- get
- list
- create
- update
- delete
- patch
- watch
- apiGroups:
- ""
resources:
- endpoints/restricted
verbs:
- create
- apiGroups:
- ""
resources:
- namespaces/finalizers
verbs:
- update
- apiGroups:
- apps
resources:
- deployments
- deployments/finalizers
verbs:
- get
- list
- create
- update
- delete
- patch
- watch
- apiGroups:
- admissionregistration.k8s.io
resources:
- mutatingwebhookconfigurations
- validatingwebhookconfigurations
verbs:
- get
- list
- create
- update
- delete
- patch
- watch
- apiGroups:
- apiextensions.k8s.io
resources:
- customresourcedefinitions
- customresourcedefinitions/status
verbs:
- get
- list
- create
- update
- delete
- patch
- watch
- apiGroups:
- autoscaling
resources:
- horizontalpodautoscalers
verbs:
- get
- list
- create
- update
- delete
- patch
- watch
- apiGroups:
- coordination.k8s.io
resources:
- leases
verbs:
- get
- list
- create
- update
- delete
- patch
- watch
- apiGroups:
- admissionregistration.k8s.io
resources:
- validatingwebhookconfigurations
verbs:
- get
- list
- create
- update
- delete
- patch
- watch
בטבלה הבאה מפורט אופן השימוש בהרשאות RBAC ב-Knative serving:
- ההרשאה view כוללת את הפעלים: get, list, watch
- שינוי כולל את הפעלים: יצירה, עדכון, מחיקה, תיקון
| הרשאות | סיבות |
|---|---|
יכול/ה לראות את כל secrets |
ה-Webhook צריך לקרוא את הסוד ממרחב השמות knative-serving.
הבקר Domainmapping צריך לקרוא את סוד האישור שנוצר על ידי התכונה Auto TLS ואז להעתיק אותו למרחב השמות gke-system. |
אפשר לשנות את pods |
ה-controller של DomainMapping צריך ליצור Pod שמשמש להגשת בקשות לאימות של אתגר HTTP01. |
אפשר לשנות את secrets |
הבקר של מיפוי הדומיין צריך ליצור או לעדכן את הסוד של האישור.
ה-Webhook צריך לקרוא את הסוד ממרחב השמות knative-serving. |
אפשר לשנות את configmaps |
הנתונים משמשים בתכונה של כתובת URL שמוגדרת כברירת מחדל. הבקר צריך לעדכן את ה-configmap config-domain במרחב השמות knative-serving כדי להוסיף את כתובת ה-URL nip.io. |
אפשר לשנות את endpoints |
הבקר של שירות ללא שרת צריך ליצור, לעדכן או למחוק את נקודות הקצה. בקר הניתוב צריך ליצור, לעדכן או למחוק את נקודות הקצה. |
אפשר לשנות את services |
בקר המסלולים צריך ליצור, לעדכן או למחוק שירות. בקר בלי שרת (serverless) צריך ליצור, לעדכן או למחוק שירות. הבקר של מיפוי הדומיין צריך ליצור שירות להצגת בקשות לאתגר HTTP01. |
אפשר לשנות את events |
בקר מילוי הבקשות מסוג Knative יוצר ומשדר אירועים למשאבים שמנוהלים על ידי Knative. |
אפשר לשנות את serviceaccounts |
שירות Knative צריך לקרוא חשבון שירות באופן עקיף. |
אפשר לשנות את endpoints/restricted |
כש-RestrictedEndpointsAdmission מופעל, צריך ליצור נקודות קצה ב-Knative serving. |
אפשר לשנות את deployments |
הכלי Revision controller צריך ליצור או לעדכן פריסה בשביל שירות Knative. |
אפשר לשנות את mutatingwebhookconfiguration |
ה-webhook של Knative מוסיף caBundle ל-mutatingwebhookconfigurations שבבעלות Knative. |
אפשר לשנות את validatingwebhookconfiguration |
Webhook של Knative מוסיף caBundle ל-validatingwebhookconfigurations שבבעלות Knative. |
אפשר לשנות
customresourcedifinitions customresourcedefinitions/status |
העבודה אחרי ההתקנה של Knative צריכה לשדרג את ה-CRD שקשורים ל-Knative לגרסה v1. |
אפשר לשנות את horizontalpodautoscalers |
Knative תומך בהתאמת קנה מידה אוטומטית שמבוססת על HPA. |
אפשר לשנות את namespace/finalizer |
מילוי בקשות מסוג Knative צריך להגדיר את ownerreference למרחב השמות Knative-serving. |