
Andrey
10.10.2016
08:04:15
всем утро
я тут думал что самый хитрожопый и смогу статику пихать в configmap чтобы потом ее nginx подхватывал
но по факту выяснилось что configmap не умеет директории :)
в связи с этим хочу поднять вопрос еще раз: кто как статику деплоит?

Sergey
10.10.2016
08:05:13
микростатика - js, css - куски релизного контейнера с приложением. зашита внутрь.
большая статика - в S3-like сторадже.

kay
10.10.2016
08:05:34
статику в configmap не комильфо ни разу. т.к. для этого используется etcd. и kubelet считывает обновленную статику каждую минуту приблизительно и перемонтирует volume с обновленной статикой
configmap на то и имеет составляющее config, что оно хорошо только для configгов

Google

Andrey
10.10.2016
08:06:06
ну у меня rest api к которому я через ingress хочу прикрутить папку "/doc"
так как хостится это все в гугле то я хз как бакет подсоединить - кто-то делал?
ага, уже понял что дурак )

kay
10.10.2016
15:32:08
Тут была ссылка на вариант развертывания k8s кластера внутри docker

yolkov
10.10.2016
15:35:06
внутри одного контейнера?

kay
10.10.2016
15:35:21
нескольких.

yolkov
11.10.2016
14:20:33
если я на нодах для кубелета не прописываю --tls-cert-file --tls-private-key-file, то я не могу kubectl exec or logs на поды находящихся на этих нодах
аутенцификация настроена через токены, не очень как то хочется всем нодам выписывать сертификаты(как я понимаю серверные)
хотя курлом с curl -k https://node02:10250/containerLogs/demos/tarantool-1882853530-sxvnq/tarantool все отдается

kay
11.10.2016
14:25:08
@yolkov https://github.com/kayrus/kubelet-exploit

yolkov
11.10.2016
14:27:13
я видел и читал твои заметки на хабре, но вопрос не в открытости 10250, а в том что не работает kubectl exec, logs
если не генерить сертификаты на нодах
у меня аутентификация на токенах, и не хочется для каждой ноды генерить сертификаты

kay
11.10.2016
14:29:54
версия k8s какая?

Google

yolkov
11.10.2016
14:29:58
1.4.0
kubectl options | grep insecure
--insecure-skip-tls-verify=false: If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure
с этой опцие тоже не работает

kay
11.10.2016
14:31:12
потому что kubcetl напрямую не обращается к kubelet порту
к нему обращается apiserver
т.е. получается, что при аутентификации на токенах самоподписанные сертификаты kubelet игнорятся?
а если нет, то всё ок?
как именно настроена аутентификация на токенах?

yolkov
11.10.2016
14:33:20
не уверен что через аписервер
kubectl --insecure-skip-tls-verify=true logs tarantool-1882853530-sxvnq
Error from server: Get https://node02:10250/containerLogs/demos/tarantool-1882853530-sxvnq/tarantool: x509: certificate signed by unknown authorit

kay
11.10.2016
14:33:36
эту ошибку выплевывает apiserver
который коннектится к https://node02:10250

yolkov
11.10.2016
14:34:34
--authorization-mode=ABAC
--authorization-policy-file=/etc/kubernetes/tokens/authorization-policy.jsonl

kay
11.10.2016
14:36:26
щас исходники посмотрю

yolkov
11.10.2016
14:37:51
все остальное по идее работает, ну или я не заметил. На тех нодах где есть сертификаты, exec logs работают

Artur
11.10.2016
14:43:27
можно попутный вопрос? У меня поды c weave не могут авторизоваться в API
Failed to list *api.Namespace: the server has asked for the client to provide credentials (get namespaces)
от weave-npc, например. у сервисаккаунта токен есть, в поде подмонтирован
надо разобраться куда в сорцы смотреть

yolkov
11.10.2016
14:44:57
а политики разрешают для пользователя веаве доступ к неймспесам?

Artur
11.10.2016
14:45:32
я пользователя не определял, он по default идёт
default создался автоматически, думаю, всё должно быть ок (не уверен)

