
Maksim
07.08.2017
10:44:27
а вот что сейчас делать с ошибкой на fs/cgroup пока не оч ясно
мне почему то вспоминается анекдо про японский автомат, автоматического бритья...до первого раза лица у всех разные

Aleksey
07.08.2017
13:17:47
Подскажите, а есть ли механизм позволяющий прописать зависимости или ожидания? Хочу, чтоб деплоймент не запускался, пока не запущен такой-то сервис.
Сходу не нагуглил, прошу простить, если вопрос избитый.

Denis
07.08.2017
13:19:38
init containers

Google

Denis
07.08.2017
13:19:59
https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
Кто нибудь знает есть ли возможность кастомизировать порядок роллинг апдейта?

Vitaliy
07.08.2017
13:58:30
Посмотрите в сторону stateful set, но я сам не юзал
Вообще следить за порядком запуска - не kubernetes way

Maksim
07.08.2017
14:01:10
а там они очень сильно извращают, да ещё у них там и host alies и порядок запуска и вообще детская песочница, а у нас тут взрослый сервис с fqdn и т.п.)
да ещё иногда и сервисы зависимы друг от друга

Denis
07.08.2017
14:18:48
Хотя The RollingUpdate update strategy will update all Pods in a StatefulSet, in reverse ordinal order то что нужно прям :)

Maksim
07.08.2017
14:23:14
In Kubernetes 1.7 and later, StatefulSet allows you to relax its ordering guarantees while preserving its uniqueness and identity guarantees via its .spec.podManagementPolicy field
Это раз
The RollingUpdate update strategy implements automated, rolling update for the Pods in a StatefulSet. When a StatefulSet’s .spec.updateStrategy.type is set to RollingUpdate, the StatefulSet controller will delete and recreate each Pod in the StatefulSet. It will proceed in the same order as Pod termination (from the largest ordinal to the smallest), updating each Pod one at a time. It will wait until an updated Pod is Running and Ready prior to updating its predecessor

Google

Maksim
07.08.2017
14:24:28
Это два)
Так что да копать StateFull set


Andrey
07.08.2017
21:10:27
Народ, будучи в отпуске я решил проанализировать все доступные источники информации (хайповые и не очень), и составить таблицу наиболее интересных транспортов между сервисами сети (с прицелом на перенос инфораструктуры, так что требования субьективные да и сравнивается там не технологии одного уровня а теплое с мягким).
В общем, попытка определить "хайповость" технологии и решить на чем делать следующий проект чтобы потом не обосраться.
Накидал вкратце примерный список фич и штрихами заполнил часть из них, без выводов пока и всего остального. Если кому интересно пишите свой фидбек (какие фичи были бы еще полезны, что из того что написал неправильно или непонятно), можно в приват.
Нужны любые ваши комментарии, очень хочу их услышать даже если у вас есть всего пара слов по этому поводу. Заранее спасибо :)
Да и табличка может потом пригодиться коллегам.
https://docs.google.com/spreadsheets/d/1l-jbEGlkW83Hcb122oHZZ8SGTdE1nRQVOT5gnWvbXO0/edit?usp=sharing


Alex
08.08.2017
04:11:13


Andrey
08.08.2017
05:07:35
о, и ты здесь :) привет
у меня там в таблице не столько сравнение (нельзя сравнивать теплое с мягким), сколько попытка описать характеристики
спасибо за инфу, подумаю как вставить в таблицу
grpc использует http2 под капотом, graphql не регламентирует протокол но из коробки идет http1 - то есть я не рассматриваю отдельно http так как он в комплекте идет
если ты имел ввиду чистый http1 со всеми своими косяками то он не прошел предварительный отбор в таблицу :)
по поводу фреймворков, прикол в том что только gRPC дает возможность взять и написать бизнес-логику на определенном списке языков (а дальше админы пусть думают как ее в воркфлоу встроить)
остальные претенденты не обладают мультиязыковым фреймворком к сожалению (ваш amqp-фреймворк хорош но только под ноду к сожалению... а собственно, почему "ваш", я тоже в начале разработки руку приложил :), то есть надо создавать спецификацию и при входе новой команды в разработку (или желании сменить язык) надо заново фреймворк писать... если я не ошибаюсь, поправьте меня


