课程评价 (0)

请对课程作出评价:
0/300

学员评价

暂无精选评价
30分钟

在腾讯云容器服务 (TKE) 中缩放应用程序

在腾讯云容器服务 (TKE) 中缩放应用程序

如果已按照教程执行,则在 TKE 中已有可正常工作的 Kubernetes 群集,并且已部署了 腾讯云 投票应用。 在本节会在应用中扩大 Pod 并尝试 Pod 自动缩放。 学习如何:

  • 缩放 Kubernetes 节点
  • 手动缩放运行应用程序的 Kubernetes Pod
  • 配置运行应用前端的自动缩放 Pod

在后续教程中,腾讯云 投票应用程序将更新为新版本。

开始之前

在前面的教程中,我们已将应用程度打包到容器映像中,将此映像上传到 Tencent Hub的 容器仓库中,并创建了 Kubernetes 群集。 应用程序随后在 Kubernetes 群集上运行。 如果尚未完成这些步骤,并且想要逐一完成,请返回到 创建容器映像。

手动缩放 Pod

在前述教程中部署 腾讯云 投票前端和 Redis 实例时,创建了单个副本。 若要查看群集中 Pod 的数目和状态,请使用 kubectl get 命令,如下所示:

kubectl get pods

以下示例输出显示一个前端 Pod 和一个后端 Pod:

NAME                                 READY     STATUS    RESTARTS   AGE
qcloud-vote-back-b68b85dbf-cn9lz     1/1       Running   0          6m
qcloud-vote-front-76fccf8655-5t9vh   1/1       Running   0          6m

若要手动更改 qcloud-vote-front 部署中的 Pod 数,请使用 kubectl scale 命令。 以下示例将前端 Pod 数增加到 3

kubectl scale --replicas=3 deployment/qcloud-vote-front

再次运行 kubectl get pods,验证 Kubernetes 是否创建其他 Pod。 一分钟左右之后,其他 Pod 会在群集中提供:

$ kubectl get pods

NAME                                 READY     STATUS    RESTARTS   AGE
qcloud-vote-back-b68b85dbf-cn9lz     1/1       Running   0          16m
qcloud-vote-front-76fccf8655-5qrvt   1/1       Running   0          1m
qcloud-vote-front-76fccf8655-5t9vh   1/1       Running   0          16m
qcloud-vote-front-76fccf8655-qwkss   1/1       Running   0          1m

自动缩放 Pod

Kubernetes 支持水平 Pod 自动缩放以根据 CPU 利用率或其他选择指标调整部署中的 Pod 数。 指标服务器用来将资源利用率提供给 Kubernetes,可自动部署在 TKE 群集 1.10 及更高版本中。

如果 TKE 群集的版本低于 1.10,请安装指标服务器,否则请跳过此步骤。 若要查看这些 YAML 定义的内容,请参阅适用于 Kuberenetes 1.8+ 的指标服务器

若要使用自动缩放程序,Pod 必须定义了 CPU 请求和限制。 在 qcloud-vote-front 部署中,前端容器请求 0.25 个 CPU,限制为 0.5 个 CPU。 设置与下面类似:

resources:
  requests:
     cpu: 250m
  limits:
     cpu: 500m

下面的示例使用 kubectl autoscale 命令自动缩放 qcloud-vote-front 部署中的 Pod 数。 如果 CPU 利用率超过 50%,则自动缩放程序会将 Pod 增加到最多 5 个实例:

kubectl autoscale deployment qcloud-vote-front --cpu-percent=50 --min=2 --max=5

若要查看自动缩放程序的状态,请使用 kubectl get hpa 命令,如下所示:

$ kubectl get hpa

NNAME                REFERENCE                      TARGETS         MINPODS   MAXPODS   REPLICAS   AGE
qcloud-vote-front   Deployment/qcloud-vote-front   <unknown>/50%   2         5         0          5s

在 腾讯云 投票应用处于最小负荷状态几分钟之后,Pod 副本数会自动减少到 2 个。 也可再次使用 kubectl get pods 来查看不需要的 Pod 是否已删除。

后续步骤

在本教程中,在 Kubernetes 群集中使用了不同的缩放功能。 你已了解如何:

  • 缩放 Kubernetes 节点
  • 手动缩放运行应用程序的 Kubernetes Pod
  • 配置运行应用前端的自动缩放 Pod

继续学习下一教程,了解如何在 Kubernetes 中更新应用程序。