@kubernetes_ru

Страница 3 из 958
Maxim
13.08.2016
10:40:33
прятать не от кого

кстати

а как сейчас модно etcd бэкапить?

M
13.08.2016
10:44:52
а как сейчас модно etcd бэкапить?
Не доверяешь кластеру?)

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
А кто как организовал хранение секретов? В GitHub repo? Или что-то вроде Vault используете от HashiCorp?
гитхаб + gpg. Распаковка админским ключем при доставке на целевую машину

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
мы про то, что внутри кластера, да

Страница 3 из 958