
Maksim
27.06.2017
14:53:10
ds в 1.6 заработал как деплой?
я просто ещё 1.6 не мучал, у меня 1.5 в бою

Let Eat
27.06.2017
14:54:42

Google

Maksim
27.06.2017
14:55:22
а скоро это когда?) месяц? два?

Let Eat
27.06.2017
14:56:46
вот как это поборят, так сразу :) https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.7

bebebe
27.06.2017
15:13:04
а кто-нибудь пробовал ansible-container deploy в k8s?

Dmitry
27.06.2017
15:56:04
@let
@rossmohax Ранние версии уже есть. У меня стоит, ради того что-бы потыкать ручками

Let Eat
27.06.2017
16:02:06
я не такой смелый :)
буду ждать 1.7.2 :)

Dmitry
27.06.2017
17:01:47
Хотя у нас Прометей снаружи

Vadim
27.06.2017
22:22:13
Я пользуюсь Rancher, но сейчас Cattle как оркестратор
а по ранчеру кто подскажет?

Evgeniy
28.06.2017
06:44:34

Vadim
28.06.2017
07:14:37
Нет, но бывают проблемы с rancher server (cattle процесс) . Столкнулся с зависанием тредов на сервере и повышенным потреблением CPU. Пришлось лезть в базу и удалять записи о воркерах.

Google

Vadim
28.06.2017
07:15:30
Ещё очень нестабильно работает обновление через rancher-compose или rancher cli, автоопределение новой версии образа у меня никак не работает.
Ну и rancher-compose устарел, хотя и stable. В итоге пользуемся rancher cli.

Victor
28.06.2017
07:54:01
а почему kubelet в логи сыпет, что не может статы с lxd дисков на zfs получить? зачем ему zfs да и еще от lxd?)
[fs.go:333] Stat fs failed. Error: exit status 1: "/sbin/zfs zfs get -Hp all lxd/images/1e59027d1d58873fc7e23f769232cd4846c6d675ea292bc71037fafc1547649d" => cannot open 'lxd/images/1e59027d1d58873fc7e23f769232cd4846c6d675ea292bc71037fafc1547649d': dataset does not exist

Arslanbekov
28.06.2017
09:09:28
А кто сейчас чем раскатывает на bare?
kargo (kubespray) очень медленно развивается, может есть достойные варианты?

Paul
28.06.2017
09:15:41

Arslanbekov
28.06.2017
09:17:07

Максим
28.06.2017
09:23:39
А есть кто удачно запустил в продакшен k8s-кластер на CoreOS загружающейся по PXE?


Andrey
28.06.2017
09:24:39
Сорян за оффтоп, не красиво чужие вопросы своим перебивать... я просто оставлю это тут вдруг кто ответит:
Я обычно с пониманием отношусь к тому что я чего-то недопонимаю, но тут походу фундаментальное недопонимание и оно меня бесит.
Короче, есть некое приложение который использует RAFT для достижения консенсуса. При этом, алгоритм там настолько тупо реализован что требуется при запуске указать всех участников и они должны быть доступны, иначе приложение не стартует.
Для того чтобы с самого начала были известны имена всех участников, я заюзал petset с headless service (можно deployment с отдельными сервисами но там свои косяки). То есть, сервис используется в данном случае ТОЛЬКО для того чтобы были стабильные dns-имена правильно резольвящиеся в айпишники.
Приложение запускается, видит всех своих друзей и с использованием raft образует mesh-сесть (ну, не совсем mesh конечно но в данном контексте сойдет) между всеми участниками подключившись НАПРЯМУЮ друг к другу по айпишникам которые срезольвились через dns по порту 5001.
На этом мои знания заканчиваются и начинается магия...
1) Почему без указания абсолютно левого порта в headless serivice который нужен только для резольвинга приложение не запускается (висит на "ожидаем всех участников") - то есть с вероятностью 90% не создаются A-записи в кубернетеском dns? (каюсь, не проверил этот момент потому что утомился)
2) Что я не понимаю в этой схеме? Есть какая-то ключевая позиция которую я упускаю?
Вот код того что проверяю если что: https://pastebin.com/aF6Y2USY


