3.3. 安装自定义指标自动扩展

您可以使用 OpenShift Container Platform Web 控制台安装自定义 Metrics Autoscaler Operator。

安装会创建以下五个 CRD:

  • ClusterTriggerAuthentication
  • KedaController
  • ScaledJob
  • ScaledObject
  • TriggerAuthentication

3.3.1. 安装自定义指标自动扩展

您可以使用以下步骤安装自定义 Metrics Autoscaler Operator。

先决条件

  • 删除之前安装的 Cluster Metrics Autoscaler Operator 的技术预览版本。
  • 删除基于社区的 KEDA 的任何版本。

    另外,运行以下命令来删除 KEDA 1.x 自定义资源定义:

    $ oc delete crd scaledobjects.keda.k8s.io
    $ oc delete crd triggerauthentications.keda.k8s.io

流程

  1. 在 OpenShift Container Platform Web 控制台中,点击 OperatorsOperatorHub
  2. 从可用的 Operator 列表中选择 Custom Metrics Autoscaler,然后点 Install
  3. Install Operator 页面中,确保为 Installation Mode 选择 All namespaces on the cluster(default) 选项。这会在所有命名空间中安装 Operator。
  4. 确保为 Installed Namespace 选择了 openshift-keda 命名空间。如果集群中不存在命名空间,OpenShift Container Platform 会创建命名空间。
  5. Install
  6. 列出自定义 Metrics Autoscaler Operator 组件来验证安装:

    1. 导航到 WorkloadsPods
    2. 从下拉菜单中选择 openshift-keda 项目,并验证 custom-metrics-autoscaler-operator-* pod 正在运行。
    3. 进入到 WorkloadsDeployments 以验证 custom-metrics-autoscaler-operator 部署是否正在运行。
  7. 可选:使用以下命令在 OpenShift CLI 中验证安装:

    $ oc get all -n openshift-keda

    输出结果类似如下:

    输出示例

    NAME                                                      READY   STATUS    RESTARTS   AGE
    pod/custom-metrics-autoscaler-operator-5fd8d9ffd8-xt4xp   1/1     Running   0          18m
    
    NAME                                                 READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/custom-metrics-autoscaler-operator   1/1     1            1           18m
    
    NAME                                                            DESIRED   CURRENT   READY   AGE
    replicaset.apps/custom-metrics-autoscaler-operator-5fd8d9ffd8   1         1         1       18m

  8. 安装 KedaController 自定义资源,该资源创建所需的 CRD:

    1. 在 OpenShift Container Platform web 控制台中,点击 OperatorsInstalled Operators
    2. Custom Metrics Autoscaler
    3. Operator Details 页面中,点 KedaController 选项卡。
    4. KedaController 选项卡中,点 Create KedaController 并编辑文件。

      kind: KedaController
      apiVersion: keda.sh/v1alpha1
      metadata:
        name: keda
        namespace: openshift-keda
      spec:
        watchNamespace: '' 1
        operator:
          logLevel: info 2
          logEncoder: console 3
        metricsServer:
          logLevel: '0' 4
          auditConfig: 5
            logFormat: "json"
            logOutputVolumeClaim: "persistentVolumeClaimName"
            policy:
              rules:
              - level: Metadata
              omitStages: "RequestReceived"
              omitManagedFields: false
            lifetime:
              maxAge: "2"
              maxBackup: "1"
              maxSize: "50"
        serviceAccount: {}
      1
      指定自定义自动扩展应该监视的命名空间。在以逗号分隔的列表中输入名称。省略或设置空以监视所有命名空间。默认值为空。
      2
      指定自定义 Metrics Autoscaler Operator 日志消息的详细程度。允许的值有 debuginfoerror。默认为 info
      3
      指定 Custom Metrics Autoscaler Operator 日志消息的日志记录格式。允许的值是 consolejson。默认为 console
      4
      指定自定义 Metrics Autoscaler Metrics 服务器的日志记录级别。允许的值是 0(用于 info)和 4(用于 debug )。默认值为 0
      5
      激活自定义 Metrics Autoscaler Operator 的审计日志记录,并指定要使用的审计策略,如"配置审计日志记录"部分中所述。
    5. Create 创建 KEDAController。