Maksim
смотри память. oom killer просто так на тропу войны не выходит
Maksim
gfp_mask это что?
Volodymyr
oom-killer это когда шото выжрало всю память
Rinat
это да
Volodymyr
Out Of Memory Killer
Rinat
хотя памяти много
Rinat
я знаю что это за зверь
Rinat
но гы cgroups не делал
Maksim
Ну дык etcd вызвал oom killer на gfp_mask потому что gfp_mask выжрал всю память
Maksim
вообщем что-то там с памятью
Maksim
gfp_mask это маски показывающие какую память можно аллоцировать
Maksim
Так что нет не полно у тебя там памяти
Rinat
6 гб, до этого работало на 3.5
Maksim
Однако по маске он не смог получить память
Rinat
докер может сдерживать по идее
Maksim
а какая там маска была?
Rinat
etcd invoked oom-killer: gfp_mask=0x14000c0(GFP_KERNEL), nodemask=(null), order=0, oom_score_adj=0 Nov 15 09:55:07 k8s-node3 kernel: [808082.643665] etcd cpuset=f85929b8db05ab385d230b8bc7f947543d061ab8d7606c773f2424a5fa411f5e mems_allowed=0 Nov 15 09:55:07 k8s-node3 kernel: [808082.643670] CPU: 0 PID: 68517 Comm: etcd Not tainted 4.11.0-1013-azure #13-Ubuntu Nov 15 09:55:07 k8s-node3 kernel: [808082.643671] Hardware name: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS 090006 01/06/2017 Nov 15 09:55:07 k8s-node3 kernel: [808082.643672] Call Trace: Nov 15 09:55:07 k8s-node3 kernel: [808082.643679] dump_stack+0x63/0x90 Nov 15 09:55:07 k8s-node3 kernel: [808082.643682] dump_header+0x97/0x21a Nov 15 09:55:07 k8s-node3 kernel: [808082.643685] ? mem_cgroup_scan_tasks+0xc4/0xf0 Nov 15 09:55:07 k8s-node3 kernel: [808082.643689] oom_kill_process+0x219/0x3e0 Nov 15 09:55:07 k8s-node3 kernel: [808082.643690] out_of_memory+0x11d/0x4b0 Nov 15 09:55:07 k8s-node3 kernel: [808082.643692] mem_cgroup_out_of_memory+0x4b/0x80 Nov 15 09:55:07 k8s-node3 kernel: [808082.643693] mem_cgroup_oom_synchronize+0x325/0x340 Nov 15 09:55:07 k8s-node3 kernel: [808082.643695] ? memory_high_write+0xe0/0xe0 Nov 15 09:55:07 k8s-node3 kernel: [808082.643696] pagefault_out_of_memory+0x36/0x80 Nov 15 09:55:07 k8s-node3 kernel: [808082.643700] mm_fault_error+0x8f/0x190 Nov 15 09:55:07 k8s-node3 kernel: [808082.643703] ? handle_mm_fault+0xd1/0x250 Nov 15 09:55:07 k8s-node3 kernel: [808082.643705] __do_page_fault+0x4b2/0x4e0 Nov 15 09:55:07 k8s-node3 kernel: [808082.643707] do_page_fault+0x22/0x30 Nov 15 09:55:07 k8s-node3 kernel: [808082.643711] page_fault+0x28/0x30 Nov 15 09:55:07 k8s-node3 kernel: [808082.643712] RIP: 0033:0x7ca2cf
Maksim
https://github.com/kubernetes-incubator/kubespray/issues/1936
Maksim
Есть мнение что твоя бага связана с libguest fs
Maksim
и это бага не твоя, а AZura
Ilya
привет всем, помогите с моей болью плиз: создал 4 вм на esxi, установил centos, провел первоначальную подготовку хостов, пытаюсь через плейбкуки kubespray установить k8s - 1 мастер, 3 ноды, flannel. Плейбук завершается без ошибок, кластер не собирается. kubectl get nodes - показывает только master.
Sergey
а так у вас что-то не работает
Sergey
с вас 100500 доларовевро
bebebe
как запускали?
Ilya
запускал с отдельного хоста, через ansible-playbook ,указав свой инвентори, config yaml , и добавив переменную kube_network_plugin : flannel
bebebe
покажите последние 20 строк (на пастебин) того что выдал ansible-playbook
Oleg
скажите свое мнение - имеет смысл смотреть на openshift origin?
Oleg
или оно того не стоит и лучше остаться с чистым кубером
Maksim
скажите свое мнение - имеет смысл смотреть на openshift origin?
Ну если учесть что OS это надстройка над кубером....
Oleg
ну да. настройки должны что-то упрощать. Или гарантировать. Например интеграционное качество
Oleg
Так вот вопрос - стоит?
Maksim
ну помнится в 2й версии (сейчас 3я, что там хз) они делали норм RBAC раньше кубера
Maksim
Плюс имели инстурменты сборки контейнеров...
Maksim
Плюс дублирововали функционал helm
Oleg
А кто сам использует OpenShift Origin?
bebebe
https://pastebin.com/raw/V4HjvaqX
а вы inventory как генерировали? руками или чере contrib/inventory_builder/invenory.py?
Ilya
руками
bebebe
это фиско, Илья, покажите его на pastebin
Sergei
Господа, кто-нибудь использует ингресс от nginxinc вместо кубернетесовского?
Andrii
Здравствуйте, подскажите, пожалуйста. Я создал HorizontalPodAutoscaler указав ему минимальное, максималное количество реплик. Когда максимальное количество реплик уже достигнуто, а метрика не пришла в нормальное состояние autoscaler переодически создает доколнительные поды, но так как максимальное количество реплик уже достигнуто - сразу же убивает их. Что в таком случае делать?
Andrii
Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal SuccessfulRescale 5m (x162 over 18h) horizontal-pod-autoscaler New size: 24; reason: cpu resource above target Normal SuccessfulRescale 4m (x165 over 1d) horizontal-pod-autoscaler New size: 12; reason: Current number of replicas above Spec.MaxReplicas
bebebe
https://pastebin.com/raw/qJpQtSJW
сделайте так на той ноде, где запускается kubespray pip install configparser netaddr cd /path/to/kubespray/dir python contrib/inventory_builder/inventory.py 192.168.192.160 192.168.192.161 192.168.192.162 192.168.192.164 vim inventory.cfg #добавить нужные переменные ansible-playbook -i ./inventory.cfg .....
Khramov
Просил кто-то написать опыт использование ipvs в kube-proxy  в кубе  1.8 Очень фигово работает. После 20 сервисов половина правил недобавляется нормально, у них отсутствует пункт назначения. cpu стало пермаментно грузиться на 40%. Причем если вручную добавлять правила, то все ок. Ощущение что kube-proxy  для ipvs вообще не пригоден для использования. Понятно что это еще альфа, но хотябы минимальную работоспособность должен же демонстрировать.
Anatoliy
На 3 железки имеет смысл 2 мастера создавать? При варианте что в дальнейшем ноды могут еще добавляться и на мастерах тоже будут запускаться поды?
Sergei
сейчас тестим
буду благодарен за фидбек, ежели таковой получите
Sergei
Я использую
а есть история успеха победы kube-lego с ним?
Aleksandr
Нет, серты покупные юзаю
𝕲𝖎𝖗𝖆𝖋𝖋𝖊
Всем привет. А какие API-gateway кто использует?
𝕲𝖎𝖗𝖆𝖋𝖋𝖊
Я сегодня зачитался istio.io и получается с ним API gateway вообще не нужен, ибо все роуты можно в кубернетесе конфигурировать. Но вот как быть с end-user авторизацией...
𝕲𝖎𝖗𝖆𝖋𝖋𝖊
Забыл про правила группы. #whois я работаю в стартапе, занимающимся банкингом(он пока ещё на супер ранней стадии, поэтому пока название опущу). Я специалист в Backend на Go и c++ с обширными знаниями Python с обширными интересами в DevOps и некоторым опытом в построении архитектуры. Мог бы быть полезен... сложно сказать, могу принимать участие в обсуждениях. Чем сообщество мне интересно - я имею возможность разрабатывать инфраструктуру нашего стартапа, она построена на k8s и мы только начали, поэтому хочу иметь сообщество, к которому можно обратиться за советом. Откуда я - из Берлина. Как узнал про группу - погуглил
Anatoliy
А может кто простым языком пояснить, вот я запустил registry в replicationController, но там надо пробросить порт и сделать обращение, как я вижу - для этого надо было делать через Deployments? И для чего тогда нужны rc ?
Etki
deployment - это надстройка над RC, позволяющая делать всякие штуки типа rolling update
Etki
т.е. при создании деплоймента все равно будет создан RC, но управление этим RC лежит на деплойменте
Anatoliy
угу, т.е. если я хочу что бы к моему приложению можно было достучаться по порту извне, то надо создать именно деплоймент и прокинуть к нему через сервис порт?
Etki
не обязательно, это позволит сделать и простой сервис с NodePort
Anatoliy
угу, вот только мне надо сказать куда обращаться внутри сети, вот это как сделать?
Etki
при создании сервиса с помощью селекторов обозначить те поды, на которые должен идти трафик
Anatoliy
я хочу подвесить просто фронтенд к docker registry, но там для него надо указать IP или адрес по которому он будет искать этот registry
Etki
сервис сам будет обновляться по мере пересоздания подов
Anatoliy
сервис да, но сам сервис ведь должен понимать куда стучаться? вот под имеет имя registry-jhdvjy, а потом будет ...-hlihss, но rc имеет имя registry. т.е. по идее надо указывать именно его?
Anatoliy
а от него уже пойдет обращение к подам?
Anatoliy
просто в деплойменте выдается IP по которому к нему можно обратиться внутри сети, а вот как обратиться к поду что создал rc - я просто не понимаю пока
𝕲𝖎𝖗𝖆𝖋𝖋𝖊
Думаю selector и по Label выбирать поды
Etki
сервис не обращается к подам по имени, для него важен селектор по лейблам
Etki
любому поду выдается айпи внутри сети, деплоймент на это никак не влияет
Anatoliy
угу... понятно, спасибо за наводящий пинок, пошел дальше тогда смотреть как оно там устроено
Anatoliy
эм... прошу прощения:) но ведь это если по лейблам открыть порт наружу, так? а если мне надо по IP или по адресу обратиться внутри пода? у него есть переменная ENV_DOCKER_REGISTRY_HOST в которую надо прописать куда стучаться для обращения к registry. вот как этот адрес тогда можно получить?
Etki
где у вас развернут кластер?
Anatoliy
сейчас это просто тестовая одна машинка, железный сервер
𝕲𝖎𝖗𝖆𝖋𝖋𝖊
Если registry снаружи то это уже egress
Etki
если в GKE, то проще всего создать нативный балансировщик и его айпишник украсть, либо засунуть этот же айпишник в обычный днс и дать имя