Zon
28.06.2017
09:32:33
Сорян за оффтоп, не красиво чужие вопросы своим перебивать... я просто оставлю это тут вдруг кто ответит:
Я обычно с пониманием отношусь к тому что я чего-то недопонимаю, но тут походу фундаментальное недопонимание и оно меня бесит.
Короче, есть некое приложение который использует RAFT для достижения консенсуса. При этом, алгоритм там настолько тупо реализован что требуется при запуске указать всех участников и они должны быть доступны, иначе приложение не стартует.
Для того чтобы с самого начала были известны имена всех участников, я заюзал petset с headless service (можно deployment с отдельными сервисами но там свои косяки). То есть, сервис используется в данном случае ТОЛЬКО для того чтобы были стабильные dns-имена правильно резольвящиеся в айпишники.
Приложение запускается, видит всех своих друзей и с использованием raft образует mesh-сесть (ну, не совсем mesh конечно но в данном контексте сойдет) между всеми участниками подключившись НАПРЯМУЮ друг к другу по айпишникам которые срезольвились через dns по порту 5001.
На этом мои знания заканчиваются и начинается магия...
1) Почему без указания абсолютно левого порта в headless serivice который нужен только для резольвинга приложение не запускается (висит на "ожидаем всех участников") - то есть с вероятностью 90% не создаются A-записи в кубернетеском dns? (каюсь, не проверил этот момент потому что утомился)
2) Что я не понимаю в этой схеме? Есть какая-то ключевая позиция которую я упускаю?
Вот код того что проверяю если что: https://pastebin.com/aF6Y2USY
А там не srv записи разве? для srv записи нужен порт


Andrey
28.06.2017
09:33:29
а, то есть если я порт не задаю (даже если он не нужен) то запись просто не создается? это все объясняет походу, спасибо :)
я че-то про A всегда думал

Fike
28.06.2017
09:36:34

Andrey
28.06.2017
09:36:55
стопэ, а ping xxx.yyy.svc.cluster.local это ведь A

Zon
28.06.2017
09:43:41
Мне кажется srv первична, не?

Paul
28.06.2017
09:46:31

Vitaliy
28.06.2017
09:53:01

Михаил
28.06.2017
09:54:18

Arslanbekov
28.06.2017
09:54:34

Максим
28.06.2017
09:57:47
да
Чистый Matchbox для доставки Ignition-конфига на ноду или на Terraform?

Vitaliy
28.06.2017
09:59:50

Google

Vitaliy
28.06.2017
10:00:25
но я не призываю делать также:) Это делалось во времена когда terraform там не было и назывался он по другому

Максим
28.06.2017
10:00:51
да
Как с сетью решили?
CNI + flannel(или другой overlay) или kubenet?

Vitaliy
28.06.2017
10:01:25
cni нету. flannel host-gw
Кто-нибудь запускает postgres в подах? Как рестартуете/останавливаете ?

Igor
28.06.2017
12:06:08
Запускаем cockroachdb в подах :)
драйвер postgres

Роман
28.06.2017
14:47:22
Что-то заинтересовался моментом... Если ставить куб "из коробки", если мастер упадёт, как будет вести себя кластер? Сайты будут открываться?

Paul
28.06.2017
14:53:05

Роман
28.06.2017
14:54:03
А как обычно поднимают упавший мастер? Там же токены нужны и прочее. Что почитать?

Mikhail
28.06.2017
14:54:46
Уточни, на счет упал. Т.е. сервер совсем умер? Или отключился, перезагрузился,включился?

Paul
28.06.2017
14:55:04
Уточним - он упал или он уничтожен?

Роман
28.06.2017
14:56:41
Например, питание от сервера отключили.
Ааа, хотя, после старта он же должен сам подняться?
Или, например, памяти не хватило и упал по сегфолту - маловероятно, но а вдруг!

Роман
28.06.2017
15:02:49

Mikhail
28.06.2017
15:03:49

Igor
28.06.2017
15:06:41

Роман
28.06.2017
15:07:23

Igor
28.06.2017
15:10:22

Paul
28.06.2017
15:22:02

Роман
28.06.2017
15:24:06

Paul
28.06.2017
15:25:16
тогда никаких проблем не будет вообще. создаем нового мастера, цепляем к существующему, удаляем старого из конфигов

Google

Admin
ERROR: S client not available

