@@ -67,6 +67,37 @@ kube-apiserver \
67
67
The command-line flag ` --enable-priority-and-fairness=false ` will disable the
68
68
API Priority and Fairness feature.
69
69
70
+ ## Recursive server scenarios
71
+
72
+ API Priority and Fairness must be used carefully in recursive server
73
+ scenarios. These are sccenarios in which some server A, while serving
74
+ a request, issues a subsidiary request to some server B. Perhaps
75
+ server B might even make a further subsidiary call back to server
76
+ A. In situations where Priority and Fairness control is applied to
77
+ both the original request and some subsidiary ones(s), no matter how
78
+ deep in the recursion, there is a danger of priority inversions and/or
79
+ deadlocks.
80
+
81
+ One example of recursion is when the ` kube-apiserver ` issues an
82
+ admission webhook call to server B, and while serving that call,
83
+ server B makes a further subsidiary request back to the
84
+ ` kube-apiserver ` . Another example of recursion is when an ` APIService `
85
+ object directs the ` kube-apiserver ` to delegate requests about a
86
+ certain API group to a custom external server B (this is one of the
87
+ things called "aggregation").
88
+
89
+ When the original request is known to belong to a certain priority
90
+ level, and the subsidiary controlled requests are classified to higher
91
+ priority levels, this is one possible solution. When the original
92
+ requests can belong to any priority level, the subsidiary controlled
93
+ requests have to be exempt from Priority and Fairness limitation. One
94
+ way to do that is with the objects that configure classification and
95
+ handling, discussed below. Another way is to disable Priority and
96
+ Fairness on server B entirely, using the techniques discussed above. A
97
+ third way, which is the simplest to use when server B is not
98
+ ` kube-apisever ` , is to build server B with Priority and Fairness
99
+ disabled in the code.
100
+
70
101
## Concepts
71
102
72
103
There are several distinct features involved in the API Priority and Fairness
0 commit comments