Maxim
13.08.2016
10:40:33
прятать не от кого
кстати
а как сейчас модно etcd бэкапить?
M
13.08.2016
10:44:52
Google
M
13.08.2016
10:44:52
+ etcdctl backup иногда
Maxim
13.08.2016
10:45:19
etcdctl backup - это же только для v2?
а кто-нибудь уже перешел с v2 на v3?
Ivan
13.08.2016
10:48:28
Alexander
13.08.2016
11:56:55
это прямо в Поде (в контейнере) осуществляется?
Или перед деплоем ноды?
мы храним пока в Secrets, которые хранятся в приватном репозитории. Деплой на кластер через kubectl.
Подключаем либо в качестве монтируемого вольюма, либо напрямую в переменные окружения (все зависит от применимости, например ключи к приватным registry монтируем KubernetesSecrets -> файлы с ключами)
Maxim
13.08.2016
11:57:28
а вы какую проблему-то решаете?
от кого вы прячете secret'ы?
Alexander
13.08.2016
11:58:33
у нас все проще - у нас вся конфигурация во внешку не выходит, нам не надо прятать. в Secrets храним данные для Oauth, пароли, токены к API
Maxim
13.08.2016
11:59:16
а что значит "вся конфигурация во внешку не выходит"?
(простите, я не очень умный :( )
Alexander
13.08.2016
12:00:14
репозиторий с настройками Kubernetes приватный, хранить секреты отдельно нет смысла, как и использовать Vault или какое-то шифрование
Maxim
13.08.2016
12:00:24
аааа
ну вот я об этом и спрашивал там выше
Google
Alexander
13.08.2016
12:00:37
Поэтому нам лично достаточно базовой функциональности
Maxim
13.08.2016
12:00:58
в данном-то случае все эти vault'ы нужны только когда от других коллег их прятать надо
Alexander
13.08.2016
12:00:59
просто механизм Secrets и его монтирование в переменные окружения/вольюмы довольно прикольный и удобнй
да, верно
Maxim
13.08.2016
12:01:25
и при этом еще как-то надо запретить тем коллегам делать kubectl get secret supadupasecret -o yaml
я читал http://kubernetes.io/docs/admin/authorization, но пока было не надо, поэтому заюзать повода не было
M
13.08.2016
12:06:47
Ну те коллеги вероятно совсем не должны иметь возможности использовать kubectl
Maxim
13.08.2016
12:07:35
дане, судя по доке можно почти точечно
http://kubernetes.io/docs/admin/authorization/#request-payloads
например вот
M
13.08.2016
12:15:25
Любопытно
А кто-нибудь использует ingress на локальной установке без облаков?
Вы используете внешние балансировщики или как выводите сервис наружу?
Maxim
13.08.2016
12:47:02
у меня kube-dns присутствует в /etc/hosts, и nginx, установленный на фронтенд-хостах, обращается прямо к кубе-сервисам
M
13.08.2016
12:51:55
Фронты не в кластере?
Maxim
13.08.2016
12:52:01
нет
там куча всего не контейнеризировано
поэтому фронты пока отдельно
когда весь сервис упакуем в кластер, можно будет и фронты туда же
а пока приходится извращаться немношк
Google
M
13.08.2016
12:53:02
А как тогда доступен куб-днс снаружи?
Maxim
13.08.2016
12:53:09
всмысле?
откуда "снаружи?"
M
13.08.2016
12:54:45
Видимо я не так прочитал первое сообщение, нгинкс не видит днс кубернетиса?
Maxim
13.08.2016
12:54:57
видит
я не понимаю, где проблема? ;)
kube-proxy на хосте надежно решает эту проблему посредством iptables
# iptables-save | grep -i dns
-A KUBE-SEP-AGF24HBSCHVRB2IM -s 192.168.0.4/32 -m comment --comment "kube-system/kube-dns:dns" -j KUBE-MARK-MASQ
-A KUBE-SEP-AGF24HBSCHVRB2IM -p udp -m comment --comment "kube-system/kube-dns:dns" -m udp -j DNAT --to-destination 192.168.0.4:53
-A KUBE-SEP-CF3CVUYBRRNMUR2I -s 192.168.0.4/32 -m comment --comment "kube-system/kube-dns:dns-tcp" -j KUBE-MARK-MASQ
-A KUBE-SEP-CF3CVUYBRRNMUR2I -p tcp -m comment --comment "kube-system/kube-dns:dns-tcp" -m tcp -j DNAT --to-destination 192.168.0.4:53
-A KUBE-SERVICES -d 10.222.222.222/32 -p udp -m comment --comment "kube-system/kube-dns:dns cluster IP" -m udp --dport 53 -j KUBE-SVC-TCOU7JCQXEZGVUNU
-A KUBE-SERVICES -d 10.222.222.222/32 -p tcp -m comment --comment "kube-system/kube-dns:dns-tcp cluster IP" -m tcp --dport 53 -j KUBE-SVC-ERIFXISQEP7F7OF4
-A KUBE-SVC-ERIFXISQEP7F7OF4 -m comment --comment "kube-system/kube-dns:dns-tcp" -j KUBE-SEP-CF3CVUYBRRNMUR2I
-A KUBE-SVC-TCOU7JCQXEZGVUNU -m comment --comment "kube-system/kube-dns:dns" -j KUBE-SEP-AGF24HBSCHVRB2IM
и так на каждом хосте
не руками, естественно
все эти правила динамически формирует kube-proxy
который запущен на всех хостах
таким образом я могу прямо на bare-metal машине использовать кластерный днс (ну и любые другие endpoint'ы)
M
13.08.2016
13:00:02
Я через nodeport обычно прокидывал сервисы
Maxim
13.08.2016
13:00:10
а зачем?
приходится прокси перенастраивать
чтобы он другой рейнж портов мог юзать
M
13.08.2016
13:00:48
Ну это меня и смущало
А как у тебя описание сервиса выглядит?
Maxim
13.08.2016
13:01:18
https://gist.github.com/Bregor/5d27a6d0cb722d743bb7f17da132edfd
Google
Maxim
13.08.2016
13:01:33
это тыптыщеконфиг
а сервисы как обычно
ща
M
13.08.2016
13:02:41
Я что то не понял про то как указать cluster ip на bare
Maxim
13.08.2016
13:02:50
а зачем?
ты же имя в сервисе пишешь
и по имени к нему и обращаешься
разрешение имени в адрес делает kube-dns
M
13.08.2016
13:04:15
А доступен он также на всех нодах?
Как нодпорт?
Admin
Maxim
13.08.2016
13:05:08
ну на всех, где kube-proxy есть
или руками iptables настроен ;)
добавил сервис в гист: https://gist.github.com/Bregor/5d27a6d0cb722d743bb7f17da132edfd
M
13.08.2016
13:06:01
Ясно, видимо меня смутила фраза в доке, что cluster ip предоставляется сервис провайдером
Спасибо за экскурс)
Maxim
13.08.2016
13:06:34
это когда у тебя type: LoadBalancer
и над тобой GCE или LBE
тогда айпи тебе выдает провайдер
а на bare metal тебе сам черт не брат :D
Google
M
13.08.2016
13:08:41
:)
Maxim
13.08.2016
13:09:59
собственно адреса для сервисов выдаются аписервером
ориентируется он при этом на --service-cluster-ip-range=10.222.0.0/16
ну в смысле это у меня там 10.222.0.0/16
не помню, что там по-умолчанию
M
13.08.2016
13:14:54
Хм, так это дополнительный адрес? Или что это за range?
Maxim
13.08.2016
13:15:08
хехе
об это я бился головой дня три
(ну я там выше говорил уже, что я не очень умный)
короче
адреса для сервисов и адреса для подов - это два никак не пересекающихся множества
адреса для сервисов абсолютно не имеют никакого "физического" представления
они нигде не терминируются
и нужны только для роутинга до нижележащих ресурсов (подов)
а вот адреса подов имеют под собой некоторое "физическое" отображение
и должны кем-то выдаваться
это может быть CNI, docker-networking, etc
M
13.08.2016
13:18:39
А мы про адреса сервисов
Да , про них я знаю)
Я думал мы продолжаем тему внешних
Maxim
13.08.2016
13:19:13
нене
M
13.08.2016
13:19:33
Думаю какой там еще ренж вроде все только прояснилось)
Maxim
13.08.2016
13:19:36
мы про то, что внутри кластера, да