
Alexander
12.07.2018
09:24:23
кронжоб

kyxap
12.07.2018
09:25:29
свечку не поставил

Alexander
12.07.2018
09:26:29

Andrey
12.07.2018
09:26:42
Жалкие попытки юмора это.

Google

Andrey
12.07.2018
09:27:02
В логах controller-manager есть что-то в это время? Время учёл, что может быть по UTC в контейнере?

Alexander
12.07.2018
09:27:41
дане, всё ок MSK время рельное

Alexey
12.07.2018
09:28:32
поставь тестовый job через минуту от текущего времени. Работает?

Alexander
12.07.2018
09:28:44
* \1 * * *
работает
30 12 * * *
12:30 каждый день, я правильно понимаю?

Andrey
12.07.2018
09:33:36
Правильно.
Логи будешь смотреть или продолжим гадание?

Alexander
12.07.2018
09:33:55
Ну хз, подожду до завтра :)

M
12.07.2018
09:41:08
ребята а кто как логи собирает в кубере в elastic fluentd , filebeat или еще как то?

Valentin
12.07.2018
09:41:48
опять опрос....

Google

Alexander
12.07.2018
09:44:04
там про крон не слова

Andrey
12.07.2018
09:48:14
controller-manager их запускает.

kvaps
12.07.2018
09:48:17


Vova
12.07.2018
09:49:47
---
Всем привет.
Есть задача запрофайлить jvisualvm'ом микросервис который бежит внутри К8с кластера.
Что уже попробовал?
1) Добавил проперти для jmx и rmi (а-ля "com.sun.management.jmxremote" и иже с ними), вместе с "jmxremote" и "jmxremote.rmi" портами в Dockerfile, пробросил их через EXPOSE
2) В K8s yaml добавил этот порт в описание деплоймента
3) Через "kubectl port-forward" пробрасываю локальный порт на jmx порт с деплоймента
4) Пытаюсь подключится jvisualvm через Connecton -> Add JMX Connecton и получаю ошибку
"Cannot connect to localhost:9010 using service:jmx:rmi:///jndi/rmi://localhost:9010/jmxrmi"
Грешу что пропертя "java.rmi.server.hostname=localhost" не подходит для кластера.
Кто-то решал подобную задачу? Что можете посоветовать?
Спасибо
---

M
12.07.2018
09:49:56

kvaps
12.07.2018
09:58:01
напрямую без логсташа
докер и так в json все пишет

M
12.07.2018
09:59:18

kvaps
12.07.2018
10:04:26
ну смотри, вот мой конфиг
https://gist.github.com/kvaps/aeab50b5654752a8c1444a6c5503a120
а, или ты про json в логах самого приложения?

M
12.07.2018
10:06:58
вот у тебя type docker а у меня стоит type: log

kvaps
12.07.2018
10:07:15
если так, то можно sidecar контейнер с logstash который будет логи приложения парсить и передавить в эластик.
для приложений который просто в stdout пишу, этого вполне достаточно

M
12.07.2018
10:09:27
ну я и поставил logstash но там фильтр получается ругается так как не все ведь контейнеры пишут в json , например есть тот же redis он не пишет в json и парсинг logstahs ругается

Sergey
12.07.2018
10:30:11
Господа, а пробовал ли кто-нибудь oklog?

Andrey
12.07.2018
10:34:31
вопрос. А можно ли configmap использовать в spec для deployment?
как часть спека

kvaps
12.07.2018
10:43:07

Google

Psy
12.07.2018
10:43:44
Почему Persistent Volume может не удаляться?

kvaps
12.07.2018
10:44:21

Psy
12.07.2018
10:44:29
удалён

kvaps
12.07.2018
10:44:57
а что за сторадж?

Psy
12.07.2018
10:45:33
там цеф поцеплен

kvaps
12.07.2018
10:45:53
не удаляется потому что finalizers в манифесте не дает, по идее провижионер должен снести волум в цефе затем удалить pv

Psy
12.07.2018
10:46:36
ага, понял.

kvaps
12.07.2018
10:46:40
смотри логи провижионера, или попробуй удалить вручную, удалив волум в цефе, затем поле finalizers в манифесте

Psy
12.07.2018
10:52:21
а, всё, снеслось.

Aleksandr
12.07.2018
12:19:32
Возможно у кого-то было что-то подобное. Поставил калико, у сервиса есть два endpoints скажем 10.0.1.234 и 10.0.11.32, но в правилах iptables только одна запись для DNAT добавляется tcp to:10.0.1.234:80

Vadim
12.07.2018
12:33:42
https://banzaicloud.com/blog/mysql-on-kubernetes/

