From 8be6ca3ec90ba5ac59453e8c17725d96d596172e Mon Sep 17 00:00:00 2001 From: YueHonghui Date: Tue, 29 Mar 2022 20:50:51 +0800 Subject: [PATCH] add federated hpa proposal Signed-off-by: YueHonghui --- docs/proposals/hpa/federated-hpa.md | 278 ++++++++++++++++++ .../statics/karmadafederatedhpa-arch.drawio | 1 + .../karmadafederatedhpa-arch.drawio.png | Bin 0 -> 51775 bytes 3 files changed, 279 insertions(+) create mode 100644 docs/proposals/hpa/federated-hpa.md create mode 100644 docs/proposals/hpa/statics/karmadafederatedhpa-arch.drawio create mode 100644 docs/proposals/hpa/statics/karmadafederatedhpa-arch.drawio.png diff --git a/docs/proposals/hpa/federated-hpa.md b/docs/proposals/hpa/federated-hpa.md new file mode 100644 index 000000000..1d4c9e408 --- /dev/null +++ b/docs/proposals/hpa/federated-hpa.md @@ -0,0 +1,278 @@ +--- +title: Federated HPA +authors: +- "@YueHonghui" # Authors' github accounts here. +- "@snowplayfire" +reviewers: +- "@RainbowMango" +- "@GitHubxsy" +- "@riverzhang" +approvers: +- "@RainbowMango" +- "@GitHubxsy" + +creation-date: 2022-02-14 + +--- + +# Federated HPA +## Summary +HPA is a widely used approach to improve the stability of apps dealing with burst of request and resource utility. We can run our apps on multiple clusters as easy as a single cluster with Karmada, but Karmada lacks the HPA support now. +This proposal introduces a new component FederatedHPA to Karmada and enables Karmada to autoscale workloads across clusters. It also tries to minimize the differences of the user experience between HPA on a single cluster. + +## Motivation + + + +### Goals +1. Bring HPA from single cluster to multiple clusters. +1. Compatible with the HPA related resources in the single cluster. +1. Tolerate the disaster of member cluster or karmada control plane. +1. It is better to integrate well with the scenarios such as workloads shifting and cloud burst. +1. It is better to support both Kubernetes HPA and customized HPA. + +### Non-Goals +1. Deal the workloads with different subset of services. +## Proposal + + + +### User Stories (Optional) + + + +#### Story 1 +For a platform developer using Kubernetes, now I want to use Karmada to run apps on multiclusters. But the CD ecosystem is built based on the single cluster and the original HPA is heavilly used. So I want to migrate the HPA resources to multiclusters without too much efforts. It is better to be compatible with the schema of HPA used in single cluster. + +#### Story 2 +For an application developer, I create a HPA CR for the application running on Karmada with FederatedHPA enabled. +``` +target cpu util 30% +min replica 3 +max replica 100 +``` +Suddenly, one of the member clusters which my application running on stops working and can't scale up new pods. Unfortunately, a request burst is comming into the application. The CPU util of pods becomes higher than 30%. It will need 100 Pods totally to take the request burst. I hope the Karmada FederatedHPA can scale up new pods in other healthy clusters. + +#### Story 3 +As an administrator of the Karmada&Kubernetes platform, I receive an alert that the Karmada control plane stops working and any requests to the Karmada control plane are failed. There are many applications running on the platform heavilly depend on the HPA to handle the unpredictable burst of requests. The chance of RCA occurred becomes really high if the system can't tolerate the failure of federation control plane. So I hope the Karmada FederatedHPA can scale in the member clusters even if the Karmada control plane is down. + +### Notes/Constraints/Caveats (Optional) +1. The workloads/pods in different member clusters selected by the same HPA CR/resource share the load of the application equally. For example, 10 pods of the application are spread into two member clusters with distribution `cluster1: 3 pods, cluster2: 7 pods`, so the 3 pods in cluster1 take 3/10 of total requests and 7 pods in cluster2 take 7/10 of total requests. Scenarios don't meet the restriction are not considered in this proposal. + + + +### Risks and Mitigations + + + +## Design Details +### Architecture +![Karmada FederatedHPA Architecture](statics/karmadafederatedhpa-arch.drawio.png) + +There are no new CRDs or resources introduced in this design. All the core functions are implemented in the `FederatedHPAController`. +1. The Kubernetes HPA components are still used in the member cluster and can work standalone. +1. The FederatedHPAController is responsible for the purposes + 1. Watch the HPA resource and `PropagationPolicy/ResourceBinding` corresponding to the `Workload`, to learn which clusters the HPA resource should propagated to and what weight the workloads should be spread between clusters. + 1. Create `Work` corresponding to HPA resource to spread the HPA to clusters. Distribute `min/max` fields of the HPA resources between member clusters based on the weight learned. + 1. Redistribute 'some' fields of the HPA resources after `PropagationPolicy/ResourceBinding` corresponding to `Workload` is changed. +1. There will be `ResourceInterpreterWebhook`s provided for different types of `Workload`. They are responsible for retaining the `replicas` in the member clusters and aggregate statuses. + +### How FederatedHPAController learn the propagation information corresponding to the Workload +When a new HPA resource created or changed, the `FederatedHPAController` should know the propagation and weight information of the corresponding `Workload`. How does the `FederatedHPAController` know it? The `FederatedHPAController` will easily find the corresponding `Workload` based on the field `ScaleTargetRef` and then will find the `PropagationPolicy` resource based on the matching of `ResourceSelectors`. + +For the weight information, because the karmada scheduler already plays the role to schedule the replicas, the `FederatedHPAController` can simplely reuse the scheduling result to learn the weight. The `HPAController` in the member cluster scale the `Workload` in the member cluster directly, it will conflict between the karmada scheduler. We can retain `replicas` in the member cluster by using feature [resource interpreter webhook](https://github.com/karmada-io/karmada/tree/master/docs/proposals/resource-interpreter-webhook). + +### How to deal with the `spec.replicas` of the Workload in the control plane +In the original Kubernetes HPA and Workload(Deployment, for example), HPA scale the workload through the `scale` subresource of Workload. Then, the field `replicas` will be modified to the desired number. But in this design, HPAController in the member cluster work standalone and don't scale workloads through control plane so that the actual number of pods in the member clusters don't match the `spec.replicas` of Workload in the control plane. This mismatch would cause incident when `spec.replicas` in control plane is much smaller than in member clusters and user delete the HPA resource. To solve this problem, `FederatedHPAController` can collect the sum of `spec.replicas` values from member clusters and set it to the `scale` subresource of Workload in the control plane. + +Even the `spec.replicas` of Workload in the control plane matches the actual total replicas in the member clusers, every time the `spec.replicas` of Workload in the control plane is modified, the replicas distribution in the `Work` re-calculated by Karmada scheduler most probably don't match the actual distribution in the member clusters. The mismatch also would cause incident mentioned above. To solve this problem, we can split it into two sub-problems +* How to gracefully shift workload in member clusters when desired distribution calculated by the karmada scheduler and actual distribution among member clusters differ substaintially. This may caused by modification of the `PropagationPolicy` or the remove of HPA resources controlled by the FederatedHPAController. Without the graceful shifting progress, the service may get out of capacity. In the future, features such as `Federated Pod Disruption Budget` may are needed to solve the problem here. +* How to control the difference between the actual distribution in member clusters and the desired state the karmada scheduler calculated even the FederatedHPA is enabled. But this problem will not be too critical if the first problem is solved. + +It is better to solve the first sub-problem in another proposal. So we will leave this problem until the first one is solved. + +### How to deal with the situation that `spec.replicas` is `1` +The workload can be spread into multiple member clusters when the `spec.replicas` in the control plane is greater than `1`. The disaster of one member cluster and control plane can be tolerated because the workload can be scaled in other member clusters. But if the `spec.replicas` is `1`, the workload and HPA resource would only be spread into one member cluster. If the member cluster and control plane are out of service in the same time, the workload can't be scaled. + +### How to integrate with and migrate from existing HPA resources +For some scenarios, people may want a friendly mechanism to control what HPA resources can be controled by `FederatedHPAController` +1. There are already many HPA resources in the control plane managed by `PropagationPolicy` and `OverridePolicy` before the Karmada support FederatedHPA natively. For some risk concerns, the administrator of the platform wants to migrate these HPA resources to be managed by the FederatedHPAController step by step. +1. There are already many HPA resources in the control plane managed by `PropagationPolicy` and `OverridePolicy` before the Karmada support FederatedHPA natively. But in the same Karmada control plane, some users want to use the native FederatedHPA but others want to remain the old ways. The FederatedHPA should not conflict with the HPA resources managed by the old ways. + +To meet the requirements of above scenarios mentioned, a label `federatedhpa.karmada.io/enabled=true/false` for HPA resources will be introduced. + +### How user stories are addressed +#### Story1 +Suppose platform administrator create a `ClusterPropagationPolicy` as a global default propagation for the `Workload` resources inside namespace `apps` in advance. According to the `default` `ClusterPropagationPolicy`, the weight between `clustera` and `clusterb` should be `4:1`. +
+ +unfold me to see the yaml + +``` +apiVersion: policy.karmada.io/v1alpha1 +kind: ClusterPropagationPolicy +metadata: + name: default +spec: + placement: + clusterAffinity: + clusterNames: + - clustera + - clusterb + replicaScheduling: + replicaDivisionPreference: Weighted + replicaSchedulingType: Divided + weightPreference: + staticWeightList: + - targetCluster: + clusterNames: + - clustera + weight: 4 + - targetCluster: + clusterNames: + - clusterb + weight: 1 + resourceSelectors: + - apiVersion: workload.example.io/v1alpha1 + kind: Workload +``` +
+ +In the term of user story 1, suppose a user create a `Workload` and an `HPA` in the `apps` namespace + +
+ +unfold me to see the yaml + +``` +apiVersion: workload.example.io/v1alpha1 +kind: Workload +metadata: + name: nginx + namespace: apps + labels: + app: nginx +spec: + replicas: 5 + paused: false + template: + metadata: + labels: + app: nginx + spec: + containers: + - image: nginx + name: nginx +------------------ +apiVersion: autoscaling/v2 +kind: HorizontalPodAutoscaler +metadata: + name: nginx + namespace: apps +spec: + scaleTargetRef: + apiVersion: workload.example.io/v1alpha1 + kind: Workload + name: nginx + minReplicas: 2 + maxReplicas: 10 + metrics: + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: 50 +``` + +
+ +Then, `ClusterResourceBinding` resources will be created and scheduled by the Karmada scheduler + +
+ +unfold me to see the yaml + +``` +apiVersion: work.karmada.io/v1alpha2 +kind: ClusterResourceBinding +metadata: + name: xxx +spec: + resource: + apiVersion: workload.example.io/v1alpha1 + kind: Workload + name: nginx + ... + clusters: + - name: clustera + replicas: 4 + - name: clusterb + replicas: 1 +``` + +
+ +The `FederatedHPAController` continuously watchs the events of HPA and Karmada relevant resources(`ClusterPropagationPolicy/PropagationPolicy` or `ClusterResourceBinding/ResourceBinding`) to learn +* Which clusters the HPA resources should be propagated to +* What weight the workload should be spreaded to clusters. The weight will be used to spread the `min/max` of HPA to clusters + +Then, `FederatedHPAController` create/update `Work` resources for HPA resource. Finally, the HPA resource will be spread to `clustera` and `clusterb`. The `min/max` of HPA resource in `clustera` and `clusterb` will be `1/8` and `1/2`. + +### High Availability +### Integration +### Test Plan + + + +## Alternatives + + + + diff --git a/docs/proposals/hpa/statics/karmadafederatedhpa-arch.drawio b/docs/proposals/hpa/statics/karmadafederatedhpa-arch.drawio new file mode 100644 index 000000000..079c63533 --- /dev/null +++ b/docs/proposals/hpa/statics/karmadafederatedhpa-arch.drawio @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/docs/proposals/hpa/statics/karmadafederatedhpa-arch.drawio.png b/docs/proposals/hpa/statics/karmadafederatedhpa-arch.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..8bc55b81df7a04cad69aee4fb4642b3e89c408e0 GIT binary patch literal 51775 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 R0$zY0NikW`@4|Xt{vW?@Kwkg= literal 0 HcmV?d00001