Andrey
если нужна, то нужно уметь этот внешний ip двигать при падении узла, этим ingress не занимается
G72K
Тпкже У многих в сетях есть железные балансироващики
𝚔𝚟𝚊𝚙𝚜
А я все romana-vip для таких целей ненарадуюсь :)
Andrey
Можно в DNS записать несколько IP
у меня дежавю, мне кажется это уже обсуждалось :)
Alexander
а большой кластер?
Нет меньше 10 воркеров
𝚔𝚟𝚊𝚙𝚜
тогда, имхо, romana-vip - самое простое решение. но нужна сеть тоже romana
𝚔𝚟𝚊𝚙𝚜
но по сути обычным VRRP можно обойтись
𝚔𝚟𝚊𝚙𝚜
только романа будет двигать айпишник ближе к сервису - а vrrp не будет
Andrey
тогда, имхо, romana-vip - самое простое решение. но нужна сеть тоже romana
http://romana.io/how/romana_vips/ - они metallb под капотом используют?
𝚔𝚟𝚊𝚙𝚜
нет, metallb поддерживается но не обязателен
Andrey
всё время путаюсь в этих терминах l2 l3
Andrey
А я все romana-vip для таких целей ненарадуюсь :)
спасибо, запишу себе ваш метод в копилку
G72K
у меня дежавю, мне кажется это уже обсуждалось :)
Это вообще тема этого года. Видимо kubespray дошел до состояния что просто работает и вопросов по установке кластера почти не осталось. Зато появились "ну,есть у меня кластер, что дальше то?" :)
Ivan
Дяди, я тут на кубер напал, а он не поддаётся. Поможите. Решил пойти по хардкору и понять, что там внутри хоть как-то с https://github.com/kelseyhightower/kubernetes-the-hard-way/ Но на сетях встал. https://github.com/kelseyhightower/kubernetes-the-hard-way/blob/master/docs/11-pod-network-routes.md#routes Разница в том, что в гайде GCE, а у меня baremetal, flat network 192.168.0.0/24 скажем. А там он какие-то маршруты на виртуальные сети прямо в VPC пишет и я не понимаю как это в обычной сети разложить.
Andrey
гайд не GCE, он и для baremetal пойдёт
𝚔𝚟𝚊𝚙𝚜
всё время путаюсь в этих терминах l2 l3
для romana-vip требуется l2 сеть, т.к. он тупо вывешивает external-ip на физический интерфейс, на ноде что ближе к сервису, никаких роутов он не прописывает
Ivan
гайд не GCE, он и для baremetal пойдёт
Гайд строго GCE и это автором гайда не раз в ишшуях упоминается. Вопрос в том, чем заменить в обычной не-GCE сети команды из второй ссылки.
Alexander
Ребята ещё проблемка, есть gitlab и интеграция с k8s, что принципиально даёт helm для деплоя или можно обойтись без него?
Andrey
"While GCP is used for basic infrastructure requirements the lessons learned in this tutorial can be applied to other platforms"
Andrey
тут как-то не любят helm. хотя альтернатив ему я не вижу.
Etki
у меня дежавю, мне кажется это уже обсуждалось :)
да если присмотреться - мы тут вообще каждый день по кругу ходим
Andrey
Ребята ещё проблемка, есть gitlab и интеграция с k8s, что принципиально даёт helm для деплоя или можно обойтись без него?
обойтись можно. helm это по сути шаблонизатор для yaml файлов с ресурсами. helm ценен тем, что под него куча chart'ов для разного софта написана
Ivan
"While GCP is used for basic infrastructure requirements the lessons learned in this tutorial can be applied to other platforms"
Ну вот я и не могу догнать какой lesson я должен learn из этого примера :)
Alexander
обойтись можно. helm это по сути шаблонизатор для yaml файлов с ресурсами. helm ценен тем, что под него куча chart'ов для разного софта написана
Понятно, просто в пределах моего предприятия это врядли необходимость, т.к софт самописанный крутится в основном :) Но палкой потыкать хочется....
Alexander
:)
𝚔𝚟𝚊𝚙𝚜
Народ, а роли для чего-то конкретного придумали или это просто label который через kubectl get nodes видно?
Andrey
Ну вот я и не могу догнать какой lesson я должен learn из этого примера :)
ну надо роутинг настроить. Просто у вас это по другому будет
Andrey
Которые почти всегда неработают
не имел дел с хелмом (то есть с чартами) пока, не могу ничем возразить :)
Alexander
Хочется сделать каконично, но обычно это путь из костылей и абстракций, что довольно раздражает
Andrey
да, k8s бесит. Я первый раз недели две втыкал
Ivan
ну надо роутинг настроить. Просто у вас это по другому будет
Класс, я это понял. Можете подсказать как именно? Потому что я не понимаю как сделать так, чтобы в LAN 192.168.0.0/24 вдруг начали резолвится маршруты для подсети 10.200.0.0/16. Это же виртуальная сеть - мне что vlan'ы настраивать?
Alexander
да, k8s бесит. Я первый раз недели две втыкал
Особенно yaml портянки, но гитлаб не отстаёт со своим CI, там тоже ад и израиль.
Etki
С ямлом-то что не так? Наоборот очень клево и позволяет без особых проблем автоматизирвоать генерацию ресурсов
G72K
Понятно, просто в пределах моего предприятия это врядли необходимость, т.к софт самописанный крутится в основном :) Но палкой потыкать хочется....
"поковать" внутренние приложения для куба часто надо еще более изощренно, чем какой-никакой опенсорс, так что требования к инструменту еще выше
G72K
С ямлом-то что не так? Наоборот очень клево и позволяет без особых проблем автоматизирвоать генерацию ресурсов
Ямл как раз плохо генерируется/шаблонизируется, но можно json который тоже ямл
Etki
Ямл как раз плохо генерируется/шаблонизируется, но можно json который тоже ямл
дак в том и дело, что ямл шаблонизировать вообще не нужно, его любой язык может выплюнуть наружу
Alexander
Ну скажем спасибо хоть что не XML :)
Alexander
Вот например есть сервер k8s-master 192.168.1.1, есть воркеры, есть запушенный сервис и два инсенса, на сервисе nodePot : 30000, я могу из вне зайти на 192.168.1.1:3000 и всё ОК, можно ли к сервису прикрутить другой ip, ну например 192.168.1.200?
Alexander
Сори, я просто нуб пока:)
Andrew
Жаль Helm не язык
Если очень надо - можно тем же питоном генерить все эти ямлики, проблема что ли?
𝚔𝚟𝚊𝚙𝚜
или bash'ем 😊
Andrew
Ну башем жестковато ))
𝚔𝚟𝚊𝚙𝚜
да норм все, для простых целей его вполне хватает :) https://github.com/kvaps/kube-lustre/blob/master/dockerfiles/kube-lustre-configurator/drbd.yaml
Alexander
Ау :)
𝚔𝚟𝚊𝚙𝚜
𝚔𝚟𝚊𝚙𝚜
о том как повесить этот IP на интерфейс одной из нод - это то о чем нужно позаботиться тебе
𝚔𝚟𝚊𝚙𝚜
кстати прикольная штука kube-router - он все external-ip и cluster-ip вешает на специальный dummy-интерфейс, в итоге, если есть правила роутинга, то все эти айпишники оказываеются доступны и снаружи кластера
𝚔𝚟𝚊𝚙𝚜
но когда на запрос arp who-has ты получаешь 100500 ответов, по одному от каждой ноды - для меня показалось дикостью)
𝚔𝚟𝚊𝚙𝚜
не зря оно еще альфа, но я уверен: за kube-router будующее...
Alexey
А External endpoints, что это?
это только в GCE
Eugene
Пытаюсь создать ридонли кластервайд аккаунт для дашборда: kubectl -n kube-system create serviceaccount observer kubectl create clusterrolebinding observer --clusterrole=view --serviceaccount=kube-system:observer kubectl -n kube-system describe secret observer-token-ljsdw захожу с полученным токеном и никуда нет доступа. Таким же образом созданный админ все видит и имеет доступы соответствующие привязанной к нему кластерной роли - cluster-admin. вот ямлы обеих clusterrolebinding - https://pastebin.com/xbnEPvwr
Andrey
сравнивайте роли
Eugene
ну учитывая, что роль view также встроенная как и админ, то я не знаю что там еще смотреть, смотрел, вроде должна читать все. Я ее не менял
Eugene
вот она https://pastebin.com/riP6i76p
Andrey
попробуйте с этим аккаунтом kubectl get pods какой-нибудь сделать
Eugene
clusterrole=cluster-status вероятно, view это Role, а не ClusterRole
чтобы запостить ее я вводил get clusterrole, когда создавал ролебиндинг тоже писал ключ —clusterrole=view, ну и: kind: ClusterRole
Eugene
может в самой роли что-то, буду с нуля писать тестовую, жаль думал просто заюзать существующую
Vadim
может в самой роли что-то, буду с нуля писать тестовую, жаль думал просто заюзать существующую
Почитайте о разнице view и cluster-reader / cluster-status - kubectl get clusterroles cluster-reader cluster-status view -o yaml и выберите подходящую
Eugene
Почитайте о разнице view и cluster-reader / cluster-status - kubectl get clusterroles cluster-reader cluster-status view -o yaml и выберите подходящую
у меня таких ролей нет вообще: #kubectl get clusterroles cluster-reader Error from server (NotFound): clusterroles.rbac.authorization.k8s.io "cluster-reader" not found
Eugene
все что есть https://pastebin.com/T64bk6Wn
Eugene
все-таки проблема не в самом кубе, а в настройке дашборда. Из kubectl c тем же токеном получает ровно то, что ему разрешено в конфиге. А дашборд ругается на права.
Eugene
2018/04/05 12:25:40 Getting list of namespaces 2018/04/05 12:25:40 Non-critical error occurred during resource retrieval: namespaces is forbidden: User "system:serviceaccount:kube-system:reader-tester" cannot list namespaces at the cluster scope
Eugene
и ведь правильное имя сервисаккаунта пишет....
Aleksey
Чятик, подскажи, что могло пойти не так? Есть стейтфул сет со scylladb. Хипстер и встроенный хендлер сциллы отдают 0 по метрике cpu utilisation, хотя топ показывает значительную нагрузку. Сцилла запущена от рута. Почему так?
Vadim
все-таки проблема не в самом кубе, а в настройке дашборда. Из kubectl c тем же токеном получает ровно то, что ему разрешено в конфиге. А дашборд ругается на права.
потому что у роли view нет пермишшена получать список namespace'ов. Нужно писать свою кластерную роль, раз нет дефолтной