HOME

KEDA 安装配置指南

介绍

KEDA(Knative Event-Driven Autoscaling)是一个用于Kubernetes环境下的自动扩展解决方案,它能够根据事件驱动来动态调整部署副本数量,从而实现资源的最佳利用和成本控制。本文将帮助您完成KEDA的安装与配置过程。

安装前提条件

在开始之前,请确保您的环境中满足以下要求:

安装 KEDA

1. 添加 Helm 存储库

首先,我们需要添加KEDA的Helm存储库:

helm repo add keda https://github.com/kedacore/helm-charts.git

2. 更新本地仓库信息

确保本地仓库信息是最新的:

helm repo update

3. 安装 KEDA

通过以下命令安装KEDA,其中--namespace参数可选,可以根据需要指定命名空间。默认为keda-system

helm install keda keda/keda --namespace keda-system

配置 KEDA

1. 安装监控组件

KEDA依赖于某些监控组件来收集数据并实现自动扩展功能,这些组件包括Prometheus和Kube State Metrics。请确保您的集群中已经安装了这些组件。

helm install prometheus stable/prometheus-operator --namespace monitoring

2. 配置 KEDA 监控资源

接下来配置KEDA监控的资源,如使用Prometheus监控指标:

apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: example-scaled-object
spec:
  scaleTargetRef:
    name: example-deployment
  triggers:
  - type: prometheus
    metadata:
      service: monitoring/prometheus-operated
      port: web

将上述YAML内容保存到文件example-scaled-object.yaml中,然后使用以下命令进行应用:

kubectl apply -f example-scaled-object.yaml

3. 测试 KEDA

为了验证KEDA是否正确工作,请创建一个简单的部署并将其与触发器关联。

首先,安装一个简单的Echo服务到Kubernetes集群:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: example-echo-service
spec:
  selector:
    matchLabels:
      app: echo
  template:
    metadata:
      labels:
        app: echo
    spec:
      containers:
      - name: echo
##         image: gcr.io/knative-releases/knative-release-upstream/configurator:v0.21.0
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: example-echo-service
spec:
  runLatest:
    configuration:
      spec:
        container:
          image: gcr.io/knative-releases/knative-release-upstream/configurator:v0.21.0

将上述YAML内容保存到文件example-echo-service.yaml中,然后使用以下命令进行应用:

kubectl apply -f example-echo-service.yaml

接下来配置触发器来监控这个服务的CPU利用率:

apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: echo-scaled-object
spec:
  scaleTargetRef:
    name: example-echo-service
  triggers:
  - type: average-resource-usage
    metadata:
      resource: cpu
      averageUtilization: 50

将上述YAML内容保存到文件echo-scaled-object.yaml中,然后使用以下命令进行应用:

kubectl apply -f echo-scaled-object.yaml

现在,当CPU利用率超过设定值时(如50%),KEDA会自动调整Echo服务的副本数量。

总结

通过本文介绍的步骤,您已经成功地在Kubernetes集群中安装并配置了KEDA。KEDA能够根据实际需求自动扩展应用程序,从而提高资源利用效率和成本效益。希望这篇文章能帮助您更好地理解和使用KEDA。