Andor
пфф
Huan
привет всем. подскажите где хранится конфиг nginx-ingress со конфигами всех ингресс правил?
Artyom
в инресс контроллере
Artyom
ищи под с именем nginx-ingress-controller, заходи в него kubectl exec -it <pod> /bin/bash
Artyom
И там ищи
Huan
спасибо. вижу, но там нет настроек, которые передаются в аннотации
Huan
хотя все что в аннотации было применено для одного правила - работает
Artyom
может аннотацию не так указал и он не понял, как её применять
Huan
так она применилась
Artyom
там надо писать явно, что аннотация для nginx ingress
Artyom
а, ну так если применилась, то в чем вопрос
Huan
nginx.ingress.kubernetes.io/client-body-buffer-size: 4m
Huan
а в файле - 1м
Huan
вопрос в том, где это смотреть в конфиге nginx?
Artyom
https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/annotations.md
Artyom
тут говорится, что nginx.ingress.kubernetes.io/client-body-buffer-size - это строка
Artyom
может её в кавычки надо?
Huan
указывал в кавычках
Artyom
хм
Huan
annotations:
nginx.ingress.kubernetes.io/client-max-body-size: "4m"
nginx.ingress.kubernetes.io/proxy-buffer-size: "16k"
Artyom
https://github.com/nginxinc/kubernetes-ingress/issues/246
Artyom
Вот, тут говорится, что не такая аннотация должна быть, может твой случай
Huan
а в конфиге на контроллере - client_max_body_size "1m";
Artyom
» make sure you're using the correct image. nginxdemos/nginx-ingress:1.1.1 is the image of this Ingress controller.
Huan
"image": "quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.10.2",
Artyom
И вот оттуда же ссылка
https://github.com/nginxinc/kubernetes-ingress/tree/master/examples/customization
Тут вообще аннотация nginx.org/client-max-body-size
Artyom
попробуй nginx.org/client-max-body-size
Huan
пробовал - так вообще не работает
Andor
вы не путайте nginx и nginxinc контроллеры
Artyom
Тогда не знаю, может конфиг не перепнулся и там старое значение осталось
Artyom
Хотя странно, должен перепнуться
Huan
но при этом правило работает
Valerii
Всем привет. Коллеги, а как на GKE правильно выставить наружу сервис через ingress, если сервис отвечает 301 на 80 порту (переадресовывает на 443). У меня из-за этого healthcheck фейлится и этот backend наружу не выставляется, соответственно
Valerii
На AWS можно было указать на LB какой код значит ок, т.е. например 200-399..
Valerii
и когда там healthcheck фейлился на все ноды, то трафик продолжали пускать на всё, а тут тупо закрывают
Stas
Я бы наверное решал эту проблему через nginx-ingress перед которым обычный forwarding rule
Stas
ой я чет туплю кажись, можно же тот хелсчек удалить и натравить https healthcheck, не?
Dmytro
Dmytro
Dmytro
Dmytro
Dmytro
Dmytro
Dmytro
Dmytro
Sergei
Stas
Stas
Dmytro
Dmytro
значит не перегенерило конфиг
Dmytro
нужно глянуть логи этого контейнера - возможно ругается на аннотацию
Dmytro
там по умолчанию уровень логов может стоять низкий - надо его поднять
Huan
так прикол в том, что применилось все что было в аннотации
Dmytro
этого контейнера=ингресс контроллера
Dmytro
а сколько подов ингресс контроллера?
Dmytro
может в одном перегенерило конфиг а вдругом нет
Dmytro
в любом случае первым делом стоит попробовать удалить под нжинкс контроллера чтобы он пересоздался и с нуля сгенерил конфиг
Dmytro
(или поды если их много)
Huan
один
Stas
Huan
завтра попробую удалить
Dmytro
👍 хорошо когда приложение умное и понимает когда репликасет и что надо делать в этом случае
Dmytro
мне вот пришлось костылить
Valerii
угу вместо http https healthcheck а про то чего в гцп нет это отдельная история например там нет нат
Нашел вот такое решение, похоже на то, что надо:
GCE’s Ingress controller does not support redirect rules, but the documentation includes a solution. The backend Service must inspect the x-forwarded-proto header and redirect if the value is equal to http.
if ($http_x_forwarded_proto = "http") {
return 301 https://$host$request_uri;
}
The check MUST be for http. Although theoretically equivalent, if the check is written as if($http_x_forwarded != 'https') Google Cloud Load Balancer’s automated health checks will end up getting a 301 redirect and the backend will be considered unhealthy.
roquie
привет! никто не знает, почему конфиг-мап из файла монтируется папкой в под? другой json файл рядом, импортированный точно так-же и точно так-же подключенный в контенере как файл лежит. Что за магия?
roquie
тот-же самый файл, другой путь и примонтировало правильно....
Костя
хмм если вольюм примаунтить в инит контейнер тоже то он же не запустится пока вольюм не создался
Если посмотреть get event --watch во время создания, то порядок создания ресурсов такой:
1. pvc provision
2. attach succeed
(Mount)
3. Init container image, pull/start
4. container image pull/start
Конкретно в моем случае используется dynamic provision с Vsphere, k8s 1.9.5. Между вторым и третьим шагом вечный баг, первый mount всегда отваливается по timeout и дает FailedMount, но k8s считает это как warning. Видимо mount начинается, до того, как диск успеет замаунтиться к ноде. Как регулировать время этого timeout'a я не нашел. Баги на github открытые есть, т.к. со второй попытки все срабатывает, пока решил забить. Работает
Andor
> Люблю чекать так же, как внешний клиент
это называется "тесты"
> а не синтетические специальные healthcheck урлы, которые могут быть живыми, а приложение нет.
а эта проблема не связана с ингрессом и вообще с кубернетисом
Костя
Коллеги, вопрос по helm. Почему при helm upgrade он тушит все поды разом, не смотря на то, что новые ещё не поднялись? Может я что то не понимаю? Даже kubectl set image работает, убивая только часть подов, ждёт пока поднимается новый pod, а только потом тушит и обновляет оставшиеся
Grigorii 🏖️
❓Всем привет, не подскажите как конфигурации использовать для разных сред, чтоб конфиг при деплое для нужной среды подставлялся в проекте❓
Nikolay