Volodymyr
ну так про обратное говорили, что там proxy_pass на https://kubernetes.github.io с https://kubernetes.io
Volodymyr
там бы был редирект луп
Aleksandr
всё правильно, там в конфиге указано location / { ... proxy_set_header Host kubernetes.io; proxy_pass https://kubernetes.github.io;
Роман
нельзя маунтиить в файл
volumeMounts: mountPath: /var/www/config/file.yml subPath: file.yml name: php ... volumes: - name: php configmap: name: file-yaml
Роман
Версия 1.7
Maksim
Версия 1.7
Я в 1.5 живу))
Anonymous
Crypto tradind - уникальный канал, который научит вас трейдингу на криптовалюте. @Cryptootrading
Роман
А как работает kube-dns? Приложения каждый раз отправляют запрос на резолв или где-то это кэшируется? Постоянная ошибка, что приложение не может зарезолвить сервис postgres, однако, запущено уже 24 инстанса с kube-dns...
Denis
А сервис настроен точно?
Роман
А сервис настроен точно?
Работает. Но время от времени в логах эта ошибка. При больших нагрузках появляется с постоянной периодичностью.
Denis
Так может надо заскейлить днс серверы?
G72K
так и так 24 уже
G72K
хм, откуда 24 инстанса тогда? там имеется Horizontal pod autoscaler , который стартует новые поды если CPU слишком высокий, это он вам 24 запустил?
Роман
хм, откуда 24 инстанса тогда? там имеется Horizontal pod autoscaler , который стартует новые поды если CPU слишком высокий, это он вам 24 запустил?
Да. Там автоскэйлер. Я сам его настроил на столько. Постепенно увеличивал. С ростом инстансов ошибок с резолвом становилось меньше.
G72K
а CPU загружен в kube-dns?
G72K
может у вас ноды перегружены по CPU? у kube-dns requests.cpu по умолчанию что-то вроде 100m (0.1 CPU), что не так важно если нода свободна, но если CPU в дефиците, то этот параметр превращается по сути в weight
G72K
и если рядом есть поды с requests.cpu == 2, то kube-dns остаются объедки :)
Yury
Кто-нибудь ставил 1.7 через kubeadm? dns резолвить kubernetes.default ни в какую не хочет
Yury
А сеть какая?
пробовал и flannel и weave - результат один. сеть ходит. А без суффикса не резолвится сервис
Sn00part
кто k8s на ранчере 1.6.3 разворачивал, есть тут такие
Sn00part
?
Aleksey
Дня доброго! Подскажите, кто валидирует ямлины при apply —dry-run? Локальный клиент или кластер?
Yury
1.7.1 via kubeadm, weave
видимо "место проклято"
Aleksey
оба
А можно выяснить кто именно завернул ямлину? У меня nodeSelector через раз проходит валидацию и я уже хз куда копать (показать не могу, начальство запретило)
Aleksey
При том именно через раз. Не прошло @ Выпил чаю @ Прошло @ Сходил погулять @ Не прошло %)
G72K
хм, у вас точно нет loadbalancer за которым apiserver разных версий? :))
Aleksey
хм, у вас точно нет loadbalancer за которым apiserver разных версий? :))
нет, но локально у меня 1.7.2, а вот на кластере 1.5.6/1.5.1
G72K
локальную валидацию можно было отключать флагом (оно в сообщении об ошибке выводит его)
G72K
удаленную отключить нельзя
Aleksey
Хм, то есть без фалага мы уверены, что оно валидируется два раза, при том первый прогон локально?
G72K
100% валидируется локально без всякийх флагов и стандартном kubeconfig. может не так тщательно, как на сервере, но какие-то проверки на известные/неизвестные поля проходит
G72K
знаю, потому что руки и кривые и оно мне на мои ямлы ругалось локально часто
Aleksey
Но блин, куда копать, если алерт флапается на неизменяемом файле? 0_0
G72K
ну накиньте —v=10 может чего прояснится
G72K
я бы ставил на заблудший apiserver отличной версии от остальных, других объяснений на ум не приходит :)
Aleksey
Спасибо, потыкаюсь
G72K
как ошибка то выглядит? гуглится?
Aleksey
error validating data: found invalid field nodeSelector
Aleksey
Ну и если повезло и валидация прошла, то всё хорошо и вешается куда надо
G72K
будет чудо, если это не разные версии apiserver
G72K
впрочем nodeSelector с незапамятных времен , так что может и не разные версии :)наврят ли у вас 0.10 где-то запущенно :)
G72K
уменьшите 24 до разумного :)
Роман
уменьшите 24 до разумного :)
Сделал по количеству нод)
ASTASHOFF
полученный describe - описан следующим yaml apiVersion: extensions/v1beta1 kind: Ingress spec: rules: - host: "domain.net" http: paths: - backend: serviceName: backend-1 servicePort: 8888 path: / - backend: serviceName: backend-2 servicePort: 8888 path: /
Denis
хм а как это должно работать если один и тот же путь на два сервиса?
ASTASHOFF
я вот что нашел: https://github.com/kubernetes/ingress/issues/257 / https://github.com/kubernetes/ingress/pull/981 сразу скажу - это не то что мне надо, то есть тут сохраняется тенденция привязки 1 service - 1 endpoint (ибо 1 ClusterIP), но по крайней мере я прочитал вот это https://github.com/kubernetes/ingress/issues/257#issuecomment-278998855 соответственно может как-то подхачить Endpoints API? еще я заметил упоминания о kong api, как там через lua апстримы менеджатся..
ASTASHOFF
мне надо между двумя сервисами балансировать одно и то же доменное имя целиком
ASTASHOFF
у меня один сервис это один под, там никогда не будет replicas > 1
G72K
сделайте другой сервис, искусственный, пусть он покрывает все ваши поды
G72K
и укажите его в ingress
G72K
пусть даже ClusterIP: None
ASTASHOFF
создать какой-то третий сервис и замапить его на эти два и ингресс для него запилить?
G72K
ага
ASTASHOFF
просто мне нужно еще обеспечить доступность per-service URL извне
G72K
ну можете первые два сервиса удалить за ненадобностью , если они нигде больше не нужны :)
G72K
ну для per-service сделайте ingress с различающимся path и/или host
ASTASHOFF
то есть прикол в том, что есть три урла: global.domain.net backend-1.domain.net backend-2.domain.net клиент изначально на global.domain.net приходит, но после первого запроса дальше он будет общаться с каким-то из backend-1/backend-2, в зависимости куда раунд робин его направит
G72K
ну вот, у вас 3 сервиса и 3 ingress
ASTASHOFF
различающиеся path да, будут работать, но нужно чтобы корень балансировался
ASTASHOFF
формально мне тупо хватит чтобы можно было два айпишника в апстрим запихнуть, чтоб они и по отдельности работали, и глобально - под балансируемым доменом. Но с концепцией эндпойнтов в кубере по ходу это не так просто сделать
G72K
я может чего-то не вижу, но всё как раз просто
ASTASHOFF
я знаю что это тупой дизайн и неправильно, но вот так...
ASTASHOFF
как? я просто уже долго копаюсь и понять не могу)
G72K
apiVersion: extensions/v1beta1 kind: Ingress spec: rules: - host: "global.domain.net" http: paths: - backend: serviceName: allBackendsService servicePort: 8888 - host: "backend-1.domain.net" http: paths: - backend: serviceName: backend-1 servicePort: 8888
ASTASHOFF
а в allBackendsService мне надо еще один нжинкс запихать который будет разбрасывать между backend-{1,2} ?
G72K
нет
G72K
это просто сервис у кого в селекторе выбираются backend-1 и backend-2
Zon
как? я просто уже долго копаюсь и понять не могу)
Тут поможет концепция лейблов. Если у двух подов одинаковые лейбл ( хоть один ) из них делается k8s сервис
ASTASHOFF
гм, щас буду гуглить, спасибо, об этом я не думал