💻
AWXのインストールでハマった
AWX を Kubernetes クラスタで動かしたくて、awx-operator を使ってインストールしようとしていた。
READMEにある通りに実行していたが、$ kubectl apply -f awx-demo.yml
に該当する手順を実行しても AWX instance の pod が立ち上がらなかった。
$ kubectl logs -f deployments/awx-operator-controller-manager -c awx-manager
で operator のログをみていると
{
"level":"error",
"ts":1637736442.698158,
"logger":"proxy",
"msg":"Unable to determine if virtual resource",
"gvk":"/v1, Kind=Secret",
"error":"unable to retrieve the complete list of server APIs: external.metrics.k8s.io/v1beta1: the server is currently unable to handle the request",
...
}
というようなログが出ていた。(ログは整形されていないので見づらく、価値のあるメッセージを探すのも若干大変)
external.metrics.k8s.io/v1beta1
の APIService は Datadog Cluster Agent が提供しているものなのだが、別の原因でうまく動かない状態になっていた。
$ kubectl get APIService --all-namespaces | grep False
v1beta1.external.metrics.k8s.io datadog/datadog-cluster-agent-metrics-api False (FailedDiscoveryCheck) 29d
awx-operator がこのメトリクスを使おうとしているわけではなさそうだったが、API一覧を取る処理がどこかにあるようでそれに失敗していた。
Datadog Cluster Agent の Helm Chart の値を変更して、この API Service を作成しないように変更したところ、AWX Operator は期待通りに動いてくれた。
まさかこんなところが影響しているとは思いもせず、時間を溶かしてしまったので備忘録。
Discussion