Kubernetes 事件驱动的自动缩放 (KEDA) AKS 加载项故障排除指南
部署 KEDA AKS 加载项时,你可能会遇到与应用程序自动缩放程序配置相关的问题。
除了官方 KEDA 常见问题解答和故障排除指南之外,还可以借助以下指南来排查错误并解决加载项的常见问题。
验证 KEDA 组件并对其进行故障排除
查看可用的 KEDA 版本
可使用 kubectl
命令检查可用的 KEDA 版本:
kubectl get crd/scaledobjects.keda.sh -o custom-columns='APP:.metadata.labels.app\.kubernetes\.io/version'
安装的 KEDA 版本将概述以下内容:
APP
2.7.0
确保群集防火墙配置正确
KEDA 可能会由于无法启动而导致无法缩放应用程序。
当检查操作员日志时,你可能会发现类似以下内容的错误:
1.6545953013458195e+09 ERROR Failed to get API Group-Resources {"error": "Get \"https://10.0.0.1:443/api?timeout=32s\": EOF"}
sigs.k8s.io/controller-runtime/pkg/cluster.New
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.11.2/pkg/cluster/cluster.go:160
sigs.k8s.io/controller-runtime/pkg/manager.New
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.11.2/pkg/manager/manager.go:313
main.main
/workspace/main.go:87
runtime.main
/usr/local/go/src/runtime/proc.go:255
1.6545953013459463e+09 ERROR setup unable to start manager {"error": "Get \"https://10.0.0.1:443/api?timeout=32s\": EOF"}
main.main
/workspace/main.go:97
runtime.main
/usr/local/go/src/runtime/proc.go:255
在指标服务器中,你可能会注意到它无法启动:
I0607 09:53:05.297924 1 main.go:147] keda_metrics_adapter "msg"="KEDA Version: 2.7.1"
I0607 09:53:05.297979 1 main.go:148] keda_metrics_adapter "msg"="KEDA Commit: "
I0607 09:53:05.297996 1 main.go:149] keda_metrics_adapter "msg"="Go Version: go1.17.9"
I0607 09:53:05.298006 1 main.go:150] keda_metrics_adapter "msg"="Go OS/Arch: linux/amd64"
E0607 09:53:15.344324 1 logr.go:279] keda_metrics_adapter "msg"="Failed to get API Group-Resources" "error"="Get \"https://10.0.0.1:443/api?timeout=32s\": EOF"
E0607 09:53:15.344360 1 main.go:104] keda_metrics_adapter "msg"="failed to setup manager" "error"="Get \"https://10.0.0.1:443/api?timeout=32s\": EOF"
E0607 09:53:15.344378 1 main.go:209] keda_metrics_adapter "msg"="making provider" "error"="Get \"https://10.0.0.1:443/api?timeout=32s\": EOF"
E0607 09:53:15.344399 1 main.go:168] keda_metrics_adapter "msg"="unable to run external metrics adapter" "error"="Get \"https://10.0.0.1:443/api?timeout=32s\": EOF"
这很可能意味着 KEDA 加载项由于防火墙配置错误而无法启动。
为确保其正常运行,请务必配置防火墙,以满足要求。
在安装了自托管开源 KEDA 的群集上启用加载项
虽然 Kubernetes 只允许安装一个指标服务器,但理论上可以多次安装 KEDA。 但不建议这样做,因为只有一个安装可以正常工作。
当在 AKS 群集中安装 KEDA 加载项时,之前安装的开源 KEDA 将被替代并由加载项取而代之。
这意味着自行安装的 KEDA 部署的自定义和配置将会丢失,不再适用。
虽然现有的自动缩放仍将继续工作,但这会带来风险,因为它将以不同的方式配置并且不支持托管标识等功能。
建议在启用 KEDA 加载项之前卸载现有的 KEDA 安装,因为安装将成功且没有任何错误。
要确定 KEDA 正在使用的指标适配器,请使用 kubectl
命令:
kubectl get APIService/v1beta1.external.metrics.k8s.io -o custom-columns='NAME:.spec.service.name,NAMESPACE:.spec.service.namespace'
将提供一个概述,显示 Kubernetes 将用于获取指标的服务和命名空间:
NAME NAMESPACE
keda-operator-metrics-apiserver kube-system
警告
如果命名空间不是 kube-system
,则将忽略 AKS 加载项,并使用其他指标服务器。