הרשאות של רכיב Knative serving

בדף הזה מוסבר על הרשאות ה-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.