Nomadic
БД от этого не заработает и оно будет его килять до победного конца?
Maksim
БД от этого не заработает и оно будет его килять до победного конца?
Это readness probe и под будет исключен из endpoint для сервисов
Nomadic
но после того как pod становится ready эта проба больше не выполняется
Etki
я сейчас читаю доку, и, возможно, я наврал про однократность выполнения
Nomadic
ну я ради интереса прибил index.php в запущенном контейнере, начало отдавать 404, но состояние пода никак не изменилось
Maksim
Насколько мне известно они работают всегда
Maksim
readness с момента старта liveness с момент ready
Volodymyr
можно еще net.ipv4.ip_local_port_range увеличить. но может на keepalive переходить?
да keep-alive везде включен но php-fpm все равно генерит кучу и не делает reuse...
Etki
судя по всему, все-таки я был неправ, и readinessProbe выполняется постоянно, только если liveness проверяет, не закрашился ли под (и надо ли его пересоздать), то readiness проверяет, в рабочем ли режиме приложение (и надо ли слать на него трафик)
Anton
да keep-alive везде включен но php-fpm все равно генерит кучу и не делает reuse...
может с ним тогда в рамках пода только общаться через сокет файл? а наружу пускай смотрит тот, кто соединения держать умеет
Volodymyr
может с ним тогда в рамках пода только общаться через сокет файл? а наружу пускай смотрит тот, кто соединения держать умеет
я имею ввиду когда php-fpm делает новый curl, он игнорит Connection: Keep-alive и открвает новое соедининие... попробую щас apache+mod_php...
Anton
а, ой. я не знаю вот, он сможет такое вообще
Volodymyr
Etki
запросы можно не только курлом делать, как минимум там еще всякие stream_*-штуки есть
Etki
https://stackoverflow.com/a/982556/2908793 судя по всему, надо просто осторожней с ним обращаться, и он будет переиспользовать коннекты
Nomadic
нашел таки способ запускать чтото асинхронно с самим контейнером - postStart хендлер https://kubernetes.io/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/
Zon
Детали интеграции swarm и k8s
Михаил
Детали интеграции swarm и k8s
но зачем оно сделано так?
Zon
но зачем оно сделано так?
Я думаю, чтоб сварм дальше не пилить
Zon
Ноды менеджется свормом, поды - кубером
Zon
Но это не точно
Михаил
а нафига ноды свормом менеджить?
Sergey
зачем такой гомункул нужен?
Sergey
мне больеш думается, что сварм похоронят
Zon
Михаил
swarm хорошо когда у тебя одна нода
Sergey
или вообще, они пилят cri-containerd и тут интеграция с кубером, может в опенсторсе только и останется что контейнерд, ранс, либнетвокр
Zon
Пока они уверяют, что сворм рано хоронить
Maksim
Дык столько ресурсов спалили
Maksim
конечно рано
Volodymyr
запросы можно не только курлом делать, как минимум там еще всякие stream_*-штуки есть
А stream transport таки помог... Но еще остались TIME_WAIT от nginx ingress контролера родного... https://github.com/kubernetes/ingress-nginx/issues/986 из-за мапинга отсутсвующего Connection: хедера в Connection: close. Нужно поставить тот что от nginxinc, там все гуд судя по template: https://github.com/nginxinc/kubernetes-ingress/blob/master/nginx-controller/nginx/templates/nginx.ingress.tmpl#L62
Anton
nginx-ingress тоже на keepalive натсроить можно через конфигмап и аннотации
Anton
upstream-keepalive-connections у него есть опция
Anton
которую нужно в конфигмап посадить, тогда он сгенерит с keepalive подключения
Volodymyr
спасибо, щас гляну
Volodymyr
https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/configmap.md тут есть описание всего, немного кашей конечно upstream-keepalive-connections по умолчанию 0
в upstream модуль оно keepalive добавило, но все равно приходит Connection: close а тут https://www.nginx.com/blog/tuning-nginx/ сказано что бы Connection был все же пустой: To enable keepalive connections to upstream servers you must also include the following directives in the configuration: proxy_http_version 1.1; proxy_set_header Connection "";
Volodymyr
так что нужно таки пробовать от nginxinc
Anton
Я помню что проверял конфиг и все было норм, может ещё какую опцию нужно
Anton
в upstream модуль оно keepalive добавило, но все равно приходит Connection: close а тут https://www.nginx.com/blog/tuning-nginx/ сказано что бы Connection был все же пустой: To enable keepalive connections to upstream servers you must also include the following directives in the configuration: proxy_http_version 1.1; proxy_set_header Connection "";
https://github.com/kubernetes/ingress-nginx/blob/master/rootfs/etc/nginx/template/nginx.tmpl#L147 https://github.com/kubernetes/ingress-nginx/blob/master/rootfs/etc/nginx/template/nginx.tmpl#L753 {{/* Whenever nginx proxies a request without a "Connection" header, the "Connection" header is set to "close" */}} {{/* when making the target request. This means that you cannot simply use */}} {{/* "proxy_set_header Connection $http_connection" for WebSocket support because in this case, the */}} {{/* "Connection" header would be set to "" whenever the original request did not have a "Connection" header, */}} {{/* which would mean no "Connection" header would be in the target request. Since this would deviate from */}} {{/* normal nginx behavior we have to use this approach. */}} # Retain the default nginx handling of requests without a "Connection" header map $http_upgrade $connection_upgrade { default upgrade; '' close; } .... proxy_set_header Connection $connection_upgrade; тоесть если заголовка в запросе не было, то Connection: close прилетит к вашему сервису внутри.
Anton
по поводу kubeadm, кто нить разбирался как после установки кластера сделать HA мастер? вижу что изменения в манифесты вносить нужно чтобы etcd кластеризовать и адреса etcd указать в остальных компонентах. что еще?
Oleg
Почти на дефолтных настройках kubespray поднял кластер, с helm установил nginx-ingress, получил что контроллер не подымается из-за rbac или другой авторизации. Какие будут мнения?
Oleg
It seems the cluster it is running with Authorization enabled (like RBAC) and there is no permissions for the ingress controller.
Nomadic
я так поднимаю при включенном RBAC: $ helm install —namespace=kube-system —name lb stable/nginx-ingress —set controller.hostNetwork=true,controller.kind=DaemonSet
Anton
Есть Upgrade хедера нет: то Connection: close.
еще кстати такое есть: https://github.com/kubernetes/ingress-nginx/blob/master/rootfs/etc/nginx/template/nginx.tmpl#L770 # Custom headers to proxied server {{ range $k, $v := $all.ProxySetHeaders }} proxy_set_header {{ $k }} "{{ $v }}"; {{ end }} https://github.com/kubernetes/ingress-nginx/blob/9fc28366c289eef1c63bc52264b2aaec0be40f04/docs/user-guide/configmap.md#proxy-set-headers
Anton
чет вроде речь про rest api была =)))
Volodymyr
ну там и то и это.. забыл сказать
Oleg
kube-system eponymous-mandrill-nginx-ingress-controller-2sbwl 0/1 CrashLoopBackOff 5 4m
есть положительный опыт с kubespray+helm+nginx-ingress?
Oleg
до лога не добирается
Oleg
kubectl logs eponymous-mandrill-nginx-ingress-controller-2sbwl Error from server (NotFound): pods "eponymous-mandrill-nginx-ingress-controller-2sbwl" not found
Oleg
это у меня что-то глючит видать
Салтыдык
describe?
Oleg
да то же самое. что-то сломалось
Oleg
поставил с 0 кубер через kubespray. helm install stable/nginx-ingress —namespace kube-system —set controller.hostNetwork=true,controller.kind=DaemonSet kubectl get pods —all-namespaces NAMESPACE NAME READY STATUS RESTARTS AGE kube-system boiling-saola-nginx-ingress-controller-wrwvb 0/1 CrashLoopBackOff 4 2m kubectl logs boiling-saola-nginx-ingress-controller-wrwvb Error from server (NotFound): pods "boiling-saola-nginx-ingress-controller-wrwvb" not found
Роман
-n kube-system
Oleg
pods "boiling-saola-nginx-ingress-controller-wrwvb" not found в нэймспейсе default
спс! It seems the cluster it is running with Authorization enabled (like RBAC) and there is no permissions for the ingress controller. Please check the configuration
Anton
helm update давно делали?
Роман
Обязательно использовать helm? Я просто кубеспреем ставлю. Сегодня на тестовом стенде раз 15 с нуля поставил. Пробовал всякое. Нормально ставится, в том числе, версия 1.8.
Anton
ну и плюс https://github.com/kubernetes/charts/blob/master/stable/nginx-ingress/values.yaml#L202
Anton
--set rbac.create True
Роман
По-моему, просто kubespray и есть самый простой вариант. kubespray deploy - и поехали.
Anton
в шаблоны если зайти в которых rbac роли создаются и тд: {{- if .Values.rbac.create -}} а по умолчанию он выключен
Oleg
я думал helm самое популярное решение)
Maksim
Смотря для чего
Роман
На сколько я понимаю, это типа пакетного менеджера.
Maksim
ага