Skip to content

Commit

Permalink
review fix
Browse files Browse the repository at this point in the history
Signed-off-by: B1F030 <[email protected]>
  • Loading branch information
B1F030 committed May 11, 2024
1 parent 811623c commit cd9e43b
Showing 1 changed file with 12 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,23 @@ title: 使用资源指标跨集群自动扩展
---
在 Karmada 中,为了自动扩展工作负载以满足需求,FederatedHPA 会跨多个集群扩/缩容工作负载。

当负载增加时,如果 Pod 数量低于配置的最大值,FederatedHPA 会扩容工作负载的副本(Deployment、StatefulSet 或其他类似资源)。当负载减少时,如果 Pod 数量高于配置的最小值,FederatedHPA 会缩容工作负载的副本。
当负载增加时,如果 Pod 数量低于配置的最大值,FederatedHPA 会扩容工作负载(Deployment、StatefulSet 或其他类似资源)的副本。当负载减少时,如果 Pod 数量高于配置的最小值,FederatedHPA 会缩容工作负载的副本。

本文档将引导您完成一个启用 FederatedHPA 为跨集群部署的 nginx 自动管理扩展的案例。

演示案例将执行以下操作:
![federatedhpa-demo](../resources/tutorials/federatedhpa-demo.png)

* `member1` 集群中存在一个 deployment 下属的 pod
* `member1` 集群中存在一个 Deployment 下属的 Pod
* Service 部署在 `member1``member2` 集群。
* 请求多集群服务并触发 pod 的 CPU 使用率增加。
* 请求多集群服务并触发 Pod 的 CPU 使用率增加。
* 副本将在 `member1``member2` 集群中扩容。

## 前提条件

### Karmada 已安装

您可以参考 [快速入门](https://github.com/karmada-io/karmada#quick-start) 安装 Karmada,或直接运行 `hack/local-up-karmada.sh` 脚本,该脚本也用于运行 E2E 测试。
您可以参考[快速入门](https://github.com/karmada-io/karmada#quick-start)安装 Karmada,或直接运行 `hack/local-up-karmada.sh` 脚本,该脚本也用于运行 E2E 测试。

### 成员集群网络

Expand Down Expand Up @@ -91,11 +91,11 @@ hack/deploy-k8s-metrics-server.sh $HOME/.kube/members.config member3
hack/deploy-metrics-adapter.sh ${host_cluster_kubeconfig} ${host_cluster_context} ${karmada_apiserver_kubeconfig} ${karmada_apiserver_context_name}
```

如果您使用 `hack/local-up-karmada.sh` 脚本部署 Karmada,`karmada-metrics-adapter` 将默认安装
如果您使用 `hack/local-up-karmada.sh` 脚本部署 Karmada,将默认安装 `karmada-metrics-adapter`。

## 在 `member1` 和 `member2` 集群中部署工作负载

我们需要在 `member1` 和 `member2` 集群中部署 deployment(1 个副本)和 service
我们需要在 `member1` 和 `member2` 集群中部署 Deployment(1 个副本)和 Service

```yaml
apiVersion: apps/v1
Expand Down Expand Up @@ -168,7 +168,7 @@ spec:
weight: 1
```

部署完成后,您可以检查 podservice 的分发情况:
部署完成后,您可以检查 PodService 的分发情况:
```sh
$ karmadactl get pods
NAME CLUSTER READY STATUS RESTARTS AGE
Expand Down Expand Up @@ -217,9 +217,9 @@ NAME REFERENCE-KIND REFERENCE-NAME MINPODS MAXPODS REPLICAS AGE
nginx Deployment nginx 1 10 1 9h
```

## 将 service 导出到 `member1` 集群
## 将 Service 导出到 `member1` 集群

正如前文所提到的,我们需要一个多集群服务来将请求转发到 `member1` 和 `member2` 集群中的 pod,因此让我们创建这个多集群服务。
正如前文所提到的,我们需要一个多集群服务来将请求转发到 `member1` 和 `member2` 集群中的 Pod,因此让我们创建这个多集群服务。
* 在 Karmada 控制平面创建一个 `ServiceExport` 对象,然后创建一个 `PropagationPolicy` 将 `ServiceExport` 对象分发到 `member1` 和 `member2` 集群。
```yaml
apiVersion: multicluster.x-k8s.io/v1alpha1
Expand Down Expand Up @@ -288,7 +288,7 @@ $ docker cp hey_linux_amd64 member1-control-plane:/usr/local/bin/hey
## 测试扩容
* 首先检查 pod 的分发情况。
* 首先检查 Pod 的分发情况。
```sh
$ karmadactl get pods
NAME CLUSTER READY STATUS RESTARTS AGE
Expand All @@ -301,12 +301,12 @@ $ docker cp hey_linux_amd64 member1-control-plane:/usr/local/bin/hey
derived-nginx-service member1 ClusterIP 10.11.59.213 <none> 80/TCP 20m Y
```

* 使用 hey 请求多集群服务,以提高 nginx pod 的 CPU 使用率。
* 使用 hey 请求多集群服务,以提高 nginx Pod 的 CPU 使用率。
```sh
$ docker exec member1-control-plane hey -c 1000 -z 1m http://10.11.59.213
```

* 等待 15 秒,副本将扩容,然后您可以再次检查 pod 分发状态。
* 等待 15 秒,副本将扩容,然后您可以再次检查 Pod 分发状态。
```sh
$ karmadactl get pods -l app=nginx
NAME CLUSTER READY STATUS RESTARTS AGE
Expand Down

0 comments on commit cd9e43b

Please sign in to comment.