Let Eat
08.08.2017
07:24:53
Народ, будучи в отпуске я решил проанализировать все доступные источники информации (хайповые и не очень), и составить таблицу наиболее интересных транспортов между сервисами сети (с прицелом на перенос инфораструктуры, так что требования субьективные да и сравнивается там не технологии одного уровня а теплое с мягким).
В общем, попытка определить "хайповость" технологии и решить на чем делать следующий проект чтобы потом не обосраться.
Накидал вкратце примерный список фич и штрихами заполнил часть из них, без выводов пока и всего остального. Если кому интересно пишите свой фидбек (какие фичи были бы еще полезны, что из того что написал неправильно или непонятно), можно в приват.
Нужны любые ваши комментарии, очень хочу их услышать даже если у вас есть всего пара слов по этому поводу. Заранее спасибо :)
Да и табличка может потом пригодиться коллегам.
https://docs.google.com/spreadsheets/d/1l-jbEGlkW83Hcb122oHZZ8SGTdE1nRQVOT5gnWvbXO0/edit?usp=sharing
zeromq, nanomsg, mqtt


Айбелив
08.08.2017
07:29:04
https://nats.io

Andrey
08.08.2017
07:29:44
это все event-driven паттерны (объединил их в amqp, хотя и не обязательно там должен быть amqp - mqtt тоже ттуда же например :)

Artem
08.08.2017
08:02:12

fedora atomic - неплохо придумали и сделали.
наверное повезу ее в прод

Роман
08.08.2017
08:26:07
Когда использовал просто докер, gitlab-ci-runner нормально работал. Теперь поставил его в кубер. Но уже несколько дней не могу понять в чём проблема.
Раннер создаёт три контейнера, среди них есть svc-0, который не стартует. Причина: не может сменить группу у /var/run/docker.sock на docker, так как группы не существует. И действительно: в контейнере есть группа 999, но называется она ping. Используется образ docker:dind.
В то же время, аналогичная схема работает, если используется просто контейнер с этим образом вне кубера. Раннер используется для сборки образа и запушивания его в регистри.
Кто-нибудь сталкивался? Как победили? Я уже всё перечитал, что нашёл по этому вопросу. Ответ один: всё должно работать...

Rinat
08.08.2017
08:44:41
всем привет, может кто знает
перестали работать сервисы снаружи кластера
т.е. зайти по внешнему ip на них не могу
wait response и все
внутри куба ответ есть
думал yaml косячный у меня, проверил на дашборде_, тоже перестал работать

Роман
08.08.2017
08:58:11

Rinat
08.08.2017
08:58:54
Нет
Service loadbalancer

Igor
08.08.2017
09:01:18
она вроде как - брошенный проект
альтернатив понавыпускали типа appcode/voyager

Rinat
08.08.2017
09:06:46
хз в доках нету про depricated

Google

Rinat
08.08.2017
09:06:48
https://kubernetes.io/docs/concepts/services-networking/service/#services-without-selectors

Denis
08.08.2017
09:25:57
А нужно какие нибудь особые tolerations прописывать для DS, чтобы он точно и всегда был запущен на всех нодах? Или это уже из коробки?

Rinat
08.08.2017
10:04:13
вопрос)) а как ingress понимает какой ip использовать? делает резолвинг ?

Igor
08.08.2017
10:32:52
Пример:
на мастере стоит node-role.kubernetes.io/master=true:NoSchedule
Чтобы туда DS задеплоил, надо:
tolerations:
- key: node-role.kubernetes.io/master
value: "true"
effect: NoSchedule

Denis
08.08.2017
10:57:15

Dmitry
08.08.2017
10:59:49
Ребят, раз уж вопрос о ingress возник. Такой кейс: есть helm чарт в проде с ингрессами и kube-lego. Хочу на minikube его перенести для разработки и тестов. Как без отключения tls секции его перенести? или слишком много хочу?

Ivan
08.08.2017
11:42:30
if-чиком в чарте?

Роман
08.08.2017
12:03:06
Если у пода нет доступа в интернет - куда смотреть?

Artem
08.08.2017
12:26:05
какой оверлей?
фланель-калико-чтотоеще?

Роман
08.08.2017
12:30:10
какой оверлей?
Разобрался. Всё обстоит хуже. Это докер в докере. У контейнера в контейнере нет интернета. Ему можно сделать —net=host. Но это сложный очень путь. Я по другому сейчас пробую.

Artem
08.08.2017
12:30:46
ты внутри пода запускаешь докер и там внутри интернета нет?

Paul
08.08.2017
12:32:30

Alexandr
08.08.2017
12:33:02
Привет всем! Есть вопрос по TCP настройке. У меня веб приложение работает по http 80 и вебсокету. Эта часть работает нормально через ingress. Но в этом же приложении есть tcp server (port: 6666). Который не понимаю как выпихнуть его наружу. Может кто - то подскажет как это сделать? Могу расшарить конфиги посмотреть если это чем - то поможет. Не могу как - то нагуглить как сделать.
Если сделать port-forward и потом через telnet то подключается

Kaspar
08.08.2017
12:33:42
шарь

Paul
08.08.2017
12:35:55

