Andrey
У истио свой механизм фильтрации егресс трафика есть вроде
Nik
На вход в кластер я использую metallb- он как деймон сет присутвует на всех нодах кластера и поднимает необходимый экстернал ip для сервиса на любой ноде.
Nata
ну и istio ingress gateway даешь адрес метала
Nik
У истио свой механизм фильтрации егресс трафика есть вроде
Вот толи его нет, то ли я не понял как это сделать. Вот и спрашиваю - может кто то уже делал.
Artem
Подкиньте годных статей по экономике в GCP/GKE.
Andrey
Мне игресс нужен
Вот тут можно посмотреть https://kubernetes.io/docs/concepts/services-networking/network-policies/
Nik
Вот тут можно посмотреть https://kubernetes.io/docs/concepts/services-networking/network-policies/
Немного не то. Тут за разрешение/запрет, а не за выбор направления/интерфейса для выхода. Или я не так читаю.
Andrey
Так тебе ip нужен для фильтрации
Nata
фильтрация - netfilter всмысле чтоли?
Andrey
Файрвол
Alex
актуально, буду благодарен, а то уже вроде все перепробовал
чёт пара часов затянулась... В любом случае, если еще актуально – apiVersion: extensions/v1beta1 kind: Ingress metadata: name: grafana namespace: monitoring annotations: kubernetes.io/ingress.class: nginx nginx.ingress.kubernetes.io/auth-type: basic nginx.ingress.kubernetes.io/auth-secret: auth nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required' certmanager.k8s.io/cluster-issuer: letsencrypt-prod spec: tls: - hosts: - grafana.domain.example.com secretName: grafana-ssl rules: - host: grafana.domain.example.com http: paths: - path: / backend: serviceName: grafana servicePort: 3000 Вот пример с аутентификацией (там еще letsencrypt, но это мелочи)
Alex
плюс манифест для secret: apiVersion: v1 data: auth: SECRET kind: Secret metadata: name: auth namespace: monitoring type: Opaque
Nik
Так тебе ip нужен для фильтрации
Меня будут фильтровать снаружи кластера. И пустят только с определеного ip. Если потеряю ноду - потеряю дорогу к ресурсу. Потому и хочу virtIP
Alex
плюс манифест для secret: apiVersion: v1 data: auth: SECRET kind: Secret metadata: name: auth namespace: monitoring type: Opaque
где SECRET - классическая строка из .htpasswd (уже не помню что за алгорит юзаю, у меня что-то не очень секурное вида root:$apr1$SALT$PW_HASH `
Nik
Разрешить ip всех нод - не получится?
если бы - давно бы так сделал
Andrey
Тогда это надо решать вне k8s
Nik
Тогда это надо решать вне k8s
почему на ingress это решается внутри куба в на egress - вне.
Nik
Очень странно
Andrey
На ингрес это тоже решается вне k8s
Alex
да, благодарю. Ну вроде да, все по доке, и у меня тоже самое, только без ssl вообще. Я терминацию делаю на балансере до ингреса. И все же не работает
хм, у меня были проблемы, если в secret указать пароли не в том формате, которые arp1, а в чём-нибудь более крутом (типа bcrypt). В принципе, для меня это было не критично и я указал в том самом максимально лайтовом варианте.
Sam
странно то что вообще не добавляется auth в конфиг, если бы просто непроходила авторизация и не работала, там бы я конечно погрешил на неверные алгоритмы.. а тут тупо конфиг для auth не создается, как буд-то анотация игнорится
Alex
там в аннотациях всё ок?
Sam
а kubectl describe ingress что показывает?
да вроде бы и да https://gist.github.com/i-sam/fe836508bc1c3233b9e18e7e6b4ec06f
Alex
хм
Alex
auth-secret: basic-auth
Alex
а если просто auth сделать?
Andrey
Да ну? Кто управляет внешним ip?
Andrey
K8s не рулит внешней балансировкой. Этим занимается дополнительный инструмент. В случае облаков - всякие elb. В случае баре металл - keepalived какой нибудь
Andrey
То что он может запускаться как daemon set сути не меняет
Igor
подскажите, а можно задеплоить куб в aws на ec2 и интегрировать его с elb как сделано в eks?
Andrey
Можно
Igor
Можно
как гуглить?
Andrey
Смотри инструкции нужного тебе ингресс контроллера, не надо гуглить
Andrey
Ну или того инструмента, которым ставил. У копс есть аддоны для этого
Sam
спасибо
Andrei
чтоб сэкономить на белых ipможно ли идним ингресом запросы в 2 и больше нейспейсов слать ?
Andrey
В чем проблема сделать два ингресса в разных namespace?
Andrei
Alex
у меня просто на bare-metal HAproxy (блин, как он там правильно пишется...) разруливает все запросы и в итоге потенциально хватает 1 IP
Andrei
ну эт да
Fidelina
Приветы
Fidelina
Fidelina
так и должно быть с роутами?
Just a baka
прикольно, это ингресс такой?
Fidelina
Vadim
https://docs.openshift.com/container-platform/3.11/architecture/networking/routes.html#secured-routes но заворачивать постгрессовский траффик в SSL на роутере так себе идея
Vadim
1. вообще не выводить постгрес порт вне кластера 2. hostNetwork=true 3. nodeport
Just a baka
а как посмотреть?
туплю, это сервис и написано там tcp, все норм должно быть хостнейм для быстрого доступа там пишется с хттп, скорее всего
Отделение Bereke Bank
а как правильно?
Не держать statefull в кубере 😏
Fidelina
Не держать statefull в кубере 😏
у меня нет выбора, технически больше не возможно реализовать эту схему
Alex
Коллеги, может кто-нибудь дать ссылку как настроить filebeat, так что бы логи nginx парсились?
Alex
filebeat установлен в кубере
Fidelina
1. вообще не выводить постгрес порт вне кластера 2. hostNetwork=true 3. nodeport
если через nodeport The Service "postgres-ee-10" is invalid: spec.ports[0].nodePort: Invalid value: 5432: provided port is not in the valid range. The range of valid ports is 30000-32767 так как пытаюсь прокинуть 5432 в 5432
George
ну логично
George
потому что кубер изначально запущен с такой настройкой, что под ноуд порт давать только высокие порты
George
решение - либо переконфигурировать демоны, либо посадить постгрес на высокий порт (в целом насрать и это правильно, т.к. на стороне клиента ты все равно полную строку соединения пишешь)
Eugeny
Как можно поменять CLUSTER-IP без пересоздания кластера? NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP,9153/TCP 14d
George
ClusterIP - это же адрес внтури кластера
Just a baka
блатной айпишник занял поди :D
Eugeny
а можно спросить - зачем?
видимо это причина по которой на фурычат мои coredns
Eugeny
10.244.0.2/3
Just a baka
10.244 это поди подсетка для подов, а 10.96 - для сервисов?
Eugeny
да
Just a baka
в clusterip айпи пода не надо и не выйдет впихивать, думается мне
Fidelina
у меня второй вопрос, Arbiter trying to connect to postgres-ee-10-2:5433 мне нужно, чтобы порты связывались друг с другом из разных подов
Fidelina
это где открывается? в есервисах?
Eugeny
в clusterip айпи пода не надо и не выйдет впихивать, думается мне
Вот работающий кластер: kubectl get svc --namespace=kube-system NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kube-dns ClusterIP 10.233.0.3 <none> 53/UDP,53/TCP 10h kubectl get pods --namespace=kube-system -o wide |grep kube-dns kube-dns-79d99cdcd5-9kplb 3/3 Running 0 10h 10.233.74.66 node4 kube-dns-79d99cdcd5-hx2mj 3/3 Running 0 10h 10.233.97.129 node5