
Maksim
18.07.2017
11:08:11
а вот подрубить кублет к кластеру

Denis
18.07.2017
11:08:53
https://github.com/kubernetes/community/blob/master/contributors/design-proposals/self-hosted-kubernetes.md
kubelet как daemonset :)

Maksim
18.07.2017
11:11:33
а кто его стартанёт, если кублета нету?

Google

Maksim
18.07.2017
11:12:12
запуск подов на конечном сервере осуществляет кублет
если его нету? то кто запустит контейнер, в котором кублет?

Denis
18.07.2017
11:12:28
В документе все написано
Временный control plane

Maksim
18.07.2017
11:12:53
более того, такой контейнер требует привилегировнного использования, что явно не оч круто
а откуда берётся временный контрол?

Denis
18.07.2017
11:13:23
ты запускаешь kubelet, поверхнего запускашь kubelet как daemonset, убиваешь первый и отдаешь второму контроль за самим собой

Maksim
18.07.2017
11:13:35
(я просто разматываю цепочку...-) есть ansible и другие способы доставки )
а что если нода ребутнётся?
демонсет не прописывает контейнеры в качестве сервисов в ОС


Denis
18.07.2017
11:14:37
Bootkube Challenges
This process has a number of moving parts. Most notably the hand off of control from the "host system" to the Kubernetes self-hosted system. And things can go wrong:
1. The self-hosted Kubelet is in a precarious position as there is no one around to restart the process if it crashes. The high level is that the system init system will watch for the Kubelet POSIX lock and start the system Kubelet if the lock is missing. Once the system Kubelet starts it will launch the self-hosted Kubelet.
2. Recovering from reboots of single-master installations is a challenge as the Kubelet won't have an API server to talk to to restart the self-hosted components. We are solving this today with "user space checkpointing" container in the Kubelet pod that will periodically check the pod manifests and persist them to the static pod manifest directory. Longer term we would like for the kubelet to be able to checkpoint itself without external code.


Maksim
18.07.2017
11:14:47
намного эффективный (имхо) при включении ноды в кластер, ностроит кублет и поднять его как системный сервис

Denis
18.07.2017
11:15:37
ехал kubelet через kubelet :)

Google

Denis
18.07.2017
11:16:22
Пока уровень 2 самый простой

Роман
18.07.2017
11:57:49
А где прочитать про префикс label kubernetes.io/? Что это вообще и на что влияет?

Maksim
18.07.2017
12:00:26
label
это просто теги поиска...
так что он ни на что не влияет

Zon
18.07.2017
12:34:48

Maksim
18.07.2017
12:36:21

Роман
18.07.2017
12:42:59
так что он ни на что не влияет
kubernetes.io/cluster-service: true
Вот например такая метка. В логировании много, где используется. Если её убрать - каков будет результат?

Maksim
18.07.2017
12:44:05
логировании? Это скорее метка, что сервис работает на кластер (типо kube-dns)
можно отобрать приметивы кубера (деплои сервисы и -тп) через -l
типо kubectl get po -l kubernetes.io/cluster-service=true
тут как бы вопрос в том, что такое ярлыки и зачем они нужны
https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
Labels are key/value pairs that are attached to objects, such as pods. Labels are intended to be used to specify identifying attributes of objects that are meaningful and relevant to users, but do not directly imply semantics to the core system.
То есть ярлыки нужны для пользователей, а не для системы
А вот аннотации уже интереснее)

Роман
18.07.2017
12:49:08

Maksim
18.07.2017
12:49:33
?

Роман
18.07.2017
13:12:09
?
Просто брал примеры кода. А при логировании в кибане создавалось много лишних фильтров с этими лейблами. Я теперь их просто правильно укажу и будет, как надо.
Но и селекторы ведь к лэйблам применяются?

Google

Роман
18.07.2017
13:13:34
Например у сервиса spec.selector

Fike
18.07.2017
13:13:51
только к ним или как правило только к ним, насколько понимаю

Maksim
18.07.2017
13:36:10
Там есть ещё селекторы affinity
И другие штуки
https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
или тут
http://blog.kubernetes.io/2017/03/advanced-scheduling-in-kubernetes.html

Let Eat
18.07.2017
13:39:03
так что он ни на что не влияет
влияет. вот пример: https://github.com/kubernetes/kubernetes/blob/f542fe12837560d991218289e8297dac7362c7ba/pkg/controller/service/servicecontroller.go#L627

Maksim
18.07.2017
13:39:55
я в 1.5.2 мире пока ещё живу)

