
Alexander
18.10.2017
12:18:49
The kubelet uses readiness probes to know when a Container is ready to start accepting traffic. A Pod is considered ready when all of its Containers are ready. One use of this signal is to control which Pods are used as backends for Services. When a Pod is not ready, it is removed from Service load balancers.
насколько понимаю готовность для того чтобы трафик на него пустить а живучесть для того чтобы принять решение что с ним делать если не отвечает

Nomadic
18.10.2017
12:24:17
это понятно, по доке не ясно проверяется ли готовность все время или достаточно одного удачного срабатывания?


Роман
18.10.2017
12:35:40
Я хочу, чтобы поды взаимодействовали по внутренней сети, через физический свитч, а не через интернет. В старой версии kubespray (где calico и flannel ставились отдельным докер-контейнером) я правил темплейт systemd-юнита плагина, где указывал IP сети, поверх которой будет работать плагин.
Теперь calico/flannel ставятся, как Daemonset. Внутреннюю сеть не указать...
Создал ишшью: https://github.com/kubernetes-incubator/kubespray/issues/1741
Но там сделали изменение в темплейте kubelet. Типа ему указать ip адрес. Но kubespray при деплое падает с ошибкой, что не может получить ответ от etcd. Как бы это и понятно - я же ему адрес внутренней сети указываю, у которой нет доступа в интернет...
Вот теперь я начинаю сомневаться: это я что-то не правильно делаю, или я хочу непонятного? Как мне пустить весь трафик через внутреннюю сеть и сделать доступными поды извне, где hostNetwork: true?

Google

Fike
18.10.2017
12:36:50

Nomadic
18.10.2017
12:37:59
ну а если приложение в процессе своей работы временно не может принимать трафик изза проблем с БД например?

Fike
18.10.2017
12:39:04
за это отвечает liveness probe, которая должна кильнуть под
но если это именно проблемы с БД, то приложение должно проходить liveness probe, потому что это не его проблемы

Nomadic
18.10.2017
12:39:33
БД от этого не заработает и оно будет его килять до победного конца?

Maksim
18.10.2017
12:39:40

Nomadic
18.10.2017
12:41:19
но после того как pod становится ready эта проба больше не выполняется

Fike
18.10.2017
12:41:57
я сейчас читаю доку, и, возможно, я наврал про однократность выполнения

Maksim
18.10.2017
12:42:01

Nomadic
18.10.2017
12:42:43
ну я ради интереса прибил index.php в запущенном контейнере, начало отдавать 404, но состояние пода никак не изменилось

Maksim
18.10.2017
12:42:55
Насколько мне известно они работают всегда
readness с момента старта liveness с момент ready

Google

vladget
18.10.2017
12:46:17

Fike
18.10.2017
12:46:41
судя по всему, все-таки я был неправ, и readinessProbe выполняется постоянно, только если liveness проверяет, не закрашился ли под (и надо ли его пересоздать), то readiness проверяет, в рабочем ли режиме приложение (и надо ли слать на него трафик)

Anton
18.10.2017
12:47:46

Alexander
18.10.2017
12:49:37

Maksim
18.10.2017
12:50:46

vladget
18.10.2017
12:51:14

Anton
18.10.2017
12:51:57
а, ой. я не знаю вот, он сможет такое вообще

Nomadic
18.10.2017
13:03:23

Fike
18.10.2017
13:05:22

vladget
18.10.2017
13:05:35

Fike
18.10.2017
13:06:09
запросы можно не только курлом делать, как минимум там еще всякие stream_*-штуки есть
https://stackoverflow.com/a/982556/2908793 судя по всему, надо просто осторожней с ним обращаться, и он будет переиспользовать коннекты

Nomadic
18.10.2017
13:10:24
нашел таки способ запускать чтото асинхронно с самим контейнером - postStart хендлер
https://kubernetes.io/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/

Zon
18.10.2017
13:55:16

Михаил
18.10.2017
14:05:00
но зачем оно сделано так?

Zon
18.10.2017
14:05:41
Ноды менеджется свормом, поды - кубером
Но это не точно

Михаил
18.10.2017
14:08:26
а нафига ноды свормом менеджить?

Сергей
18.10.2017
14:08:57
зачем такой гомункул нужен?

Google

Сергей
18.10.2017
14:09:10
мне больеш думается, что сварм похоронят

Zon
18.10.2017
14:09:42

Михаил
18.10.2017
14:09:44
swarm хорошо когда у тебя одна нода

