@kubernetes_ru

Страница 260 из 958
Let Eat
04.09.2017
14:27:15
просто без s6-overlay нескольок процессов в одном контейнере запустить корректно вряд ли получится

или какого-нибудь supervisord

Алексей
04.09.2017
14:27:50
ну вообще есть consul-template и его exec mode

но не хочется стек хашикорпа тащить в кубер

Google
Алексей
04.09.2017
14:28:11
хочу понять бестпрактис

Let Eat
04.09.2017
14:28:38
Алексей
04.09.2017
14:28:53
ну я под темплейтом запускал nginx

довольно тривиально получатеся

ща

https://gist.github.com/freeseacher/47feebc4cd07e3edbfdb4b050901c3f4

Роман
04.09.2017
14:33:39
maxUnavailable считается по количеству ready
А ещё вопросик: readinessProbe через каждые 10 секунд - после того, как под в состоянии ready, проверка тоже будет продолжаться? Это даёт хоть какую-нибудь нагрузку?

Let Eat
04.09.2017
14:34:35
проверка будет продолжаться

Denis
04.09.2017
14:35:23
нет же

дальше livenessProbe включается

Maksim
04.09.2017
14:38:24
нет же
А вот хз в доке не слова, о том кончается ли она, когда контейнер становится Ready

Denis
04.09.2017
14:39:58
можно в сорсах посмотреть

Let Eat
04.09.2017
14:44:25
нет же
проверки идут паралельно всегда

Google
Denis
04.09.2017
14:46:22
So, unlike liveness probes, if a container fails the readiness check, it will not be killed or restarted. This is an important distinction between liveness and readiness probes. Liveness probes keep pods healthy by killing off unhealthy containers and replacing them with new, healthy ones, whereas readiness probes simply make sure that only pods that are ready to serve requests actually receive them. This is mostly necessary during container start up, but it is also very useful later - after the container has been running for a while.

If a pod reports that it’s not ready, it is removed from the service. If the pod then becomes ready again, it is re-added.

Dmitry
04.09.2017
15:06:09
кто пользовался taint? Стоит задача деплоить только на одну ноду определенный депйломент, и запрещать туда ехать другим. Я сейчас делаю dedicated=mynamespace:NoScheldue на ноду, потом на эту ноду вешаю mylabel=true, потом делаю в дейпломенте nodeselector mylabel=true и деплою в нейсмпейс mynamespace. После приезда оно пишет No nodes are available that match all of the following predicates:: MatchNodeSelector (7), PodToleratesNodeTaints (4).

Let Eat
04.09.2017
15:07:00
надо taints tolerations прописать в под

Dmitry
04.09.2017
15:11:41
в деплойменте, именно в раздел containers ?

Let Eat
04.09.2017
15:17:25
это часть PodSpec ,т.е на одном уровне с описанием контейнеров

tolerations: - operator: Exists effect: NoSchedule - operator: Exists effect: NoExecute - operator: Exists key: CriticalAddonsOnly

https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/

Dmitry
04.09.2017
15:18:26
- key: "mynamespace" operator: "Equal" value: "true" effect: "NoSchedule" на поде

так?

Let Eat
04.09.2017
15:20:21
key: dedicated operator: Equal value: mynamespace effect: NoSchedule

Vadim
04.09.2017
15:24:34
а какой докер ставить для k8s 1.12 или 17+ ?

Fike
04.09.2017
15:25:30
думаю, 17+, 1.12 древняя версия

Dmitry
04.09.2017
15:26:29
Vadim
04.09.2017
15:29:18
Let Eat
04.09.2017
17:30:08
а какой докер ставить для k8s 1.12 или 17+ ?
куб официально поддерживает 1.12 только

все остальное - хороший способ повеселиться

и продлить рабочую неделю на выходные при особом везении

Igor
05.09.2017
02:56:52
Скорей бы уже CRI-O стабильный

Google
Gleb
05.09.2017
08:27:08
А кто сказал что там что то не стабильно?

