Ошибка сервера (InternalError): Произошла внутренняя ошибка: не удалось вызвать вебхук “webhook.cert-manager.io”.

Вопрос или проблема

Я настраиваю кластер k8s на двух экземплярах EC2.
Устанавливаю cert-manager: kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.15.3/cert-manager.yaml

kubectl get node

ИМЯ               СТАТУС   РОЛИ           ВОЗРАСТ   ВЕРСИЯ
ip-172-31-31-197   Готов    <нет>          39м   v1.31.1
ip-172-31-31-79    Готов    контрольная-плоскость   41м   v1.31.1

kubectl get pod –all-namespaces

ПОДМОЩНОСТЬ      ИМЯ                                       ГОТОВ   СТАТУС             ПЕРезапуски        ВОЗРАСТ
cert-manager   cert-manager-7fbbc65b49-mj848              1/1     Работает            0               30м
cert-manager   cert-manager-cainjector-6664fc84f6-v7w7q   1/1     Работает            0               30м
cert-manager   cert-manager-webhook-59598898fd-cfvhp      1/1     Работает            0               30м
kube-flannel   kube-flannel-ds-5qtfz                      1/1     Работает            0               37м
kube-flannel   kube-flannel-ds-k8m7x                      1/1     Работает            0               39м
kube-system    coredns-7c65d6cfc9-5qq2l                   1/1     Работает            0               39м
kube-system    coredns-7c65d6cfc9-69t5n                   1/1     Работает            0               39м
kube-system    etcd-ip-172-31-31-79                       1/1     Работает            0               39м
kube-system    kube-apiserver-ip-172-31-31-79             1/1     Работает            0               39м
kube-system    kube-controller-manager-ip-172-31-31-79    1/1     Работает            0               39м
kube-system    kube-proxy-4svnx                           1/1     Работает            9 (6м39с назад)   37м
kube-system    kube-proxy-nbldj                           0/1     CrashLoopBackOff   10 (98с назад)    39м
kube-system    kube-scheduler-ip-172-31-31-79             1/1     Работает            0               39м

cmctl check api
Ошибка от сервера (InternalError): Произошла внутренняя ошибка: ошибка при вызове вебхука "webhook.cert-manager.io": не удалось вызвать вебхук: Пост "https://cert-manager-webhook.cert-manager.svc:443/validate?timeout=30s": истекло время ожидания контекста

kubectl apply -f test-resources.yaml

namespace/cert-manager-test создан
Ошибка от сервера (InternalError): ошибка при создании "test-resources.yaml": Произошла внутренняя ошибка: ошибка при вызове вебхука "webhook.cert-manager.io": не удалось вызвать вебхук: Пост "https://cert-manager-webhook.cert-manager.svc:443/validate?timeout=30s": net/http: запрос отменен при ожидании соединения (истекло время ожидания клиента во время ожидания заголовков)
Ошибка от сервера (InternalError): ошибка при создании "test-resources.yaml": Произошла внутренняя ошибка: ошибка при вызове вебхука "webhook.cert-manager.io": не удалось вызвать вебхук: Пост "https://cert-manager-webhook.cert-manager.svc:443/validate?timeout=30s": истекло время ожидания контекста

kubectl exec -it my-nginx — curl -k https://cert-manager-webhook.cert-manager.svc:443

404 страница не найдена

похоже, что “404 страница не найдена” означает, что мы можем достучаться до cert-manager-webhook.cert-manager.svc:443

Ответ или решение

Ответ на проблему с ошибкой вебхука cert-manager

Ваша проблема с ошибкой InternalError: Internal error occurred: failed calling webhook "webhook.cert-manager.io" связана с тем, что Kubernetes не может установить соединение с вебхуком cert-manager. Это может происходить по нескольким причинам. Рассмотрим возможные решения этой проблемы.

1. Проверьте доступность сервиса вебхука

Сначала убедитесь, что сервис cert-manager-webhook работает корректно и доступен. Вы можете использовать команду для проверки, функционирует ли он:

kubectl get svc -n cert-manager

Вы должны увидеть что-то подобное:

NAME                     TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)    AGE
cert-manager-webhook    ClusterIP   xx.xx.xx.xx    <none>        443/TCP    30m

Если сервис не доступен, попробуйте перезапустить поды cert-manager для обновления конфигурации:

kubectl delete pod -n cert-manager --all

2. Проверка логов подов

Проверьте логи вебхука cert-manager, чтобы увидеть, есть ли какие-либо ошибки, влияющие на его работу:

kubectl logs -l app=cert-manager -n cert-manager
kubectl logs -l app=cert-manager-webhook -n cert-manager

Обратите внимание на любые ошибки, которые могут указывать на проблемы с конфигурацией или зависимостями.

3. Проверьте манифесты

Убедитесь, что манифесты cert-manager были правильно установлены. Иногда поврежденные или ошибочные манифесты могут вызывать такие проблемы. Чтобы исправить это, можно заново применить манифесты:

kubectl delete namespace cert-manager
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.15.3/cert-manager.yaml

4. Настройка сетевых политик и дополнений

Если вы используете сетевые политики или дополнения (например, Flannel), иногда они могут блокировать сетевой трафик. Проверьте, что нет ограничений на вэбхуки. Для этого временно отключите любые сетевые политики и посмотрите, устранит ли это проблему.

5. Проверка конфигурации кластера

Хотя вы правильно устанавливаете cert-manager, стоит проверить и другие компоненты кластера, чтобы убедиться, что они работают правильно. Убедитесь, что у вас корректно настроены RBAC (Role-Based Access Control) и другие политики безопасности, которые могут блокировать доступ к сервисам.

6. Убедитесь в корректности версии

Вы используете cert-manager версии 1.15.3. Убедитесь, что эта версия наиболее подходящая для вашего кластера Kubernetes (v1.31.1). Возможно, стоит попробовать использовать более новую версию cert-manager, если она доступна.

Заключение

Если ни одно из предложенных выше решений не устранит вашу проблему, возможно, стоит обратиться к документации cert-manager или форума поддержки, таких как GitHub или Slack-сообщество cert-manager, для получения дополнительной помощи и информации от других пользователей, столкнувшихся с аналогичными проблемами.

Оцените материал
Добавить комментарий

Капча загружается...