Коллеги, а ни у кого не было проблем с admission

webhook-ами в managed Kubernetes?

Разворачиваю новый кластер через terraform, до этого (последний где-то в ноябре-декабре 2021) уже разворачивал по тем же манифестам пару штук, все работало.

А сейчас сначала падало на "установке" ACME issuer-а через cert-manager (Internal error occurred: failed calling webhook "webhook.cert-manager.io": Post "https://cert-mgr-cert-manager-webhook.gb-prod-balancer-cert-mgr.svc:443/mutate?timeout=10s": read tcp 198.18.0.59:44706->10.50.0.173:10250: read: connection reset by peer), погуглил, оказалось, что это у API-сервера (т.е. мастер-нод) нет доступа к webhook-сервису cert-manager-a...
Конкретно эту ошибку "обошел", включив hostNetwork для подов webhook (еще пробовал поды на мастеры "засунуть", но т.к. не знаю, какие там taint-ы и label-ы, то не получилось узнать - сработало бы или нет).

Теперь столкнулся с почти той же ошибкой (failed calling webhook "validate.nginx.ingress.kubernetes.io": Post "https://ingress-nginx-infra-controller-admission.gb-prod-balancer-infra.svc:443/networking/v1/ingresses?timeout=10s": context deadline exceeded), только уже у nginx-ingress 😞 Пытаюсь и его в hostNetwork перевести... но вдруг кто-то уже сталкивался и знает, как решить 😊
Может каких-то правил не хватает в группе безопасности кубера. Группы настроил по этой инструкции

17 ответов

30 просмотров

kube-apiserver находится в НЕ кластера. Соотвесвтенно он должен иметь возможность обращаться в под ingress-controller'а для хука валидации. Вам нужно разрешить из подсети для мастеров разрешить ходить в подсети ворклоада куба. Тоже самое в network policy куба (если они есть)

Dmitry Sergeev 🇺🇦
kube-apiserver находится в НЕ кластера. Соотвесвте...

например у меня мастера работают в подсетях 10.128.0.0/24, 10.129.0.0/24, 10.130.0.0/24 соотвественно у меня в netpol куба для ingress-controller есть политика разрешающая ходить в под ingress-controller'а из этиъ подсетей - ipBlock: cidr: 10.128.0.0/24 - ipBlock: cidr: 10.129.0.0/24 - ipBlock: cidr: 10.130.0.0/24

Ivan-😸 Автор вопроса
Dmitry Sergeev 🇺🇦
kube-apiserver находится в НЕ кластера. Соотвесвте...

кажется, я нашел нужную подсеть мастеров... 198.18.0.0/24 даже metrics-server, который по дефолту в кубе разворачивается (т.е. со стороны Яндекса), "не общается" с мастерами, видимо... а про сеть 198.18.0.0/24 в документации нет ничего 😞

Ivan 😸
screenshot кажется, я нашел нужную подсеть мастеров... 198.18...

А у вас не Cilium случаем? Похоже на его внутренние адреса.

механика вебхука у куба такая Ты аплаешь какой-то объект (например kubectl apply -f yamlFile) Если для такого объекта есть вебхук, (mutatingwebhookconfigurations, validatingwebhookconfigurations) То kube-apiserver должен пойти в сервис указанный в mutatingwebhookconfigurations/validatingwebhookconfigurations) в зависимости от того какой это тип вебхука, будут выполнены некоторые вещи kube-apiserver'ом. Но важно то, что kube-apiserver должен нормально дотучаться до сервиса, по TLS (то есть сертифкаты тоже должгы быть в норме)

Ivan 😸
screenshot кажется, я нашел нужную подсеть мастеров... 198.18...

в доку принимаются PR. Милости прошу. Мне вот лень было это сделать, а вообще о таком полезко написать. Согласен Вот если бы я в свое время написал, вы бы это нашли в доках

Ivan-😸 Автор вопроса
Dmitry Sergeev 🇺🇦
в доку принимаются PR. Милости прошу. Мне вот лень...

это да, я добавлю решение, когда "доковыряю" проблему 😊

Ivan 😸
screenshot кажется, я нашел нужную подсеть мастеров... 198.18...

подсети мастеров указываются при их настройке бутстрапе. Там можно выбрать VPC нужную вам

Ivan 😸
screenshot кажется, я нашел нужную подсеть мастеров... 198.18...