Сергей
18.10.2017
14:09:56
или вообще, они пилят cri-containerd и тут интеграция с кубером, может в опенсторсе только и останется что контейнерд, ранс, либнетвокр

Zon
18.10.2017
14:14:46
Пока они уверяют, что сворм рано хоронить

Maksim
18.10.2017
14:16:18
Дык столько ресурсов спалили
конечно рано

vladget
18.10.2017
14:53:07
запросы можно не только курлом делать, как минимум там еще всякие 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
18.10.2017
15:00:09
nginx-ingress тоже на keepalive натсроить можно через конфигмап и аннотации
upstream-keepalive-connections у него есть опция
которую нужно в конфигмап посадить, тогда он сгенерит с keepalive подключения

vladget
18.10.2017
15:07:17
спасибо, щас гляну

Anton
18.10.2017
15:07:26

vladget
18.10.2017
16:02:17
так что нужно таки пробовать от nginxinc

Anton
18.10.2017
16:11:00
Я помню что проверял конфиг и все было норм, может ещё какую опцию нужно
по поводу kubeadm, кто нить разбирался как после установки кластера сделать HA мастер? вижу что изменения в манифесты вносить нужно чтобы etcd кластеризовать и адреса etcd указать в остальных компонентах. что еще?


Oleg
19.10.2017
07:13:24
Почти на дефолтных настройках kubespray поднял кластер, с helm установил nginx-ingress, получил что контроллер не подымается из-за rbac или другой авторизации. Какие будут мнения?
It seems the cluster it is running with Authorization enabled (like RBAC) and there is no permissions for the ingress controller.

Google

Nomadic
19.10.2017
07:20:36
я так поднимаю при включенном RBAC:
$ helm install —namespace=kube-system —name lb stable/nginx-ingress —set controller.hostNetwork=true,controller.kind=DaemonSet

vladget
19.10.2017
07:25:19


Anton
19.10.2017
08:35:56
Есть 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

vladget
19.10.2017
08:42:41

Anton
19.10.2017
08:47:51
чет вроде речь про rest api была =)))

vladget
19.10.2017
09:09:45
ну там и то и это.. забыл сказать

Oleg
19.10.2017
09:14:01

Nomadic
19.10.2017
09:15:27

Oleg
19.10.2017
09:15:40
до лога не добирается
kubectl logs eponymous-mandrill-nginx-ingress-controller-2sbwl
Error from server (NotFound): pods "eponymous-mandrill-nginx-ingress-controller-2sbwl" not found
это у меня что-то глючит видать

Айбелив
19.10.2017
09:30:08
describe?

Oleg
19.10.2017
09:32:08
да то же самое. что-то сломалось
поставил с 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

Роман
19.10.2017
11:28:18
-n kube-system

Oleg
19.10.2017
11:30:38

Anton
19.10.2017
11:32:06
helm update давно делали?

Google

Роман
19.10.2017
11:32:29
Обязательно использовать helm? Я просто кубеспреем ставлю. Сегодня на тестовом стенде раз 15 с нуля поставил. Пробовал всякое. Нормально ставится, в том числе, версия 1.8.

Anton
19.10.2017
11:32:49
ну и плюс
https://github.com/kubernetes/charts/blob/master/stable/nginx-ingress/values.yaml#L202
--set rbac.create True

Oleg
19.10.2017
11:33:48

Роман
19.10.2017
11:34:27
По-моему, просто kubespray и есть самый простой вариант. kubespray deploy - и поехали.

Anton
19.10.2017
11:34:49
в шаблоны если зайти в которых rbac роли создаются и тд:
{{- if .Values.rbac.create -}}
а по умолчанию он выключен

Oleg
19.10.2017
11:35:16
я думал helm самое популярное решение)

Maksim
19.10.2017
11:35:25
Смотря для чего

Роман
19.10.2017
11:35:47
На сколько я понимаю, это типа пакетного менеджера.

Maksim
19.10.2017
11:35:53
ага
он Типо умеет поднимать несколько подов сразу
и сервисы к ним

Oleg
19.10.2017
11:36:54
ну в идеале чтобы коробки типовые типа owncloud в одно касание подымать

Maksim
19.10.2017
11:39:01
нету

Роман
19.10.2017
11:39:07

Oleg
19.10.2017
11:39:30

Maksim
19.10.2017
11:40:14
ну разница api
в пакету устаревшая)