手动安装 HPA (仅适用于2.0.7之前版本)
本节介绍如何为 v2.0.7 版本之前的 Rancher 创建的集群中手动安装 HPA。本节还介绍了如何配置 HPA 以便按比例进行自动扩缩容,以及如何为 HPA 分配角色。
必须先满足一些要求,然后才能在 Kubernetes 集群中使用 HPA。
#
要求确保您的 Kubernetes 集群服务至少以以下参数运行:
kube-api:
requestheader-client-ca-file
kubelet:
read-only-port
为 10255kube-controller: 可选,仅在需要与默认值不同时才需要。
horizontal-pod-autoscaler-downscale-delay: "5m0s"
horizontal-pod-autoscaler-upscale-delay: "3m0s"
horizontal-pod-autoscaler-sync-period: "30s"
对于 RKE 部署的 Kubernetes 集群,在 services
部分添加此代码段。要使用 Rancher v2.0 UI 添加此代码段,请打开集群视图,然后为要在其中使用 HPA 的集群选择省略号(... )> 编辑。然后,从集群选项中,单击编辑为 YAML。将以下代码段添加 services
部分:
一旦配置和部署了 Kubernetes 集群,就可以部署指标服务(metrics services)。
注: 以下各节中的
kubectl
命令示例在运行 Rancher v2.0.6 和 Kubernetes v1.10.1 的集群中进行了测试。
#
使用资源指标配置 HPA 进行自动扩缩容要基于 CPU 和内存使用等资源指标创建 HPA 资源,您需要在 Kubernetes 集群的 kube-system
命名空间中部署 metrics-server
软件包。这种部署允许 HPA 使用 metrics.k8s.io
API。
先决条件:您必须运行
kubectl
1.8 或更高版本。
使用
kubectl
连接到您的 Kubernetes 集群。克隆 GitHub
metrics-server
仓库:安装
metrics-server
软件包。检查
metrics-server
是否正常运行。在kube-system
命名空间里检查对应的 pod 和日志是否正常。检查 pod 状态是否为
running
状态。输入以下命令:然后检查是否 pod 的状态
running
.检查 pod 日志以确保服务可用性。输入以下命令:
然后查看日志以确认
metrics-server
软件包正在运行。
检查是否可以通过
kubectl
访问 metrics api。如果要通过 Rancher 访问集群,请在
kubectl
配置中以以下格式输入服务器 URL:https:// <RANCHER_URL>/k8s/clusters/<CLUSTER_ID>
。将后缀/k8s/clusters/<CLUSTER_ID>
添加到 API 路径。如果 API 正常运行,您应该收到与以下输出类似的输出。
如果直接访问集群,请在 kubectl 配置中以以下格式输入服务器 URL:
https://<K8s_URL>:6443
。如果 API 正常运行,您应该收到与以下输出类似的输出。
#
为您的 HPA 分配其他必需的角色默认情况下,HPA 使用system:anonymous
用户读取资源和自定义指标。在 ClusterRole 和 ClusterRoleBindings 清单中将system:anonymous
分配给view-resource-metrics
和view-custom-metrics
。这些角色用于访问指标。
为此,请按照下列步骤操作:
kubectl
以连接到您的集群。#
配置#
复制 ClusterRole 和 ClusterRoleBinding 清单以获取用于 HPA 的指标类型。资源指标: ApiGroups
resource.metrics.k8s.io
自定义指标: ApiGroups
custom.metrics.k8s.io