Dmitry
все, прочел, спасибо)
имена сервисов, получается, лучше тоже передать через переменные среды, верно?
Dmitry
не конкретные IP, а названия сервисов, типа 'nats'
Anonymous
https://www.coursera.org/learn/cloud-networking/home/welcome - первый и единственный курс, за который заплатил на курсере. Минус - "преподы" халявят и много на самостоятельное изучение, сами они больше воду в видосах льют
Anonymous
@kay_rus а есть walkthrough по исходникам kubernetes?
kay
Anonymous
"Вот папка server - тут методы, которые отвечают за cluster-info. Мы заюзали шаблон проектирования директирование."
kay
что-что, прости?
Anonymous
В идеале - типа такого http://backbonejs.org/docs/backbone.html
kay
не встречал. мой метод прост. grep, vim, grep, vim
Anonymous
А где лежит код, который работает с etcd на тему "у нас кластер"
kay
но если что-то серьезное нужно анализировать, то голова начинает пухнуть, т.к. слишком много переменных нужно в голове держать. наверняка должны быть какие-то утилиты с автоматическими jump'ами по функциям, историей и т.п.
kay
но т.к. это не основной род моих занятий, то я просто vim-grep'аю
Anonymous
Ясно. Я всё хочу раскурить как там кластер работает. Решил через исходники пойти.
kay
кластер?
kay
что в твоем понимании кластер? api federation?
Anonymous
Две машины, для начала
Anonymous
Без вагранта и пре-подготовленных образов чтобы собрать две машины и они бы показали что две ноды доступно.
kay
запускается etcd (не важно где), затем apiserver на master. apiserver работает с etcd. на worker'ах запускается kubelet, в котором указано где живет apiserver и с каким паролем с ним нужно общаться. а дальше уже идет общение kubelet<->apiserver. etcd используется только как persistent хранилище.
kay
вот чего я точно не встречал и что пригодилось бы многим - как поднять безопасный kubernetes кластер
kay
по умолчанию kubernetes всё наружу выставляет как дешевая проститутка.
Sergei
kay
этого не достаточно
Sergei
там про admission мало информации
kay
admission - это более высокий уровень. я же говорю про низкоуровневые фишки.
Sergei
а про аутентификацию пользователей в сервисах и про аутентификацию сервисов друг у друга есть
kay
@spuzirev ^ опять не то. см. выше.
Sergei
куда уж ниже уровень?
Sergei
ниже сеть
kay
firewall
kay
и дефолтные настройки
Sergei
фаервол для контейнеров или для охраны хостов?
kay
я уже сутки голову ломаю над решением проблемы открытых портов на системах, где всего один публичный интерфейс
Sergei
второе не задача k8s
kay
а должно быть
Anonymous
@kay_rus thanks за описание
Sergei
kay
я подозревал, что многие будут утверждать что это не проблема k8s
kay
но практика показывает, что либо костыли городить -либо всё встроить в kube-proxy
kay
ну скажем есть vm или baremetal который подключен к интернету без firewall.
Sergei
ограничивать контейнеры друг от друга, ограничивать контейнеры от мира, от сервисов - это задача k8s. делать фаервол хоста - явно нет.
kay
и у него всего один интерфейс
kay
предположим k8s работает с дефолтными настройками.
kay
у нас есть мониторинг и все дела
kay
и тут получается, что наружу смотрит следующее:
* http://host:10252/configz
* http://host:10252/debug/pprof/heap
* http://host:10251/configz
* http://host:10251/debug/pprof/heap
* http://host:10255/metrics
* http://host:4194
* ну и самая мякотка https://host:10250 о которой я давно писал https://github.com/kayrus/kubelet-exploit
и вот дилемма. если какие-то сервисы безболезненно завернуть в firewall, то другие, например мониторинг, просто так не завернешь - тебе придется знать ip нод, на которых живет prometheus.
если 10250 повесить на localhost, и запилить ssh, то перестанут работать kubectl exec и kubectl logs.
и что самое страшное - о всех этих проблемах известно давно еще с 2015 года. и никто не хочет это фиксить. а если предложить решение, то оно превращается во флейм.
kay
потому наиболее правильное решение внедрить логику firewall'а в kube-proxy
kay
т.к. он работает с api и знает всё обо всех
kay
имхо конечно
Anonymous
"делать фаервол хоста - явно нет." - а best practices? Судя по @kay_rus best practices - идите в Google Cloud.
kay
вот вот. иногда мне кажется они специально ничего не предпринимают, чтобы клиентов у google cloud больше было
Anonymous
Вы устанавливайте поиграться, но если нужна сетка и секурити - welcome to наш cloud
M
Если поместить фронт в gke то как общаться с бэком?
там есть возможность создать впн канал к бэкенду?
M
Чтобы не ssl ить каждый запрос
Etki
Ты там можешь играться с узлами, как хочешь, но это не выглядит хорошей затеей в целом
Anonymous
а k8s не собираются завязываться на HEALTHCHECK самих образов?
yolkov
т.е.?
Etki
в докер-изображении можно указать свой healthcheck
Anonymous
есть хелсчеки в dockerfile
Anonymous
есть хелсчеки в k8s
Anonymous
нет ли где-то предложений завязаться в том числе и на хэлсчеки из коробки
kay
@agadelshin а кто мешает впилить из в /docker-intrypoint.sh?
kay
если что не так, то килляются дочерние процессы
Anonymous
я просто образы готовлю и вот, думаю, включать их или нет
kay
пишешь sh функцию:
healthz () {
# wait for app
sleep 10
curl localhost:123/healthz || kill 1
}
healthz &
/my/hippster/app/nodejs
Anonymous
ааааа, не, я ж совсем не про это
Anonymous
сам-то я могу что угодно впилить, меня в том числе и хэлсчеки кубернетиса устраивают
kay
Anonymous
к тому, что может быть есть issue на гитхабе или разговоры среди разработчиков об использовании HEALTHCHECK из образа
Anonymous
https://github.com/kubernetes/kubernetes/issues/30039
Anonymous
https://twitter.com/kelseyhightower/status/791732370785263616
Max
а космеческий weave-scope без своего лана не покажет подов?
Zon
Max
от только контейнеры показыват, ну и про хосты там всякое.
А вот элементов кубера нет
Zon
Не могу сказать, чтоб я его как-то специально настраивал.. kubectl create, kubectl expose и все работало..
kay
Запилил нотификации при аномалиях в логах
https://github.com/kayrus/elk-kubernetes
yolkov
👍
kay
А что так тихо? У всех всё хорошо?
SarDigital
хз, я кубернетес еще не разглядывал
SarDigital
оно вообще стоит того?