Вообще странно что вы юзаете подсеть 198.18.0.0/24 По RFC эта подсеть - Used for benchmark testing of inter-network communications between two separate subnets То есть для обычных нужд это лучше не юзать. Есть же 10.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, как раз для целей локальной коммуникации

Sergey Klyaus
А у вас не Cilium случаем? Похоже на его внутренни...

подсети cilium'у настраиваешь сам. Или в яндексе такие дефолты? Я cilium в managed кластере не пробовал. Но очень странный дефолт

Ivan-😸 Автор вопроса
Dmitry Sergeev 🇺🇦
подсети мастеров указываются при их настройке бутс...

хм... это где именно? я указываю только CIDRы для pod-ов и сервисов... ну и назначаю подсети для кластера примерно так: master { dynamic "regional" { for_each = var.k8s_region != "" ? [var.k8s_region] : [] content { region = regional.value dynamic "location" { for_each = var.k8s_master_subnets content { zone = location.value.zone subnet_id = location.value.id } } } } network_implementation { cilium {} } cluster_ipv4_range = var.k8s_cluster_ipv4_range service_ipv4_range = var.k8s_service_ipv4_range node_ipv4_cidr_mask_size = var.k8s_node_ipv4_cidr_mask_size

Ivan 😸
хм... это где именно? я указываю только CIDRы для ...

видимо какие-то особенности настройки cilium'а в managed кубе яндекса. Понял. Извините

Ivan-😸 Автор вопроса
Dmitry Sergeev 🇺🇦
Вообще странно что вы юзаете подсеть 198.18.0.0/24...

эту сеть не я указываю... я вообще сам не в курсе, откуда она 🤷‍♂️ у меня для подов и сервисов "дефолтные" 10.112.0.0 и 10.96.0.0

Ivan 😸
эту сеть не я указываю... я вообще сам не в курсе,...

вы же знаете что cilium в яндексе overlay использует? Тобишь geneve/vxlan? То есть в яндексе получается cilium overlay поверх overlay сети яндекса У них почему-то в managed кубе нельзя cilium с native routing поднять

Dmitry Sergeev 🇺🇦
вы же знаете что cilium в яндексе overlay использу...

это есть в планах, но не все сразу) туннельный цилиум был сделан первым потому что он позволяет обойти ограничение на макс. число подов в кластере которое мы получаем от макс. размера подсетей в облачном vpc (/16)

Похожие вопросы

Обсуждают сегодня

Подскажите, а есть vault lite или ченить такое?) А то нужен вольт для похода в вольт, но весит он ~500 мб) как-то многовато для парочки запросов ))
Alexandr Orloff
17
Всем привет, есть небольшая проблема Есть такой скрипт document.addEventListener('DOMContentLoaded', function () { const sliderTabs = document.querySelectorAll('.s...
A da
8
@go1337 @dblackCat Привет. Все ещё дрочусь с fastpanel. Добавил второй домен который должен смотреть в рут того же сайта, но так как это просто домен, а не сайт, я не могу ему...
Ross 🦴
9
До речі, в ево нема можливості чи якого розширення щоб з адмінки з телефона зайти і терміново щось в верстці поправити?
Женя
7
кто-нибудь пользуется тайм-трекерами во время работы? так много разных нагуглил, может есть что-то популярное
Lencore
8
Пацаны. Я разрабатываю софт для инвайтинга на телетон, и столкнулся с такой проблемой, в один из чатов не могу приглашать никого, не дает добавлять, в то же время через официа...
Kernel Panic
11
Скажите, а кому нужен Currency как отдельный плагин вместо полноценного ecommerce в OctoberCMS? Кто-то использует его уже или планирует в будущем? Может я что-то не понимаю?
Igor
13
Розмовами про Рево мені нагадали часи, коли шаблони правилися прямо в адмінці. Хто в курсі, чому відійшли від цієї практики, так блейд не працює? Доволі зручно ж було (інколи)
Женя
3
Всем добрый вечер, Рад оказаться в кругу единомышленников. Начинаю погружаться в мир .net веба. Зовут Ерасыл 🖖 У меня назрел вопрос: Какой процент проектов, прошедшие через в...
Ерасыл
6
Чому? Да тому що без GiT не уявляю нормального проекта а коли код в базі то то так собі
Dmytro Lukianenko
3
Карта сайта