Maxim
Защищённый по хешу(например nginx secure link)
Dmitry
как это сделать - смотреть в доках конкретного контроллера
Dmitry
Например контроллер от nginx (который от компании nginx) в configMap умеет опцию real-ip-header - которая создает заголовок X-Real-Ip и туда добавляет ip адрес клиента. (https://github.com/nginxinc/kubernetes-ingress/blob/master/docs/configmap-and-annotations.md)
Maxim
Anonymous
Ява сама может CORS, зачем nginx?
Ява умеет. До неё запрос должен дойти.
Есть условный site.my.domain и api.my.domain
с одного на другой запросу с нужными заголовками нужно дойти.
Но в условной "середине", проходя через ингресс заголовки режутся и получаем ошибку.
Anonymous
а envoy?
Я на него пристально смотрю и хочу попробовать. Он, вроде, все что мне нужно умеет и tcp понимает.
Прам интересно.
Denis
а как в kubernets сделать зависмость одной группы подов от другой. Есть микросервисное приложение, хотелось бы запускать микросервисы в некой поледовательности
Anonymous
нахера на ингересе логика ?
Но вообще интересный вопрос.
Если есть логика, которая может быть разрулена на уровне http сервера.
Зачем трафик с этой логикой пускать внутрь кубера, когда можно разобрать либо до (на l7 балансировщике), либо на входе (ингресе). Тем более если для этого есть аннотации и все такое.
А внутри уже максимально просто чтобы работало.
Мне думалось, что это одна из задач.
Denis
Валентин
ок, спасибо
Можно разве что с ready пробой накостылить. Ну т.е куб выкатил под и дергает у него пробу, а там скрипт, который дергает другое приложение. Как то приложение стало отвечать - так проба стала отдавать ок и типа деплой окончен. Но один фиг запустятся приложения одновременно. А инит-контейнеры нужны для чего-то типа миграций или подготовки файла-конфига и т.п.
Yury
Yury
Если на сервисе некому слушать, то падай. Куб переподнимет и однажды все заработает
Denis
Yuri
он разом всё будет запускать и рестартить пока не включится
Yuri
супер большие таймеры не пробы не советую, при деплое долго тупить будет
Denis
Вот я и думал, может есть какое нибудь дополнение, которое позволит сделать логику запуска
Yuri
нет необходимости, всё что нужно это правильные exit коды от приложения чтоб куб понимал когда надо передёрнуть
Denis
не совсем удобно, если на ноде нужно запустить 100 pods, из которых 90 будет постоянно перезапускатся и создавать лишнюю нагрузку, которая будет мешать запуску нужных 10 pods
Denis
после запуска обслуживающих 10 pods, уже нет разницы в каком порядке будет запускатся
Yuri
можно накостылить скриптом wait-for-it, или просто курлом стучать и ждать 200 от сервиса, потом запускать остальные сервисы
Yuri
но есть риск эффекта домино когда один из сервисов завалится
Denis
ну вот такого костыля и не охота, полюбому есть какое нить дополнение
Yuri
и ещё, есть liveness таймер, по сути это wait на перезапуск
Denis
наверное readiness
Yuri
можно поставить 20-60 секунд и ждать пока отработает, рестарт лупов меньше.
Denis
ну по сути оно так и есть
Denis
Anonymous
liveness
А с обычныни контейнерами, пока будет liveness отрабатывать - что будет?
Они будут работать, или для обычных приложений обслуживающие нужны?
Yuri
Anonymous
да и liveness просто делает чек сервиса с определенным интервалом.
работоспособность он не гарантирует. И единственное что может сделать - рестарт контейнера.
Denis
Denis
Denis
Egor
появился новый вопрос , как заставить чтобы под ходил из вне под кластерным IP, и слушал тоже его?
Anton
Egor
А просто так не реализовать?
Egor
куб не умеет прибивать ip к поду гвоздями?
Andrey
Всем привет.
Помогите разобраться. Ingress nginx валит ошибку в логи:
E0724 09:01:40.082357 7 controller.go:704] Failed to determine a suitable ClusterIP Endpoint for Service "kube-public/ext-service": no ClusterIP found for Service "kube-public/ext-service"
kube-public/ext-service - это сервис который ведет на внешний IP.
"spec": {
"type": "ExternalName",
"sessionAffinity": "None",
"externalName": "1.2.3.4"
}
Рядом стоит точно такой же кластер, там все выглядит 1 в 1, и ClusterIP нет у этого сервиса, но nginx такой ошибки не валит.
Dmitry
ingress направляет трафик на endpoint'ы в сервисе, соответственно если их в сервисе нет, то он не сможет это делать
Lucky SB
Dmitry
Dmitry
я правильно понял, что у тебя служба называется ext-service в namespace'е kube-public?
Если это так, ты видимо не создал endpoints для своей внешней службы. Вроде их нужно создать, иначе куда запросы то направлять сервис должен?
Andrey
Mikhail [azalio]
Lucky SB
все верно. для таких извратов создают сервис ClusterIP без селектора и к нему руками создают endpoints с нужными ip адресами
Dmitry
а то что это работает в другом кластере - сомневаюсь. Я бы залез в под ингресса и посмотрел конфиг nginx (в кластере где это работает)
Lucky SB
а сервис типа ExternalName возвращает CNAME
Roman
Привет, подскажите, кто как забирает секреты из Vault с помощью k8s auth method? Есть ли какие-то готовые решения, чтобы тащить через init-container + shared volume (tmpfs), ну либо сразу в окружение через entrypoint какой-нибудь? Или есть более правильный путь?
Lucky SB
krakazyabra
Народ, всем привет!
есть мысли, почему helm upgrade -f может долдго выполняться? например, закомментил строчку в values.yaml, а helm 2 минуты применяет этот конфиг. и не важно, с ошибкой он, или без.
Алексей
Roman
решение от BanzaiCloud видел ?
Нет, он ходит через k8s auth и там какой-то из этих двух методов доставки секретов используется? Если да, то я гляну, благодарю за наводку :)
Lucky SB
Roman
Alim
http://v1.uncontained.io/playbooks/operationalizing/secure-forward-splunk.html
Alim
https://www.youtube.com/watch?v=ADgPjhchscU
Andrey
Anton
Перестал работать resolv хостов в k8s baremetal
Куда смотреть?
В поде
# cat /etc/resolv.conf
nameserver 10.96.0.10
search site-testing.svc.cluster.local svc.cluster.local cluster.local
options ndots:5
# host redis-testing-master 10.96.0.10
;; connection timed out; no servers could be reached
Stanislav
Anton
kubectl get pods -A |grep coredns
coredns запущен
kubectl -n kube-system -l k8s-app=kube-dns get pods
NAME READY STATUS RESTARTS AGE
coredns-86c58d9df4-pwh6z 1/1 Running 0 90d
coredns-86c58d9df4-rrdrg 1/1 Running 0 11h
coredns-86c58d9df4-t7xkq 1/1 Running 2 90d
в логах такое
E0721 22:14:42.632667 1 reflector.go:205] github.com/coredns/coredns/plugin/kubernetes/controller.go:318: Failed to list *v1.Namespace: Get https://10.96.0.1:443/api/v1/namespaces?limit=500&resourceVersion=0: dial tcp 10.96.0.1:443: connect: connection refused
Салтыдык
только с таким и сталкивался. В итоге просто забросил эту затею
A
A
krakazyabra
Mik
Кто юзает для куба примитбл инстансы(GKE)? Небыло у вас проблемы что с чего-то поды перестают резолвить днс, скейл в 0 потом обратно возвращает к жизни
Михаил
Mik
Михаил
Порекламирую немного профильный канал)