Skip to content

Commit 486c3e2

Browse files
committed
fix broken links
1 parent 991edb4 commit 486c3e2

1 file changed

Lines changed: 21 additions & 21 deletions

File tree

support/azure/azure-kubernetes/create-upgrade-delete/troubleshoot-apiserver-etcd.md

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ kubectl get prioritylevelconfigurations
163163

164164
<br>
165165

166-
<img src="media/troubleshoot-apiserver-etcd/priority-level-configuration.png" alt="FlowSchema" width="600">
166+
<img src="media/troubleshoot-apiserver-etcd/priority-level-configuration.png" alt="PriorityLevelConfiguration" width="600">
167167

168168
<br>
169169

@@ -178,20 +178,20 @@ kubectl get events -n kube-system aks-managed-apiserver-throttling-enabled
178178

179179
#### Step 1: Identify unoptimized clients
180180

181-
- See [Cause 5](#cause-5-an-offending-client-makes-excessive-list-or-put-calls) to identify problematic clients and refine their LIST call patterns - especially those generating high-frequency or high-latency requests as they are the primary contributors to API server degradation. Refer to [best practices](/azure-aks-docs-pr/articles/aks/best-practices-performance-scale-large.md#kubernetes-clients) for further guidance on client optimization.
181+
- See [Cause 5](#cause-5-an-offending-client-makes-excessive-list-or-put-calls) to identify problematic clients and refine their LIST call patterns - especially those generating high-frequency or high-latency requests as they are the primary contributors to API server degradation. Refer to [best practices](/azure/aks/best-practices-performance-scale-large.md#kubernetes-clients) for further guidance on client optimization.
182182

183183
#### Step 2: Mitigation
184184

185185
- Scale down the cluster to reduce the load on the API server.
186186
- If Step 1 identifies a recently added controller, CRD, or DaemonSet as the primary driver of API server overload, remove the associated object from the cluster.
187-
- Use [Control Plane Metrics](/azure-aks-docs-pr/articles/aks/control-plane-metrics-monitor.md) to monitor the load on the API server. Refer the [blog](https://techcommunity.microsoft.com/blog/appsonazureblog/azure-platform-metrics-for-aks-control-plane-monitoring/4385770) for more details.
187+
- Use [Control Plane Metrics](/azure/aks/control-plane-metrics-monitor.md) to monitor the load on the API server. Refer the [blog](https://techcommunity.microsoft.com/blog/appsonazureblog/azure-platform-metrics-for-aks-control-plane-monitoring/4385770) for more details.
188188
- Once the above steps are complete, delete aks-managed-apiserver-guard
189189
```bash
190190
kubectl delete flowschema aks-managed-apiserver-guard
191191
kubectl delete prioritylevelconfiguration aks-managed-apiserver-guard
192192
```
193193
> [!WARNING]
194-
> Avoid scaling the cluster back to the originally intended scale point until client call patterns have been optimized, refer to **[best practices](/azure-aks-docs-pr/articles/aks/best-practices-performance-scale-large.md#kubernetes-clients)**. Premature scaling may cause the API server to crash again.
194+
> Avoid scaling the cluster back to the originally intended scale point until client call patterns have been optimized, refer to **[best practices](/azure/aks/best-practices-performance-scale-large.md#kubernetes-clients)**. Premature scaling may cause the API server to crash again.
195195
196196
- You can also [modify the aks-managed-apiserver-guard FlowSchema and PriorityLevelConfiguration](https://kubernetes.io/docs/concepts/cluster-administration/flow-control/#good-practice-apf-settings) by applying the label **aks-managed-skip-update-operation: true**. This label preserves the modified configurations and prevents AKS from reconciling them back to default values. This is relevant if you are applying a custom FlowSchema and PriorityLevelConfiguration tailored to your cluster’s requirements as specified in [solution 5b](#solution-5b-throttle-a-client-thats-overwhelming-the-control-plane) and do not want AKS to automatically manage client throttling.
197197

@@ -332,29 +332,29 @@ AKSAudit
332332

333333
##### [**Azure diagnostics**](#tab/azure-diagnostics)
334334

335-
```kusto
336-
AzureDiagnostics
337-
| where TimeGenerated between(now(-1h)..now()) // When you experienced the problem
338-
| where Category == "kube-audit"
339-
| extend event = parse_json(log_s)
340-
| extend HttpMethod = tostring(event.verb)
341-
| extend Resource = tostring(event.objectRef.resource)
342-
| extend User = tostring(event.user.username)
343-
| where User == "DUMMYUSERAGENT" // Filter by name of the useragent you are interested in
344-
| where Resource != ""
345-
| extend start_time = todatetime(event.requestReceivedTimestamp)
346-
| extend end_time = todatetime(event.stageTimestamp)
347-
| extend latency = datetime_diff('millisecond', end_time, start_time)
348-
| summarize p99latency=percentile(latency, 99) by HttpMethod, Resource
349-
| render table
350-
```
335+
```kusto
336+
AzureDiagnostics
337+
| where TimeGenerated between(now(-1h)..now()) // When you experienced the problem
338+
| where Category == "kube-audit"
339+
| extend event = parse_json(log_s)
340+
| extend HttpMethod = tostring(event.verb)
341+
| extend Resource = tostring(event.objectRef.resource)
342+
| extend User = tostring(event.user.username)
343+
| where User == "DUMMYUSERAGENT" // Filter by name of the useragent you are interested in
344+
| where Resource != ""
345+
| extend start_time = todatetime(event.requestReceivedTimestamp)
346+
| extend end_time = todatetime(event.stageTimestamp)
347+
| extend latency = datetime_diff('millisecond', end_time, start_time)
348+
| summarize p99latency=percentile(latency, 99) by HttpMethod, Resource
349+
| render table
350+
```
351351
---
352352

353353
The results from this query can be useful to identify the kinds of API calls that fail the upstream Kubernetes SLOs. In most cases, an offending client might be making too many `LIST` calls on a large set of objects or objects that are too large. API server or etcd scalability limits is multi dimensionsal and are explained in [Kubernetes Scalability thresholds](https://github.com/kubernetes/community/blob/master/sig-scalability/configs-and-limits/thresholds.md).
354354

355355
### Solution 5a: Tune your API call pattern
356356

357-
To reduce the pressure on the control plane, consider tuning your client's API server call pattern. Refer to [best practices](/azure-aks-docs-pr/articles/aks/best-practices-performance-scale-large.md#kubernetes-clients).
357+
To reduce the pressure on the control plane, consider tuning your client's API server call pattern. Refer to [best practices](/azure/aks/best-practices-performance-scale-large.md#kubernetes-clients).
358358

359359
### Solution 5b: Throttle a client that's overwhelming the control plane
360360

0 commit comments

Comments
 (0)