Size: a a a

Kubernetes — русскоговорящее сообщество

2020 September 04

GG

George Gaál in Kubernetes — русскоговорящее сообщество
о блин сколько же их
источник

GG

George Gaál in Kubernetes — русскоговорящее сообщество
источник

GG

George Gaál in Kubernetes — русскоговорящее сообщество
источник

GG

George Gaál in Kubernetes — русскоговорящее сообщество
источник

GG

George Gaál in Kubernetes — русскоговорящее сообщество
но оно как будто сдохло или нет ?
источник

k

kvaps in Kubernetes — русскоговорящее сообщество
George Gaál
но оно как будто сдохло или нет ?
хз, я чёт пока не готов менять свой велосипед на что-то ещё :)
источник

GG

George Gaál in Kubernetes — русскоговорящее сообщество
мне кажется, что каждый сейчас велосипедит
источник

S

Stefan in Kubernetes — русскоговорящее сообщество
всем привет, помогите пожалуйста отдебажить проблему, уже 3 день сижу, идеи закончились

есть внешний домен, не относящийся к куберу
например: external.domain.com
и внешний домен, на котором крутится приложение: app.domain.com

дело в том, что при проксировании с external.domain.com на app.domain.com получаю 404
есть такой нжинкс конфиг на внешней проксе:
server {
   listen 80;

   server_name external.domain.com;

   proxy_ssl_verify  off;
   proxy_set_header Host $host;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header X-Forwarded-Proto $scheme;
   proxy_set_header  X-M-D             2;
   proxy_set_header  X-M-D-Proto       $http_x_forwarded_proto;
   proxy_read_timeout                  30;
   proxy_cookie_domain t.domain.com   $host;

   location ~ ^/folder/click/?$ { proxy_pass https://app.domain.com/folder/click$is_args$args; resolver 8.8.8.8 8.8.4.4; }
   location / {
       proxy_intercept_errors on;
       error_page 500 501 502 503 504 505 506 507 508 509 510 511 = @errors;
       proxy_pass https://t.domain.com/;
   }
}
при использовании такой урлы получаю 404:
https://external.domain.com/folder/click?cnv_id=1234567890123456789012345678901234567890&dph=1

ожидаю получить проксирование на app.domain.com и увидеть Success строку

хрень в том, что если напрямую запросить эту урлу на домене сервиса - работает
множество доменов которые работают с этим сервисом, который находится не в кубере(поднято два прода, один вне кубера, один в кубере) - работает

у меня стойкое ощущение что я что-то не учел в nginx ingress controller-е
его configmap такой на данный момент:
configmap:
data:
 worker-processes: auto
 max-worker-connections: "4096"
 server-tokens: "false"
 disable-access-log: "false"
 use-gzip: "false"
 hsts: "false"
 # Work around for HTTP->HTTPS redirect not working when using the PROXY protocol:
 # https://github.com/kubernetes/ingress-nginx/issues/2724
 # It works by getting Nginx to listen on port 8080 on top of the standard 80 and 443,
 # and making any requests sent to port 8080 be reponded do by this code, rather than
 # the normal port 80 handling.
 ssl-redirect: "false"
 http-snippet: |
   map true $pass_access_scheme {
     default "https";
   }
   map true $pass_port {
     default 443;
   }

   server {
     listen 8080 proxy_protocol;
     return 308 https://$host$request_uri;
   }
 use-forwarded-headers: "true"
 compute-full-forwarded-for: "true"
 enable-underscores-in-headers: "true"
 use-proxy-protocol: "true"
источник

СР

Сергей Решетняк... in Kubernetes — русскоговорящее сообщество
Тут либо не попадает в локейшн, либо урла трансформируется на моменте proxy_pass. Нужно смотреть логи на конечных сервера, куда попадает запрос и с каким URI
источник

GG

George Gaál in Kubernetes — русскоговорящее сообщество
Stefan
всем привет, помогите пожалуйста отдебажить проблему, уже 3 день сижу, идеи закончились

есть внешний домен, не относящийся к куберу
например: external.domain.com
и внешний домен, на котором крутится приложение: app.domain.com

дело в том, что при проксировании с external.domain.com на app.domain.com получаю 404
есть такой нжинкс конфиг на внешней проксе:
server {
   listen 80;

   server_name external.domain.com;

   proxy_ssl_verify  off;
   proxy_set_header Host $host;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header X-Forwarded-Proto $scheme;
   proxy_set_header  X-M-D             2;
   proxy_set_header  X-M-D-Proto       $http_x_forwarded_proto;
   proxy_read_timeout                  30;
   proxy_cookie_domain t.domain.com   $host;

   location ~ ^/folder/click/?$ { proxy_pass https://app.domain.com/folder/click$is_args$args; resolver 8.8.8.8 8.8.4.4; }
   location / {
       proxy_intercept_errors on;
       error_page 500 501 502 503 504 505 506 507 508 509 510 511 = @errors;
       proxy_pass https://t.domain.com/;
   }
}
при использовании такой урлы получаю 404:
https://external.domain.com/folder/click?cnv_id=1234567890123456789012345678901234567890&dph=1

ожидаю получить проксирование на app.domain.com и увидеть Success строку

хрень в том, что если напрямую запросить эту урлу на домене сервиса - работает
множество доменов которые работают с этим сервисом, который находится не в кубере(поднято два прода, один вне кубера, один в кубере) - работает

у меня стойкое ощущение что я что-то не учел в nginx ingress controller-е
его configmap такой на данный момент:
configmap:
data:
 worker-processes: auto
 max-worker-connections: "4096"
 server-tokens: "false"
 disable-access-log: "false"
 use-gzip: "false"
 hsts: "false"
 # Work around for HTTP->HTTPS redirect not working when using the PROXY protocol:
 # https://github.com/kubernetes/ingress-nginx/issues/2724
 # It works by getting Nginx to listen on port 8080 on top of the standard 80 and 443,
 # and making any requests sent to port 8080 be reponded do by this code, rather than
 # the normal port 80 handling.
 ssl-redirect: "false"
 http-snippet: |
   map true $pass_access_scheme {
     default "https";
   }
   map true $pass_port {
     default 443;
   }

   server {
     listen 8080 proxy_protocol;
     return 308 https://$host$request_uri;
   }
 use-forwarded-headers: "true"
 compute-full-forwarded-for: "true"
 enable-underscores-in-headers: "true"
 use-proxy-protocol: "true"
TL;DR
источник

GG

George Gaál in Kubernetes — русскоговорящее сообщество
надо садиться и дебажить, быстрый ответ тебе никто не даст
источник

СР

Сергей Решетняк... in Kubernetes — русскоговорящее сообщество
можно также включить дебаг на external.domain.com и увидеть, как обрабатывается и куда посылается
источник

S

Stefan in Kubernetes — русскоговорящее сообщество
Сергей Решетняк
Тут либо не попадает в локейшн, либо урла трансформируется на моменте proxy_pass. Нужно смотреть логи на конечных сервера, куда попадает запрос и с каким URI
в логах нжинкса кубера ничего нет, запрос до туда даже не доходит, обрубается еще на проксе, не понимаю почему
источник

S

Stefan in Kubernetes — русскоговорящее сообщество
George Gaál
надо садиться и дебажить, быстрый ответ тебе никто не даст
я спросил к тому, что может у кого подобное случалось, вдруг где-то настройку в конфигмапе упустил
источник

GG

George Gaál in Kubernetes — русскоговорящее сообщество
Stefan
в логах нжинкса кубера ничего нет, запрос до туда даже не доходит, обрубается еще на проксе, не понимаю почему
Чудес не бывает
источник

СР

Сергей Решетняк... in Kubernetes — русскоговорящее сообщество
Ну если до кубера не доходит, значит таки не попадает в локейшн
источник

V

Vasiliy in Kubernetes — русскоговорящее сообщество
Stefan
всем привет, помогите пожалуйста отдебажить проблему, уже 3 день сижу, идеи закончились

есть внешний домен, не относящийся к куберу
например: external.domain.com
и внешний домен, на котором крутится приложение: app.domain.com

дело в том, что при проксировании с external.domain.com на app.domain.com получаю 404
есть такой нжинкс конфиг на внешней проксе:
server {
   listen 80;

   server_name external.domain.com;

   proxy_ssl_verify  off;
   proxy_set_header Host $host;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header X-Forwarded-Proto $scheme;
   proxy_set_header  X-M-D             2;
   proxy_set_header  X-M-D-Proto       $http_x_forwarded_proto;
   proxy_read_timeout                  30;
   proxy_cookie_domain t.domain.com   $host;

   location ~ ^/folder/click/?$ { proxy_pass https://app.domain.com/folder/click$is_args$args; resolver 8.8.8.8 8.8.4.4; }
   location / {
       proxy_intercept_errors on;
       error_page 500 501 502 503 504 505 506 507 508 509 510 511 = @errors;
       proxy_pass https://t.domain.com/;
   }
}
при использовании такой урлы получаю 404:
https://external.domain.com/folder/click?cnv_id=1234567890123456789012345678901234567890&dph=1

ожидаю получить проксирование на app.domain.com и увидеть Success строку

хрень в том, что если напрямую запросить эту урлу на домене сервиса - работает
множество доменов которые работают с этим сервисом, который находится не в кубере(поднято два прода, один вне кубера, один в кубере) - работает

у меня стойкое ощущение что я что-то не учел в nginx ingress controller-е
его configmap такой на данный момент:
configmap:
data:
 worker-processes: auto
 max-worker-connections: "4096"
 server-tokens: "false"
 disable-access-log: "false"
 use-gzip: "false"
 hsts: "false"
 # Work around for HTTP->HTTPS redirect not working when using the PROXY protocol:
 # https://github.com/kubernetes/ingress-nginx/issues/2724
 # It works by getting Nginx to listen on port 8080 on top of the standard 80 and 443,
 # and making any requests sent to port 8080 be reponded do by this code, rather than
 # the normal port 80 handling.
 ssl-redirect: "false"
 http-snippet: |
   map true $pass_access_scheme {
     default "https";
   }
   map true $pass_port {
     default 443;
   }

   server {
     listen 8080 proxy_protocol;
     return 308 https://$host$request_uri;
   }
 use-forwarded-headers: "true"
 compute-full-forwarded-for: "true"
 enable-underscores-in-headers: "true"
 use-proxy-protocol: "true"
Могу предположить, что из-за директивы
proxy_set_header host $host
В ингресс приходи запрос на домен external.domain.com, который не слушается ингрессом.

Попробуй в локейшин с проксипасом добавить
proxy_set_header host app.domain.com
источник

S

Stefan in Kubernetes — русскоговорящее сообщество
Vasiliy
Могу предположить, что из-за директивы
proxy_set_header host $host
В ингресс приходи запрос на домен external.domain.com, который не слушается ингрессом.

Попробуй в локейшин с проксипасом добавить
proxy_set_header host app.domain.com
пробну, минутку
источник

СР

Сергей Решетняк... in Kubernetes — русскоговорящее сообщество
не пробовал регулярку заменить на обычный
location /folder/click
?
источник

S

Stefan in Kubernetes — русскоговорящее сообщество
Сергей Решетняк
не пробовал регулярку заменить на обычный
location /folder/click
?
пробовал, таже хрень
источник