
Paul
15.12.2016
12:15:23
а можно еще и статью в блог, чтобы для гугла не пропало


Andrey
15.12.2016
12:15:39
1) почему база падает иногда:
кластер может разваливается (в текущей редакции, пока я не разобрался как правильно настроить) если на ноде закончилась оперативная память и процесс OOM killer убил инстанс монги: http://shtsh.blogspot.com/2012/04/oom-killer.html
в этом случае процесс монги убивается/перезапускается
в нормальном сетапе после этого инстанс базы должен снова войти в кластер, но проблема в том что происходит следущее: в кластере он прописан как mongo1.svc.cluster.local а по факту у него другой хостнейм, и из-за этого его не пускают в кластер
таким образом, не войдя в кластер, инстанс переходит в сингл-режим
если упал слейв то косяк но некритичный - кластер продолжит работать без него
но если упал мастер - то все распадается, потому что оставшися не хватает кворума чтобы выбрать нового мастера
2) что в этом случае надо сделать:
- получаешь список всех подов с монгой:
$ kubectl —namespace=software get pods | grep mongo
- заходишь на те которые выпали и насильно вводишь их в кластер:
$ kubectl —namespace=software exec -it mongo1-rs-z70gq mongo
MongoDB shell version v3.4.0
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.0
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user
rs0:OTHER> use admin
switched to db admin
rs0:OTHER> db.auth({user: 'admin', pwd: 'oDBABVsb'})
1
rs0:OTHER> var conf = rs.conf()
rs0:OTHER> rs.reconfig(conf, {force: true})
{ "ok" : 1 }
rs0:OTHER>
rs0:SECONDARY>
обрати внимание: с OTHER статус изменился на SECONDARY - это значит он вошел в кластер и выбрал себе роль (а значит мастер уже появился)
пароль ессно не настоящий если что :) и там где про кластер когда говорю имею ввиду репликасет


Fike
15.12.2016
12:18:47
на выпадении мастера с двумя репликами кворума должно хватать :\

Google

Andrey
15.12.2016
12:20:02
а вот нет почему-то
я тоже думал

Vladimir
15.12.2016
12:29:33
может быть проблема в том, что у них голосов нету или приорити одинаковое?

Andrey
15.12.2016
12:30:10
приорити одинаковое... это bad practice?

Vladimir
15.12.2016
12:35:02
" If both Nodes B & C have the same priority, then the one who is most up to date in respect to the failed primary (oplog) wins" - а нет, сорри, это не важно

Fike
15.12.2016
12:53:41
я тоже видел что-то такое про равную приорити

Alexandr
15.12.2016
12:55:47
Странный вопрос - хочу на ноуте поработать с kubernetes. Никто не знает удобный для этого?

Vladimir
15.12.2016
12:58:09
есть вот такой проект, но я не пробовал https://github.com/kubernetes/minikube

Ihor
15.12.2016
13:05:12
да, верная ссылка

Alexandr
15.12.2016
13:07:19
Спасибо, попробую

Zon
15.12.2016
13:48:01
Можно сделать инит, который проверит, что там с кластером

Andrey
15.12.2016
13:57:03
rs.initiate() при каждом старте пода?

Zon
15.12.2016
13:57:42

Google

Igor
15.12.2016
14:29:05

Paul
15.12.2016
14:55:38
где же обещаная простыня? :)

Andrey
15.12.2016
15:19:06
Наволочка )

Paul
15.12.2016
15:19:45
кстати, коллеги, использует ли кто в качестве ингресса трэфик? как там делается базовая авторизация для конкретного хоста? не смог найти
или мне самому придется наволочку писать?

Denis
15.12.2016
15:50:41
А зачем тебе traefk?

Igor
15.12.2016
15:52:15
http://kubernetes.io/docs/admin/authorization/
Role-Based Access Control

Denis
15.12.2016
15:53:40

Paul
15.12.2016
15:55:20
When specified “RBAC” (Role-Based Access Control) uses the “rbac.authorization.k8s.io” API group to drive authorization decisions, allowing admins to dynamically configure permission policies through the Kubernetes API.
As of 1.3 RBAC mode is in alpha and considered experimental
для сильных духом

Igor
15.12.2016
15:57:33
в k8s половина фичей в альфе или бетте

Paul
15.12.2016
15:58:23
бета меня не пугает
а вот альфа смущает слегка

Igor
15.12.2016
15:59:44
все относительно, иногда альфа, это просто не полная реализация задуманного, но реализовано хорошо

Ihor
15.12.2016
16:52:34
Как мейнтейнер фич в Kubernetes, могу обратить внимание на https://github.com/kubernetes/features/issues - все фичи начиная с 1.4 трекаются тут

Andrey
15.12.2016
16:54:02
а кто знает когда в гугле 1.5 появится?

Ihor
15.12.2016
16:54:34
Можно сортировать по milestones и labels. Сейчас там правда не все фичи отображают корректный статус (в период между релизами ряд фич переходят в 1.6, некоторые - нет), но скоро это будет пофикшено

Andrey
15.12.2016
16:54:48
в плане сколько обычно проходит времени между релизом и обновлением в google: день, неделя, месяц... примерно )

