gpt4 book ai didi

kubernetes - 使用多种自动伸缩机制来自动伸缩 K8s 集群

转载 作者:行者123 更新时间:2023-12-02 11:55:05 25 4
gpt4 key购买 nike

在最近的一个实验中,我尝试使用两种机制自动扩展我的 K8s 集群:KEDA 和 HPA(见下文)。我想使用 HPA OOB 资源指标根据 pod 资源利用率(内存和 CPU)扩展我的集群,并使用 KEDA 根据自定义指标自动扩展。
即使我的部署成功并且集群运行良好且正常运行。当自动缩放启动时,集群变得困惑! Pod 不断地被配置然后取消配置,即使在我停止了针对集群的流量之后,这种状态仍然存在。我必须等待冷静期才能再次恢复理智。
我没有找到有关此主题的任何官方文档,因此在这里询问。
我的问题:

  • 可以将 k8s 集群配置为使用多种机制自动扩展吗?
  • 如果是这样,我做错了什么?

  • 这是在 K8s 版本 1.15.11 和 KEDA 1.4.1 上
    apiVersion: keda.k8s.io/v1alpha1
    kind: ScaledObject
    metadata:
    name: {{ $fullName }}
    labels:
    deploymentName: {{ $fullName }}
    {{- include "deployment.labels" . | nindent 4 }}
    spec:
    scaleTargetRef:
    deploymentName: {{ $fullName }}
    pollingInterval: {{ .Values.scaleobject.pollingInterval }}
    cooldownPeriod: {{ .Values.scaleobject.cooldownPeriod }}
    minReplicaCount: {{ .Values.scaleobject.minReplicaCount }}
    maxReplicaCount: {{ .Values.scaleobject.maxReplicaCount }}
    triggers:
    - type: prometheus
    metadata:
    serverAddress: {{ tpl .Values.scaleobject.serverAddress . | quote }}
    metricName: access_frequency
    threshold: "{{ .Values.scaleobject.threshold }}"
    query: {{ tpl .Values.scaleobject.query . | quote }}
    ---
    apiVersion: autoscaling/v2beta2
    kind: HorizontalPodAutoscaler
    metadata:
    name: resource-utilization-scaling
    namespace: default
    spec:
    scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: {{ $fullName }}
    minReplicas: {{ .Values.scaleobject.minReplicaCount }}
    maxReplicas: {{ .Values.scaleobject.maxReplicaCount }}
    metrics:
    - type: Resource
    resource:
    name: cpu
    target:
    type: Utilization
    averageUtilization: {{ .Values.scaleobject.cpuUtilization }}
    - type: Resource
    resource:
    name: memory
    target:
    type: Utilization
    averageUtilization: {{ .Values.scaleobject.memUtilization }}

    最佳答案

    KEDA没有 direct cluster autoscaler support yet所以你会有一些不可预测性。从本质上讲,您有两条信息没有被 KEDA 和集群自动缩放器共享,其中一些可能在特定时间不一致。
    在我看来,最好是减慢所有自动缩放的速度,以便所有自动缩放器都能 catch 任何差异。例如,您可以使用 cooldown 之类的东西。在自动缩放组中以避免某些资源匮乏。
    ✌️

    关于kubernetes - 使用多种自动伸缩机制来自动伸缩 K8s 集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63495899/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com