血と汗となみだを流す

個人の思ったこと、やったことの吐き出し口です。

service "opentelemetry-operator-webhook-service" not found

EKS に AWS Distro for OpenTelemetry をインストールし、OpenTelemetryCollector リソースをデプロイしようとしたら以下のエラーが発生しました。(見やすいように改行してます)

Error from server (InternalError)
: error when creating "otel-collector-xray-prometheus-complete.yaml"
: Internal error occurred
: failed calling webhook "mopentelemetrycollector.kb.io"
: failed to call webhook
: Post "https://opentelemetry-operator-webhook-service.opentelemetry-operator-system.svc:443/mutate-opentelemetry-io-v1alpha1-opentelemetrycollector?timeout=10s"
: service "opentelemetry-operator-webhook-service" not found

mopentelemetrycollector の m って何?と思いながらも調査してたら以下の issue にたどり着きました。

github.com

自分のクラスター内の ValidatingWebhookConfiguration リソースと MutatingWebhookConfiguration を確認してみる。

$ kubectl get ValidatingWebhookConfiguration
NAME                                                      WEBHOOKS   AGE
aws-load-balancer-webhook                                 2          487d
cert-manager-webhook                                      1          479d
eks-aws-auth-configmap-validation-webhook                 1          318d
istio-validator-istio-system                              1          371d
istiod-default-validator                                  1          371d
opentelemetry-operator-validating-webhook-configuration   6          479d
opentelemetry-operator-validation                         4          40m
vpc-resource-validating-webhook                           2          490d
$ kubectl get MutatingWebhookConfiguration
NAME                                                    WEBHOOKS   AGE
0500-amazon-eks-fargate-mutation.amazonaws.com          2          490d
aws-load-balancer-webhook                               2          487d
cert-manager-webhook                                    1          479d
istio-revision-tag-default                              4          371d
istio-sidecar-injector                                  4          371d
opentelemetry-operator-mutating-webhook-configuration   4          479d
opentelemetry-operator-mutation                         3          6m30s
pod-identity-webhook                                    1          490d
vpc-resource-mutating-webhook                           1          490d

たしかにValidatingWebhookConfiguration リソースには

  • opentelemetry-operator-validating-webhook-configuration
  • opentelemetry-operator-validation

MutatingWebhookConfiguration リソースには

  • opentelemetry-operator-mutating-webhook-configuration
  • opentelemetry-operator-mutation

と複数のリソースがありました。

issue にあるように古い方のリソースを削除してみる。

$ kubectl delete ValidatingWebhookConfiguration opentelemetry-operator-validating-webhook-configuration 
$ kubectl delete MutatingWebhookConfiguration opentelemetry-operator-mutating-webhook-configuration

古いリソースを削除したところ、エラーは消えて OpenTelemetryCollector リソースをデプロイできました。

はるか昔、helm で OpenTeletery Operator をインストールしたり削除したりしていましたが、 ValidatingWebhookConfiguration リソースと MutatingWebhookConfiguration がうまく消えずに残ってしまっていたようでした。

プライバシーポリシー