Alexandr
08.08.2017
12:36:14
https://gist.github.com/oivoodoo/bc047b48a1b31ba019f2b420c03636b4

Роман
08.08.2017
12:36:33

Google

Alexandr
08.08.2017
12:36:40
nodePort
ок попробую почитать документацию про NodePort. спасибо

Artem
08.08.2017
12:46:39
Ага.
может быть подкрутить попробовать iptables? замаскарадить все по ступеням
хотя, кажется, попробовать вообще убрать второй докер будет быстрее

Admin
ERROR: S client not available

Alexandr
08.08.2017
13:18:38

Роман
08.08.2017
13:57:25

Paul
08.08.2017
14:23:46


Роман
08.08.2017
14:28:31
не получается - это плохое описание проблемы
Более подробно:
Вот часть конфига раннера:
[runners.kubernetes]
namespace = "gitlab"
privileged = true
image_pull_secrets = ["deploy-robot"]
[[runners.kubernetes.volumes.host_path]]
name = "docker-socket"
mount_path = "/var/run/docker.sock"
host_path = "/var/run/docker.sock"
[runners.kubernetes.node_selector]
gitlab-runner = "true"
Деплоймент - самый обычный, там в нём просто инструкция запустить образ и примонтировать hostPath с этим конфигом.
Получается следующее: раннер создаёт три контейнера в поде. Один из них (srv-0) сразу же падает с ошибкой:
can't create unix socket /var/run/docker.sock: device or resource busy
Второй, который build, пытеется собрать мой проект, но не может, так как route -n в нём показывает дефолтный шлюз - 169.254.1.1 и никакие сервисы недоступны (не пингуются). Однако днс резолвит адреса из внешнего интернета.
В связи с этим вопрос: как заставить раннер не монтировать docker.sock в контейнер svc-0, но монтировать в контейнер build?


Artem
08.08.2017
19:10:16
поправь host_path
а у тебя в поде два контейнера ?
тьфу
сорри протормозил

kvaps
08.08.2017
23:13:51
а кто-нибудь может объяснить зачем сервисам типа nodePort вообще нужен параметр clusterIP?

Paul
08.08.2017
23:56:36
а если у вас несколько внешних ип?
вот для этого и нужен
причем, как я понимаю, он маршрутизирует к нужному контейнеру сам - у меня работал сервис с IP одного сервера, но с контейнером на другом

Vasiliy
09.08.2017
00:56:28
хм, а в каком чатике можно обсудить закон о защите персональных данных (типа что надо их хранить на территории РФ)? я так понял придется отказываться от google cloud platform если хранишь/обрабатываешь персональные данные. хотя у меня только телефон хранится, но сим-карты привязываются к паспорту гражданина РФ сейчас, и хз можно ли считать номер моб. телефона персональными данными, мне вот говорят, что да (ну и инфа из открытых источников это подтверждает)

Lev
09.08.2017
01:40:15
Просто номер?) или номер и имя?

[Anonymous]
09.08.2017
01:54:07
@luxmoney38 - Слив лучших платных архивов: курсов-тренингов-мануалов! Сливаем все, за что раньше приходилось платить.
Вся информация БЕСПЛАТНО в одном месте!
?Чекнуть всем!
https://t.me/luxmoney38

Yury
09.08.2017
06:22:42
А есть возможность описать сервис, который будет смотреть не внутрь кластера а на внешние сервисы. Ну чтобы откликался по днс, но эти сервисы не в кластере?

Google

Artem
09.08.2017
06:27:13
Да, запросто, например можно описать сервис для бд, которая на внешнем хосте вне в кластере

Yury
09.08.2017
06:40:38
ну единственное что подходит это ExternalName, но а мне надо чтобы адреса и round-robin

Artem
09.08.2017
07:44:01
https://kubernetes.io/docs/concepts/services-networking/service/#external-ips

Yury
09.08.2017
07:59:32

kvaps
09.08.2017
08:10:58

Artem
09.08.2017
08:12:46
Я видимо не понимаю кейза использования

kvaps
09.08.2017
08:12:49
Тогда я хоть убей, не понимаю назначения сервисов с типом nodePort, потому что сервисы типа clusterIP делают ровно тоже самое, но в добавок разрешают использовать привелигерованные порты

Paul
09.08.2017
08:26:09

Lev
09.08.2017
08:27:10
если я заполню таблицу 12 значными числами, то это будет считаться персональной информацией?)

Paul
09.08.2017
08:50:34

Роман
09.08.2017
10:47:10
Кто разворачивает куб при помощи kubespray? Как там указать внутреннюю сеть между нодами? Чтобы не через интернет работали, а через свич. При этом ингресс-контроллеры должны смотреть в интернет...

ivan
09.08.2017
11:02:05
юзать переменную cloud_config