yolkov
11.10.2016
14:45:50
а поппробуй определить и дать все права
я просто weave в глаза не видел

Google

Artur
11.10.2016
14:46:42
я думал попробовать руками в API сходить с токеном

kay
11.10.2016
14:46:51
@yolkov вот тут нужно искать по kubeletclient
https://github.com/kubernetes/kubernetes/blob/master/pkg/master/master.go
и здесь тоже самое https://github.com/kubernetes/kubernetes/blob/master/cmd/kube-apiserver/app/server.go
apiserver подключается к kubelet и если всё ок - предоставляет туннель для kubectl
т.е. нужно смотреть какие TLSconfig настройки используются и как задаются для инициализации соединения к kubelt

yolkov
11.10.2016
14:51:44
просто к нродам на которых сертификаты есть, все работает
сейчас попробую выписать сертификат для ноды
проверю, заработает ли

kay
11.10.2016
14:52:48
если б было время - навернео смог бы найти кусок кода, который за это овтечает. но у меня сейчас другой deadline

yolkov
11.10.2016
14:53:58
ок, спасибо, поразбираюсь

Artur
11.10.2016
15:14:15

Artur
11.10.2016
15:14:21
спасибо
сделаю ABAC на досуге

kay
11.10.2016
15:14:50
rbac удобнее

Artur
11.10.2016
15:15:07
написано экспериментал
работает?

kay
11.10.2016
15:15:18
давно. с версии 1.3

Artur
11.10.2016
15:15:28
значит надо брать)

kay
11.10.2016
15:58:31
два

Google

yolkov
11.10.2016
16:02:42
с сертификатом заработало, причем именно серверным сертификатом, в котором еще надо правильно прописать Subject Alternative Name

Artur
11.10.2016
16:03:02
что значит "серверным"?
а у меня заработал weave

yolkov
11.10.2016
16:03:49
с включенной опцией
X509v3 Extended Key Usage:
TLS Web Server Authentication

Admin
ERROR: S client not available

Artur
11.10.2016
16:03:57
а, ну да

yolkov
11.10.2016
16:05:02
у всех на нодах сертификаты сгенерированы для kubelet? или я включил какуюто опцию

kay
11.10.2016
16:06:43
у меня автогенерация идет

Artur
11.10.2016
16:07:03
а как ты подписываешь сертификаты?

kay
11.10.2016
16:07:18
kubelet по дефолту не проверяет сертификаты

Artur
11.10.2016
16:07:22

kay
11.10.2016
16:07:54
но мой фикс, который я пытался пропихнуть в k8s проверяет
не знаю, может они что-то похожее успели в 1.4 впихнуть

Artur
11.10.2016
16:09:00
я немного запутался, кто и как авторизуется
kubectl авторизуется видимо или токеном или сертификатом
все системные поды в API тоже сертификатами идут?
хотя у меня все идут в локальный апи на 8080
остальные поды могут сходить сервисаккаунтом

yolkov
11.10.2016
16:11:14
ну у тебя вообще похоже не секурный порт используется
вот тут чтото объясняется, правда могло уже чтото устареть https://github.com/kubernetes/kubernetes/issues/11000

Google

Artur
11.10.2016
16:11:55
спасибо
как dns засетапить без этих солтов есть инструкция?
вижу только левую статью
от 2015 года по установке пода со skydns

yolkov
11.10.2016
16:23:12
https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/dns

Artur
11.10.2016
16:23:35
ну это с солтом :)
хотя там внутри ж ямл
надо только раскрыть его

yolkov
11.10.2016
16:25:39
там есть седом)
я только как деплоймент запускал и без kubernetes.io/cluster-service: "true”, с этой опцией у меня crashloop
но без нее как аддон нельзя запустить

Artur
11.10.2016
16:28:55
хм, про аддоны непонятно "Add-ons extend the functionality of Kubernetes." и всё :)
судя по доке - обычные репликасеты
о, здесь есть дока https://github.com/kubernetes/kubernetes/tree/master/cluster/addons