Anonymous
не, мне интересно, как это делать лучше
Maxim
что делать?
Anonymous
я вот настроил кубернетис, у него есть свой днс и мне интересно пойти на mariadb:3306
Anonymous
со своего компа
Anonymous
я не в прод сети
Anonymous
днс наружу выставлять наверное не стоит
Maxim
kubectl port-forward --namespace=<где-там-мария> <pod> 3306:3306
Maxim
и ходи на 127.0.0.1:3306
Anonymous
круто
Maxim
там твоя мария тебя ждет
Anonymous
спасибо, надо читать доку дальше, сходу ничерта не понятно, как это готовить
Maxim
но тут порт прокидывается не к сервису, а к конкретному поду
Anonymous
ну я понимаю
Anonymous
если у меня там 4 марии, куда-то я попаду
kay
в одном поде 4 машки?
Maxim
нене
Maxim
ты не понимаешь
Anonymous
жалко)
Maxim
четыре пода с марией у тебя в одном сервисе скорее всего
Maxim
ну короче, покажи вывод kubectl get po --namespace=<где-там-мария>
Anonymous
хм
Maxim
в одном поде 4 машки?
failover уровня "бог" :D
Anonymous
я свой кластер разобрал так что могу только на пальцах
Maxim
ok, я на своем покажу
Maxim
смотри
Maxim
$ kubectl get po --namespace=apps|grep preview preview-1801348260-az0tc 1/1 Running 4 3d preview-1801348260-d8z7f 1/1 Running 5 7d
Maxim
вот у меня два пода с preview
Anonymous
ага
Maxim
они объединяются одним сервисом:
Maxim
$ kubectl get svc --namespace=apps preview NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE preview 10.222.118.166 <none> 8081/TCP 90d
Maxim
вот запортфорфардить сервис я не могу
Anonymous
а только к конкретному поду
Maxim
но могу сделать так: $ kubectl port-forward --namespace=apps preview-1801348260-az0tc 8081:8081 Forwarding from 127.0.0.1:8081 -> 8081 Forwarding from [::1]:8081 -> 8081
Maxim
$ curl -I 127.0.0.1:8081 HTTP/1.1 404 Not Found Date: Thu, 08 Sep 2016 15:29:24 GMT Connection: keep-alive
kay
кстати. port-forwarding не всегда работает. https://github.com/kubernetes/kubernetes/issues/19765
Maxim
ну там на / никто не отвечает, поэтому 404
Anonymous
ясно, я думал раз у пода один volume внизу, то в под размещать удобно то, что идет за одними и теми же данными
Maxim
но ответ-то вот он, так или иначе
Anonymous
ага, вижу
Maxim
кстати. port-forwarding не всегда работает. https://github.com/kubernetes/kubernetes/issues/19765
ага, я видел но там либо socat'a нет, либо nsenter'a
Maxim
или просто прав не хватает
Maxim
k8s не виноват ;)
Timur
Вернее не так. У тебя сеть подов доступна с внешнего nginx ?
Maxim
ну иначе он к ним не попадет
kay
https://github.com/kubernetes/contrib/tree/master/ingress/controllers/nginx/examples/tcp
Maxim
?
kay
как вариант проброски сервиса наружу
Maxim
а, угу
Anonymous
у нас тут в соседнем чатике разговор состоялся, если вкратце: а есть ли возможность узнать адрес ноды из пода? переменные окружения там или еще что юзкейс: подключиться к docker host из pod и запилить свои контейнеры
Maxim
ну положи на всех нодах адреса в файл заранее известный
Maxim
и монтируй его в подах
Maxim
не вижу проблемы
Anonymous
а без телодвижений дополнтельных никак?
Timur
Докерхост можно в конфиге докера прописать. Соответственно заранее известен
kay
адрес ноды из пода?
kay
если есть сервер в локальной сети, который показывает адрес, то обычный curl на сервис.
kay
если используется дефолтный деплой kubelet без ssh ключей, то curl -k на первый IP %сети_пода%:10250 и делай с нодой что хочешь
kay
хоть команду в соседнем поде выполняй
Ivan
минутка рекламы… Если вдруг приспичило поковыряться в исходниках k8s и что-то подправить, а из железа под рукой дедушкин валенок - вот эта штука очень поможет https://github.com/sttts/kubernetes-dind-cluster
Ivan
(насчёт рекламы, конечно, шутка)
kay
> requires docker and docker-compose docker-compose не нужно
Ivan
хм, ну это смотря для чего. Данная вещь гораздо лучше hack/local-up-cluster.sh в том плане, что умеет запускать *многонодовый* кластер
Ivan
проходит conformance tests
Anonymous
Ivan
если что, DIND используется для разработки самого Docker'а
kay
а в чем смысл проекта? мне чтобы собрать бинарники из исходников требуется минут 8 и 8gb оперативы.
Ivan
запустить тестовый кластер на несколько нод, например, на маке с 8 Gb RAM
Ivan
за минуту
Anonymous
ну вот dind например активно используется чтобы билдить контейнеры внутри дженкинсовских сборок (которые сами проходят в контейнерах), хотя и считается плохой практикой )
kay
так проект для разработки или поиграться с k8s?
Ivan
прежде всего для разработки
Ivan
разработки *самого* k8s
Ivan
ну вот скажем запилил я Pod Affinity / AntiAffinity for DaemonSets https://github.com/kubernetes/kubernetes/pull/31136 Надо несколько нод для тестирования. Запускать GCE кластер в падлу, запускать vagrant-кластер и ждать до морковкина заговенья ещё более в падлу, hack/local-up-cluster.sh даёт только одну ноду
Ivan
я так полагаю, что, в целом, могут быть в жизни случаи, когда надо что-то в исходниках подправить и проверить
Maxim
Крутая штука
Maxim
Спасибо
Stanislav
Спасибо за ссылку
Anonymous
а вопрос по etcd здесь не будет офтопом?