Let Eat
18.07.2017
13:40:53
с лэйблами и аннотациями вообще маленький недокументированный адок

Maksim
18.07.2017
13:50:39
это точно)

Роман
18.07.2017
14:02:14

Paul
18.07.2017
14:03:12
коллеги, напомните пжлст, как в кубернетес выполнять разовые действия. Суть проблемы:
- в некоторых контейнерах мне нужно эпизодически выполнять определенные задачи
- задачи можно (нужно) определить заранее
- задача выполняется НЕ по расписанию, а внешним триггером

Роман
18.07.2017
14:03:45

Let Eat
18.07.2017
14:05:44

Denis
18.07.2017
15:10:53

Let Eat
18.07.2017
15:11:51
ага, особенно все AWS аннотации на сервисах :)

Maksim
18.07.2017
15:12:08

Let Eat
18.07.2017
15:20:25
nginx-controller как раз документирован дольно хороошо, была табличка со всеми аннтоациями кажется

Maksim
18.07.2017
15:28:18
Это я к тому что аннотация используется к альфа/бета фичам)

Google

Maksim
18.07.2017
15:28:56
В контроллере это самой что ни наесть прод фича, используемая для кастомизации nginx

Denis
18.07.2017
15:30:21

Maksim
18.07.2017
15:30:58
в доке написано, что аннтотации это метод передачи метаданных в сервисы
вернее это способ прикрепить метаданные к объекту кубера, что бы различные клиенты могли их получить.

Velan
19.07.2017
05:18:22
https://t.me/folderarchive — канал, где сливают платный полезный образовательный контент и курсы.

Lev
19.07.2017
05:29:41
https://coreos.com/blog/kubernetes-turns-two

Роман
19.07.2017
06:36:41
Подскажите про nodeSelector, пожалуйста. Если я укажу два - разворачиваться будет только в том случае, если обе метки есть у ноды(условие И)? Или по условию ИЛИ?

Admin
ERROR: S client not available

Роман
19.07.2017
06:37:20
Я попробовал - вроде по условию И, но вдруг есть нюансы.

Maksim
19.07.2017
07:50:03
Нода должна иметь каждый из указаных селекторов

Victor
19.07.2017
07:50:40

Роман
19.07.2017
07:52:23
Это очень хорошо.

Khramov
19.07.2017
08:37:05
Ребят, а можно как-тосвязать несколько подов, чтобы когда рестартится один, остальные тоже сами рестартились?

Denis
19.07.2017
08:38:26

Khramov
19.07.2017
08:39:35
Ну вот так нужно :)

Dmitry
19.07.2017
08:45:48
Да, можно

Khramov
19.07.2017
08:46:00
А как так сделать?

Dmitry
19.07.2017
08:46:31
При шутдауне получаешь список подов своего сервиса и удаляешь их через api
но это выглядит ужасно в любом случае

Khramov
19.07.2017
08:46:54
Ну это понятно, я имел ввиду на уровне куба как-то связать

Google

Khramov
19.07.2017
08:47:09
Через апи, самому, это не очень вариант

Dmitry
19.07.2017
08:47:26
так это и есть на уровне куба) запрос-то в куб апи

Mikhail
19.07.2017
09:10:49
А кто как с логированием вопрос решил?
Все логи пишутся на машину, а оттуда сислогом\логстешем в кролик, или внутри подов к каждому сервису поднимать приложение и слать в него?
Или какие то другие варианты?

Alexey
19.07.2017
09:38:21
Уже обсуждался тут вариант с filebeat
Или не здесь писал
Filebeat берёт json-file и отправляет в хранилище/очередь.
Или же докер плагины для логов и сразу можно в логстэш, например. Но с этим есть определённые заморочки.

Let Eat
19.07.2017
10:36:41

Роман
19.07.2017
11:09:03
Флюент вроде не занимается этим сам.

Denis
19.07.2017
11:09:41
А куб разве сам это не делает?
или надо daemonset какой то запускать?

Let Eat
19.07.2017
11:10:47
там же можете и настроить драйвер по своему вкусу, если не страшно

Роман
19.07.2017
11:11:08

Let Eat
19.07.2017
11:11:15
json

Denis
19.07.2017
11:11:28
it’s recommended to use stdout and stderr directly and leave rotation and retention policies to the kubelet
https://kubernetes.io/docs/concepts/cluster-administration/logging/

Роман
19.07.2017
11:11:35
json
Нет, я про занимаемое место, например.