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 にたどり着きました。
自分のクラスター内の 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
がうまく消えずに残ってしまっていたようでした。