次の方法で共有


Kubernetes イベント ドリブン自動スケーリング アドオンのトラブルシューティング

この記事では、Microsoft Azure Kubernetes Service (AKS) に対する Kubernetes イベント ドリブン自動スケーリング (KEDA) アドオンのトラブルシューティング方法について説明します。 KEDA AKS アドオンをデプロイすると、アプリケーション 自動スケーラーの構成に関連する問題が発生する可能性があります。 この記事では、エラーのトラブルシューティングを行い、アドオンに影響を与える一般的な問題を解決するのに役立ちますが、公式の KEDA FAQトラブルシューティング ガイドには記載されていません。

前提条件

KEDA アドオンのサポート

KEDA アドオンは、他の AKS アドオンと同様のサポート モデルに従います。 すべての Azure KEDA スケーラーはサポートされていますが、AKS ではサード パーティのスケーラーはサポートされていません。 サード パーティのスケーラーで問題が発生した場合は、公式の KEDA GitHub リポジトリで問題を開きます。

トラブルシューティング チェックリスト

次のセクションの手順を使用して、KEDA コンポーネントの確認とトラブルシューティングを行います。

利用可能な KEDA バージョンを確認する

使用可能な KEDA バージョンは、 kubectl get コマンドを使用して決定できます。

kubectl get crd/scaledobjects.keda.sh -o custom-columns='APP:.metadata.labels.app\.kubernetes\.io/version'

コマンド出力には、インストールされているバージョンの KEDA が表示されます。

APP
2.8.1

クラスター ファイアウォールが正しく構成されていることを確認する

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

メトリック サーバー セクションで、KEDA を起動できないことが検出される場合があります。

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 が正しく実行されていることを確認するには、 Azure グローバルに必要なネットワーク規則を満たすようにファイアウォールを構成します。

自己管理型オープン ソース KEDA インストールを使用してクラスターのアドオンを有効にする

理論的には、Kubernetes でインストールできるメトリック サーバーは 1 つだけですが、KEDA は何度もインストールできます。 ただし、1 つのインストールのみが機能するため、複数のインストールはお勧めしません。

KEDA アドオンが AKS クラスターにインストールされると、以前のオープンソース KEDA のインストールがオーバーライドされ、アドオンが引き継がれるようになります。 このシナリオでは、自己インストール KEDA デプロイのカスタマイズと構成が失われ、適用されなくなります。

既存の自動スケーリングは引き続き動作する可能性がありますが、この状況ではリスクが発生します。 KEDA アドオンは異なる方法で構成され、マネージド ID などの機能はサポートされません。 インストール中にエラーが発生しないようにするには、KEDA アドオンを有効にする前に、既存の KEDA インストールをアンインストールすることをお勧めします。

KEDA で使用されるメトリック アダプターを確認するには、次のコマンドを kubectl get 実行します。

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 アドオンは無視され、別のメトリック サーバーが使用されています。

ワークロード ID が正しく挿入されていないときに KEDA オペレーター ポッドを再起動する方法

ワークロード ID Microsoft Entra使用していて、ワークロード ID を使用する前に KEDA を有効にする場合は、KEDA オペレーター ポッドを再起動する必要があります。 これにより、正しい環境変数が挿入されます。 これを行うには、次の手順を実行します。

  1. 次のコマンドを実行してポッドを再起動します。

    kubectl rollout restart deployment keda-operator -n kube-system
    
  2. 次のコマンドを実行して KEDA オペレーター ポッドを取得し、名前が 'keda-operator' で始まるポッドを見つけます。

    kubectl get pod -n kube-system
    
  3. 環境変数が正常に挿入されたことを確認するには、次のコマンドを実行します。

    kubectl describe pod <keda-operator-pod-name> -n kube-system
    

    変数が正常に挿入された場合は、[環境] セクションに 、AZURE_FEDERATED_TOKEN_FILE、および AZURE_AUTHORITY_HOST の値AZURE_TENANT_IDが表示されます。

サードパーティの情報に関する免責事項

この資料に記載されているサードパーティ製品は、マイクロソフトと関連のない他社の製品です。 明示的か黙示的かにかかわらず、これらの製品のパフォーマンスや信頼性についてマイクロソフトはいかなる責任も負わないものとします。

お問い合わせはこちらから

質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。