Dmitrii
baremetal? а имена резолвятся?
virtualbox. имена не резолвятся
Dmitrii
https://docs.projectcalico.org/v2.0/usage/configuration/ Смотрю на параметр DefaultEndpointToHostAction. Хочу уточнить у знающих людей: надо ли мне понимать его документацию как "calico по умолчанию блокирует весь трафик по направлению от пода к хосту"?
Nick
Коллеги, чтот затупил с k8s. Создал сервисы grafana и influxdb в namespace kube-system. Хочу в grafan’e прописать data source -> influxdb, но туплю по какому dns имени обратится.
Nick
Там что-то вроде influxdb.kube-system.svc.cluster.local
перепробовал уже 1001 вариант. Он же с мастера должен резолвится? Так да influxdb.kube-system.svc.cluster.local вроде в доке так пишут, но не резолвится
Nick
Хм а public hosted zone влияет на это? Хотя я и через паблик пробовал…
Konstntn
cluster.local - это по умолчанию. При развёртывании сетевого стека может быть изменено. Попробуй резолвить с хоста dig @kube-dns-ip svc.cluster.local
Konstntn
Что возвращает kubectl get --all-namespaces pod kube-dns -o yaml?
Nick
с этим проще) а то dig нигде не стоит)
Nick
kubectl get --all-namespaces pod -o yaml -l k8s-app=kube-dns вот так выдаст портянку. Из интересного spec: containers: - args: - --domain=cluster.local. - --dns-port=10053 - --config-dir=/kube-dns-config - --v=2
Nick
Что возвращает kubectl get --all-namespaces pod kube-dns -o yaml?
вся портянка https://gitlab.com/snippets/1717175
Konstntn
перепробовал уже 1001 вариант. Он же с мастера должен резолвится? Так да influxdb.kube-system.svc.cluster.local вроде в доке так пишут, но не резолвится
С хоста может не резолвится так как у него свои DNS. Проверять надо из подов: kubectl exec -it pod-name -- bash (Работать будут только те, которые не из одного go файла состоят)
Nick
я с мастера проверяю или тоже может не канать?
Konstntn
cat /etc/resolv.conf на мастере
Nick
domain us-east-2.compute.internal search us-east-2.compute.internal nameserver 172.20.0.2
Konstntn
Не канает. Та команда dig, что я кинул выше, будет работать. Надо переопределять ip dns-серверов. Тогда будет работать
Nick
хм…как-то это явно из доков не вычитал, что ns работаето только pod<->pod. Думал оно прозрачно для всего кластера. Ок, спс. Буду тыкаться изнутри пода
Nick
Да и там не уверен, что пингует. Но если напрямую к порту подключаться, работает
он же резолв сразу сделает и ip покажет, а пинги не пройдут да. Там ICMP везде закрыт.
Nick
@kgubaev Посмотрел resolv.conf на нодах, такой же как на мастере
Nick
Что в принципе по моей идеи)) должно быть правильно, чтобы они друг друга по dns видели
Nick
но это никак не помогло проблеме =/ х3 чет не то с DNS внутри чтоле…
Nick
в графану же через прокси заходит - значит как-то оно работает
Konstntn
Если из подов резолвится, то не в DNS проблема
Nick
вообще в resolv.conf этот адрес 172.20.0.2 не пойму откуда. Может из-за этого проблема.
Konstntn
Это Amazon прописывает. В подах другие dns. Они не имеют отношения к dns хоста
Nick
Дык в подах в resolv.conf тоже самое
Konstntn
Понял. У тебя --net=host используется. Тогда он не изолирует сетевой стек, а запускает под на стеке хоста
Nick
это где такое?
Konstntn
spec: hostNetwork: true https://github.com/kubernetes/kubernetes/issues/56934
Nick
Для этого этот параметр надо явно указать при деплойменте сервиса.
Konstntn
Для этого этот параметр надо явно указать при деплойменте сервиса.
Тот под, из-под котоорого тестируешь, у него прописан этот параметр?
Nick
я такое специально не прописывал, но сейчас проверю
Nick
Нет. Конфиг нода минимальный.
Nick
Вроде кластер то пустой, только сделаный и конфиги все дефолтные. Поидеи графану каждые первый ставит…
Konstntn
Дык в подах в resolv.conf тоже самое
Должно быть что-то такое $ kubectl exec -it gitlab-gitlab-runner-7584cf57fc-f94ks -- cat /etc/resolv.conf nameserver 10.96.0.10a search default.svc.cluster.local svc.cluster.local cluster.local lan options ndots:5
Nick
сделал несколько тестовых POD в дефолтом namespace - они работают. Может с настройкой Service или Deployment что-то не то =/
Nick
@kgubaev удалил и перенес все в новый namespace. Там все заработало в виде monitoring-influxdb.monitoring.svc
Nick
Не все конечно))) но графана бд от influxdb по dns подцепила)
Nick
Еще заметил багу раз через раз при выполенении kubectl exec -it busybox — bash вылетает по таймауту с “ read: connection reset by peer”
Konstntn
Еще заметил багу раз через раз при выполенении kubectl exec -it busybox — bash вылетает по таймауту с “ read: connection reset by peer”
Под не перезапускается циклически? Он может запускаться, и, если не находит другие поды, завершаться с ошибкой
Nick
Вот не знаю. Вроде в дашборде перезагрузок нет. =/
Silver 👻
kubectl get pods и посмотри колонку restarts
Silver 👻
Всем привет
Nick
Да я понимаю. Два рестарта на 20-30 ошибок - не похоже что связано.
Nick
Если вдруг кто логи чата читает. Для помощь в разборках с DNS можно почитать вот такую доку https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/
Denis
Добрый день! Наверное много раз уже данный вопрос поднимался в этом чате... Подскажите, чем мониторите кластер k8s ? Помимо prometheus operator, конечно
Denis
мылру как минимум в два раза дороже AWS. они там осоловеле
Иследования были проведены для РФ сегмента
Andor
Некропостеры
Dmitrii
Вопрос. Изнутри контейнера не могу установить внешнего соединения никуда. Стоит calico. Pod контейнера в неймспейсе default. Куда смотреть, подскажите пожалуйста. В документации кубера сказано, что по умолчанию поды должны принимать любые входящие и мочь создавать любые исходящие соединения. Почему у меня это не так — очень любопытно. K8s кстати 1.10.
Разобрался. Оказывается, у меня Calico на слейвовых нодах не запустилась, а я не заметил. Не запустилась потому, что неверно определился внешний ip-адрес (использовался внутренний адрес vbox для связи с хост-машиной, а он у всех виртуалок одинаковый).
Silver 👻
100% я не первый, но все же - что использовать в качестве ingress лоадбалансера (прокси) на своем железе?
Silver 👻
Просто proxy_pass на нодепорт?
Stanislav
Нет, nginx-ingress
Stanislav
ставить надо
Silver 👻
Хм... Почему бы и не nginx, как простой proxy_pass... Попробую. Спасибо за мысль.
Silver 👻
У меня внутри есть nginx, в котором есть кучка логики. Нет смысла городить огород из ingress и правил. Все уже внутри. По идее должно получиться нормально.
Andor
очень прикольно читать про "простой proxy_pass" имея в соседней вкладке браузера открытый шаблон конфига nginx-ingress
Silver 👻
Это для дева в офисе. Тут не критично использовать узкозаточенное.
Andor
Что "это"?
科斯
я немного не понял причем тут ингресс. вопрос же про использование nginx в роли внешнего балансировщика при service.type=LoadBalancer, так ведь? просто ингресс это ингресс, а балансировщик он немного снаружи и к ингрессу непонятно каким боком
科斯
ну и да, насколько я помню использование в роли LoadBalancer своего nginx не предусмотрено, оно только с облаками дружит. но можно свой nginx поставить перед ингрессом для того чтобы не отваливался ингресс при смене айпишника. это наверняка можно провернуть
Silver 👻
Вот я про свой Nginx и говорю в связке с NodePort. Должно помочь. В проде будет внешний LB.
Stanislav
Кто знает как в Helm подсасывать переменные из bash, за исключением передавать их как аргументы? Чтото типа {{ env $ZALUPA }}
Anonymous
{{.Env.ZALUPA}} так вроде, но это неточно
Anonymous
или так {{.Values.env.ZALUPA}}
Stanislav
Ни то ни другое, ни env ни Env, не работает(
Vladimir
или так {{.Values.env.ZALUPA}}
так он будит см из файла values.yaml
科斯
Вот я про свой Nginx и говорю в связке с NodePort. Должно помочь. В проде будет внешний LB.
да, это годная тема. ну указать node port и его же в конфиге нгинкса. по идее этого достаточно
科斯
{{.Env.ZALUPA}} так вроде, но это неточно
не могу промолчать и не сказать что это не так чтобы правильно. лучше —set, ну или из файликов добавлять, тоже вполне удобно. а по теме нет, не использовал, не знаю
Anonymous
.Values.ContainerSpec.Env.ZALUPA
Stanislav
.Values.ContainerSpec.Env.ZALUPA
Это, насколько я понимаю переменная внутри контейнера, а мне нужна переменная окружения откуда я запускаю helm install.