Ivan
28.06.2017
15:32:11
а кто нить бэкапит etcd и пробовал его ресторить?=)

Artem
28.06.2017
15:33:43
http://s6.pikabu.ru/post_img/2017/06/05/0/og_og_14966114892546496.jpg

Mikhail
28.06.2017
15:33:53

Paul
28.06.2017
15:40:37
там ничего сложного на самом деле

Ivan
28.06.2017
15:42:20
там ничего сложного на самом деле
там вроде 2 метода:
1. через snapshot
2. через backup.
Различие в версиях хранимых данных(v2/v3). У нас в etcd и те и те, вот и интересно стало, кто делал и как=)

Paul
28.06.2017
15:42:38
я через снапшоты
их можно вызывать вручную перед бэкапом или просто копировать папку со снапшотами, она автоматически пополняется

Andrew
28.06.2017
16:51:01
У кого-нибудь было так что при редеплое пода не обновился эндпоинт и как итог, сервис роутит на неактуальный айпишник?

M
28.06.2017
17:35:55
у кого к deployment привязаны rbd волумы?

Сергей
28.06.2017
19:51:20
HA мастер никто не отменял


Serg
29.06.2017
08:57:41
Привет.
Поискал по истории, не нашел похожих вопросов.
Есть офисный DNS сервер, работает на BIND, обслуживает внутренний домен dom.loc.
Хочется делегировать поддомен test.dom.loc в kubernetes, чтобы поды были доступны
по имени podnames.test.dom.loc.
Запустил kubernetes на 4-х виртуалках, сеть flannel 10.244.0.0/16
kubeadm init —apiserver-advertise-address=192.168.21.1 —service-dns-domain=test.dom.loc —pod-network-cidr=10.244.0.0/16
Создал в BIND glue record, IP взял из
kube-system kube-dns-3248477975-5119w 3/3 Running 28 2d 10.244.1.9
tcpdump вижу что glue record работает, и направляет запросы к kube-dns.
создаю pod
apiVersion: v1
kind: Pod
metadata:
name: busybox
namespace: default
spec:
containers:
- image: busybox
command:
- sleep
- "3600"
imagePullPolicy: IfNotPresent
name: busybox
restartPolicy: Always
pod запускается
default busybox 1/1 Running 22 21h 10.244.1.8
Ожидаю, что он будет резолвится по имени busybox.test.dom.loc, но этого не происходит.
1) Как зафиксировать IP kube-dns, так как после рестарта pod kube-dns у него меняется IP?
2) На каком этапе kubernetes создает A-record в DNS (pod,service,...)?
3) Как получить AXFR из kube-dns?
Натолкните плз, куда смотреть.


Maksim
29.06.2017
08:58:14
1) Создать сервис
2) Для каждой сущности
3) Незнаю)

Serg
29.06.2017
09:02:57
а я правильно понимаю, что если —service-dns-domain=test.dom.loc,
то pod должен резолвится, как busybox.test.dom.loc ?

Magistr
29.06.2017
09:20:49
хостнеймы контейнеров небудут ресолвиться, а вот адреса сервисов лоабдалансеров будут
сам вот недавно это исследовал
еще советуют сеть в бридж переключить, но я хз как это с фланнелем совместимо

Google

Pavel
29.06.2017
09:21:53
https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
Если вкратце, то создав сервис, а запись будет service-name.default.svc.test.dom.loc
Под получит а запись с ip адресом вначале. Чтобы сделать то что хочется нужно поиграться с аннотацией pod.beta.kubernetes.io/hostname
Судя по документации делает примерно то что нужно

Maksim
29.06.2017
09:25:43
поды то же резолвятся
имя под.pod.namespace.domain

Dmitry
29.06.2017
09:26:53

Maksim
29.06.2017
09:27:05
ну такое есть в коде )

Dmitry
29.06.2017
09:27:24
When enabled, pods are assigned a DNS A record in the form of pod-ip-address.my-namespace.pod.cluster.local

Maksim
29.06.2017
09:28:21
а ты про имя)
Тут каяюсь) только использовать и это смысла нет, под слишком смертны, и их ip/имя очень изменчевы

Magistr
29.06.2017
09:43:43
если там еще один сервис дискавери то норм, но всеравно изврат