Let Eat
05.09.2017
08:34:28
А кто сказал что там что то не стабильно?
у вас работает? стоит пробовать?

Vadim
05.09.2017
09:40:17
Подскажите плиз куда смотреть, установил дефолтный k8s через kubeadm на 3 ноды + canal network плагин. И deis, задеплоил приложение , но у приложения нет доступа наружу, оно коннектится к БД на других серверах и получает connection refused, tcpdump’ом я не вижу трафика с k8s на БД. Подозреваю что-то с роутингом , но даже не знаю как проверить. deis run -a counter ping 8.8.8.8 ping: Lacking privilege for raw socket. deis run -a counter -- ip route Running 'ip route'... default via 169.254.1.1 dev eth0 169.254.1.1 dev eth0 scope link

kubectl --namespace=deis get service deis-router NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE deis-router 10.100.207.13 <pending> 80:30305/TCP,443:30109/TCP,2222:31469/TCP,9090:30635/TCP 12h похоже надо как-то на deis-router навесить ip внешний

Maksim
05.09.2017
10:42:34
не надо

он тебе днать порты

30109 в 443

31469 в 2222

30635 в 9090

30305 в 80

Running 'ip route'... default via 169.254.1.1 dev eth0 169.254.1.1 dev eth0 scope link А вот это говорит об отсутвии dhcp и вменяемой сети

Vadim
05.09.2017
10:47:38
хм поищу, спасибо

Andrey
05.09.2017
11:07:58
оффтоп: заметил что когда я хочу запустить новый сервис в кубер, я дебажу так: docker => docker compose => kubectl yaml => helm templates

то есть вопрос дебага вообще не раскрыт в хелм )

Fike
05.09.2017
11:46:34
А должен?
Да, каждый инструмент в идеале должен представлять средства для верификации результата

Конкретно helm мог бы запускать миникуб, разворачивать конкретные конфигурации и верифицировать инварианты каким-нибудь инспеком. Может, test-kitchen когда-нибудь до этого допилят.

No1
05.09.2017
11:52:47
https://yipee.io/

Google
No1
05.09.2017
11:52:52
пробовал кто нибудь?

Paul
05.09.2017
11:54:53
за деньги? ну нет, спасибо

по-моему руками проще

Andrey
05.09.2017
12:53:58
оффтоп: в версиях кластера младше текущей стейтфулсет создает новый под после того как создался предыдущий как он решает что предыдущий создался - когда рединес проходит, или по другим критериям?

Ivan
05.09.2017
13:05:04
Всем привет! Помогите пожалуйста разобраться, почему у меня не поднимается kube-apiserver Pod Делаю по этому мануалу: https://coreos.com/kubernetes/docs/latest/deploy-master.html#set-up-the-kube-apiserver-pod после systemctl start kubelet система начинает грузиться по процу и в течение минут 3-5 полносью зависает. при этом в логах вот это: https://gist.github.com/anonymous/fa72b7d156ca4e6a6d0171a5d2aeebf8 а в netstat -tpln это: https://gist.github.com/anonymous/7b6634ae4a70d4a08eb0fa0051805702

я убрал всё из /etc/kubernetes/manifests/ и оставил там только kube-apiserver.yaml

я так понимаю, он не поднимает описанные в конфиге порты (8080 и 443) но при этом сам пытается на них ломиться

Admin
ERROR: S client not available

Ivan
05.09.2017
13:44:10
Лог справа обрезан? Там причина должна быть.
да, он не помещается целиком - там очень длинная строчка. нет, причины там нет - одно и тоже повторяется несколько раз - Get http://127.0.0.1:8080 и в конце - connection refused

Ivan
05.09.2017
13:45:00
но это и так понятно, что оно будет refused - порт-то не замапился

Роман
05.09.2017
13:45:01
Подскажите по графане/прометею. Хочу выполнить такой запрос: node_load1{kubernetes_node="$nodename"} / count by(job, instance)(count by(job, instance, cpu)(node_cpu{kubernetes_node="$nodename"})) По отдельности (до знака "/" и после него) - запросы возвращают значения. Строка целиком - нет. Как одно разделить на другое?