Google

Ihor
15.12.2016
16:56:54
@vkfont https://drive.google.com/file/d/0B7nkS0ZWjVOpLVlRdFpkeWpwTlk/view?usp=sharing

Andrey
15.12.2016
16:57:31
спс

Denis
16.12.2016
13:58:38
Так а два мастера в Kubernetes уже нормально поднимается?

Stanislav
16.12.2016
14:02:17

Igor
16.12.2016
14:06:30
меньше трех в продакшине смыслв нет
иначе никакого HA

Stanislav
16.12.2016
14:07:46

Igor
16.12.2016
14:08:52
не, ну тут не совсем так, сплит брэйн маловероятен

Stanislav
16.12.2016
14:09:15
Ну два то совсем не варич

Igor
16.12.2016
14:09:51
да вариант для HA, один лег, второй на подхвате - лучше три
а вот ETCD лучше 3 минимум
а то есть шанс конфиги потерять

Denis
16.12.2016
14:15:50
но K8s не поддерживал раньше же несколько мастеров
Они как раз в декабре обещали зарелизить апдейт с поддержкой нескольких

Igor
16.12.2016
14:17:07
Может путаете multimaster и federation?

Paul
16.12.2016
14:17:26
федерация в бете, хотя Хайтауэр выкладывал ман

Stanislav
16.12.2016
14:26:51

Andrey
16.12.2016
19:15:04
глупый вопрос: а в GKE можно как-то названия компов поменять?
никак не могу запомнить хосты типа "gke-staging-default-pool-25526cbd-190k" :)

Google

Paul
16.12.2016
19:20:31
можно, через hostname

Andrey
16.12.2016
19:46:15
я так думаю гугль немножко по другому действует: как минимум при обновлении кластера инстансы пересоздадутся и хостнейм потеряется, а остальные вещи я даже боюсь предсказать

Zon
16.12.2016
22:39:58

Paul
16.12.2016
23:07:41
может, человек не любит метки

Denis
16.12.2016
23:15:34

Andrey
17.12.2016
06:09:13
А зачем тебе они?)
в кластере монги хосты юзаются для связи... некритично, но к конфиге выглядит не юзер-френдли )

Admin
ERROR: S client not available

Sander
17.12.2016
14:58:19
Всем привет,
нужна ваша помощь, чтоб я смог понять.
есть NodePort, я как понимаю, его следует указывать только если, ты хочешь достучаться до приложения, вне кластера по http(s) протоколу.
я получаю вот такую ссылку в итоге: http://10.245.1.3:30892/
которая открывает мое веб приложение.
но как быть с портом 30782? его надо же как-то на 80 порт перекидывать? Чтоб ссылка открывалась без порта.

Zon
17.12.2016
15:04:33
Можно использовать балансировщик внешний от клауд провайдера или свой поставить, например haproxy или nginx

Sander
17.12.2016
15:04:53
понятно, значит поверх этого всего еще нужен nginx
ехх

Zon
17.12.2016
15:05:51
Можно и на 80 порт закинуть, но тогда много приложений на ноде неудобно

Sander
17.12.2016
15:06:37
я ищу способ все токи как автоматизировать процесс
еще один вопрос, который я хотел задать.
2) в k8s, есть kind: Deployment
я так понимаю что он одновременно позволяет создать, replicas и делать deploy в эти replicas.
3) есть еще rc(replication controller) и rs (replica sets), если я правильно понимаю но rs, это какое-то новое поколение команд, и rc в принципе больше нет смысла использовать.
@zon_orti

Zon
17.12.2016
15:11:59
Да, лучше использовать деплойменты, ибо они выкатывают новый репликасет

Sander
17.12.2016
15:12:17
2) понял
и 3
?

Zon
17.12.2016
15:12:38
?

Google

Sander
17.12.2016
15:13:05
вроде rc даже не работает с kind deployment
так что скорей это к 2 вопросу

Zon
17.12.2016
15:13:29
Репликасет - низкоуровневая абстракция под деплойментом
RC не нужны уже

Sander
17.12.2016
15:14:06
ага
понял
В общем все понятно
только как сделать без гемороя проксирование портов, если я буду добавлять новые поды с app.
хочется просто запушить и радоваться
есть ли что-то магическое, как это сделать

Zon
17.12.2016
15:16:23
Не проверял, но https://github.com/kubernetes/contrib/tree/master/service-loadbalancer

Sander
17.12.2016
15:16:24
чтоб не было гемороя с портами

Zon
17.12.2016
15:16:47
Если тебе хостер балансировку не даёт

Sander
17.12.2016
15:17:08
я не знаю где эта балансировка может быть у хостера
digital ocean?

Zon
17.12.2016
15:17:55
Хм, не делал у них, вариант с хапрокси должен быть рабочим

Sander
17.12.2016
15:19:04
блин думал что все будет проще, =/

Zon
17.12.2016
15:19:57
Можно так ещё http://stackoverflow.com/questions/35884643/kubernetes-external-load-balancer-service-on-digitalocean
+ можно сделать ингресс контроллер и всё через него заводить