Nata
12.07.2018
12:43:11
Привет. скажите, может кто сталкивался: появляется на 2-3 минуты Node kube-test-03 status is now: NodeHasDiskPressure failed to garbage collect required amount of images. Wanted to free 4925275340 bytes, but freed 0 bytes Но на сервере при этом ~70g на разделе (всего 100, раздел один, корневой). Что может давать такую ошибку, кроме отсутствия места?

Artem
12.07.2018
12:44:09
иноды ?
df -i
посмотри

Nata
12.07.2018
12:44:58
смотрела, нормально
ну всмысле около 95% свободно
и буквально через 2-3 минуты он находит внезапно место, и перезапускает под.

Andrey
12.07.2018
12:48:05
--eviction-minimum-reclaim опция влияет явно на то, что ты видишь в логах. Подкрутить надо.
Или её друзья из eviction* опций.

Google

Nata
12.07.2018
12:49:52
/usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --pod-manifest-path=/etc/kubernetes/manifests --allow-privileged=true --network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin --cluster-dns=10.96.0.10 --cluster-domain=cluster.local --authorization-mode=Webhook --client-ca-file=/etc/kubernetes/pki/ca.crt --cadvisor-port=0 --rotate-certificates=true --cert-dir=/var/lib/kubelet/pki --feature-gates=ReadOnlyAPIDataVolumes=false
такой опции нету
щас почитаю

Andrey
12.07.2018
12:50:44
щас почитаю
https://kubernetes.io/docs/tasks/administer-cluster/out-of-resource/
Вот это читать очень внимательно.

Nata
12.07.2018
12:51:09
thanks

Slava
12.07.2018
12:53:28
подскажите кто-нибудь как можно организовать pv+pvc для работы с хранилищем подам с двух нод (один из них мастер) не используя при этом внешние API (e.g. aws, azure) ?
ткните носом в доку, если такая есть)
куб развёрнут на виртуалках kvm

Admin
ERROR: S client not available

Juriy
12.07.2018
13:04:01

Slava
12.07.2018
13:07:38
да, то что нужно
спасибо!

Andrey
12.07.2018
13:08:16
Ох, в какую яму ты сейчас спустишься...

Slava
12.07.2018
13:08:24
верю)

Andrey
12.07.2018
13:09:15
Мы активно его используем, но дышать глубже можно, когда AWS EBS под рукой.

Slava
12.07.2018
13:09:27
принято

Andrey
12.07.2018
13:47:12
посоветуйте способ делать инициализацию приложения в deployment. init containers не совсем вписываются, по многим причинам
1) они выполняются при создании пода, а мне надо при создании/обновлении deployment
2) они выполняются при создании каждого пода, а мне надо только один раз
3) они могут начать выполняться в параллель
4) инит контейнер из одного пода может работать тогда, когда началось выполнение приложения в другом поде
если 1 и 2 ещё терпимо, то 3 и 4 могут привести к неприятным последствиям

Alexey
12.07.2018
13:48:54

Andrey
12.07.2018
13:49:02
типа того

Google

Alexey
12.07.2018
13:49:05
Это cd делает обычно
$ run migrations
$ kubectl apply
К разрабам требование - миграции не должны ломать работающие инстансы. типа не делать drop column

Fike
12.07.2018
13:50:01
инструмент миграций не поддерживает локи?

Andrey
12.07.2018
13:50:11
то есть обратная совместимость в пределах апгрейда

Alexey
12.07.2018
13:50:22
Причем тут локи?
zero downtime deployment же. Никаких локов в принципе не может быть

Andrey
12.07.2018
13:51:03

Artem
12.07.2018
13:51:46
если используете helm то там есть пост пре и прочие хуки

Fike
12.07.2018
13:51:46
она в любом случае у вас так или иначе залочена на время миграций

Alexey
12.07.2018
13:52:38
с чего она лочится? Простые операции вроде alter column без default или сознание новой таблицы не лочит базу.

Andrey
12.07.2018
13:52:43

Fike
12.07.2018
13:53:15
У вас приложение возьмет лок, увидит отсутствие новых миграций, пойдет дальше. Это две секунды, ну может быть пять.

Andrey
12.07.2018
13:54:24
ненене, даже не уговаривайте. миграции это не часть нормального функционирования приложения, это часть апгрейда

Fike
12.07.2018
13:54:32
кк

Alexey
12.07.2018
13:55:39
rails/django всегда делали миграции и потом меняли воркеры. Тут также, только сменой воркеров занимается k8n. Годами проверенная практика.
(остальные фреймворки тоже скорее всего, я для примера)

Sergei
12.07.2018
13:58:24
$ run migrations
$ kubectl apply
а как быть если миграция должна новый столбец сделать, на базе уже существующих? ты накатишь миграцию, сделается столбец с содержимым, а код еще старый работает, изменит старый столбец и данные разъедутся

Fike
12.07.2018
13:59:30
да хоть триггерами