Andrey
05.09.2017
13:45:50
сори что врываюсь в обсуждение другого вопроса... просто опубликую свой вопрос а потом вдруг кто прочтет и ответит :) надеюсь не помешаю: короче, есть база из трех инстансов: один из них мастер в который надо писать, два слейва 1) все это запускается через стейтфулсеты 2) мне нужен сервис который будет роутить на актуальный мастер я придумал только сделать рединесс-проверки на каждом поде и тот который мастер будет ее выполнять - тогда будет отдельный сервис обращения к которому всегда будут посылать на текущий актуальный мастер проблема в том что рединесс так же используется для запуска подов... то есть следующий под в стейтфулсете не запустится пока предыдущий не скажет что он готов какой может быть воркараунд?

Ivan
05.09.2017
13:45:58
Paul
05.09.2017
13:46:34
тут либо пусть дрова определяют (так делает монго) либо хапрокси и аналоги

если у тебя монго – то определять активного мастера и конфиг должны драйвера!

Google
Andrey
05.09.2017
13:52:14
они могут выбраться между собой

Paul
05.09.2017
13:53:56
а зачем тебе держать мастер и не мастер в одном set если они такие разные
а как иначе? Общий сет – мастером станет кто-то один

Alisa
05.09.2017
14:03:27
мб наивный вопрос, но как смысл скейлить поды с node.js беком в рамках одной ноды?

Aleksandra
05.09.2017
14:06:04
они могут выбраться между собой
мастер выбирающийся изнутри - это какой-то в целом плохой сценарий. В принципе можно хуком каким-нибудь label менять у пода, а сервис вешать на эту метку

Andrey
05.09.2017
14:09:10
neo4j весь такой

Aleksandra
05.09.2017
14:22:35
насколько я понимаю по уму в statefulset у тебя мастер всегда - номер0, а дальше сколько угодно реплик. А в твоем случае если всё равно динамический сервис, то тебе от statefulset какой бонус? Может тебе обычный set и сервис на probes тогда будет ок ?

Fike
05.09.2017
14:24:25
мастер выбирающийся изнутри - это какой-то в целом плохой сценарий. В принципе можно хуком каким-нибудь label менять у пода, а сервис вешать на эту метку
Это классический сценарий. Если мастер по каким-то причинам недоступен, кто-то должен встать на его место, чтобы продолжить работу. даже если построить над этим специальный решающий механизм, этот механизм должен ровно так же состоять из нескольких master-eligible узлов (иначе выход из сети этого механизма уронит вообще всё), и всё попадает в ту же западню

Fike
05.09.2017
14:27:16
да не сказал бы, куб только поддерживает сервисы в поднятом состоянии, с разрывом сети он ничего не сделает

Andrey
05.09.2017
14:31:09
Ну с стейтфулсеты использую в основном для уверенности что их убьют последними при дележе ресурсов)

Andrey
05.09.2017
14:31:49
Ну и мелкие удобства типа фиксированной днс

Let Eat
05.09.2017
14:31:57
burstable, best effort, guaranteeed

Aleksandra
05.09.2017
14:34:35
Ну и мелкие удобства типа фиксированной днс
так тебе как раз фиксированный dns получается не нужен, потому что надо к динамическому мастеру подключаться, значит к сервису

Andrey
05.09.2017
14:36:09
Среди всех Best effort их последними кильнут а на guaranteed у меня кластера не хватает)

Фиксированный днс как раз для драйвера а мастер нужен экспозить хттп

В общем спасибо за идеи, поковыряю

Let Eat
05.09.2017
14:38:09
Среди всех Best effort их последними кильнут а на guaranteed у меня кластера не хватает)
ну я к тому что, по-моему statefulset не влияет на то, кого прибьют первым

Andrey
05.09.2017
14:38:55
А хз я был уверен что да, почитаю

https://github.com/kubernetes/kubernetes/blob/master/pkg/controller/endpoint/endpoints_controller.go#L56

это работает щас?

Страница 260 из 958