У меня те же требования, что и в этом посте, - https://tech.holidayextras.com/routing-to-internal-kubernetes-services-using-proxies-and-ingress-controllers-e7eb44954d53
Но я не уверен, что там упоминаются ipaddresses бэкэндов.Я предположил, что это ips моего главного и рабочего узлов в моем кластере
Мой kubernetes имеет ip главного узла как 10.118.6.35 и ip рабочего узла как 10.118.2.215, которые являются экземплярами AWS ec2.
Поэтому, когда я настроил, как показано ниже в моем nginx.conf (см. Ниже), я получаю index.html, когда я делаю curl https://10.118.6.35
Но когда я делаю https://10.118.6.35/hello-kenzan Яполучение страницы ошибки nginx по умолчанию 404 страницы Но я ожидаю, что она будет перенаправлена на мои службы kubernetes, работающие в NodePort 80: 30854
Я выполнил шаги, упомянутые в этом посте.К вашему сведению, я показываю echo-ing.yaml ниже -
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: echomap
annotations: {
'kubernetes.io/ingress.class': nginx
}
spec:
rules:
- host: ip-10-118-6-35.ec2.internal
http:
paths:
- path: /hello-kenzan
backend:
service and: hello-kenzan
service port: 80
И ниже - nginx.conf -
http {
ssl_certificate ...
....
....
server {
listen 443 SSL;
server_name www.ip-10.118-6-35.ec2.internal.com;
root /usr/share/nginx/html;
ssl_certificate ...
...
...
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
upstream backend_nodes {
server 10.118.6.35:31001;
server 10.118.2.215:31001;
}
upstream backend_nodes_ssl {
server 10.118.6.35:32001;
server 10.118.2.215:32001;
}
server {
listen 80;
server_name backends.nodes;
location / {
proxy_pass https://backend_nodes;
}
}
server {
listen 443;
server_name backends.nodes.ssl;
location / {
proxy_pass https://backend_nodes_ssl;
}
}
}
Пожалуйста, предложите, что дать для внутреннего узла ips
Обновление
Привет, наконец, он заработал, когда я пытаюсь использовать IP-адрес из браузера вместо имени DNS -
https://10.118.6.35/hello-kenzan <- этоработает сейчас <a href="https://myservice.myorg.com/hello-kenzan" rel="nofollow noreferrer">https://myservice.myorg.com/hello-kenzan <- это не работает, так как страница ошибки nginx временно недоступна. </p>
Но https://myservice.myorg.com <- работает, приветствуя переход на страницу индекса nginx. </p>
Это мой модифицированный nginx.conf -
http {
ssl_certificate ...
....
....
server {
listen 80;
server_name ip-10.118-6-35.ec2.internal;
root /usr/share/nginx/html;
include /etc/nginx/default.d/*.conf;
location / {
}
location /hello-kenzan {
proxy_pass https://backend_nodes;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
server {
listen 443 SSL;
server_name ip-10.118-6-35.ec2.internal;
root /usr/share/nginx/html;
ssl_certificate ...
...
...
include /etc/nginx/default.d/*.conf;
location / {
}
location /hello-kenzan {
proxy_pass https://backend_nodes_ssl;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
upstream backend_nodes {
server 10.96.88.237:80
}
upstream backend_nodes_ssl {
server 10.96.88.237:443
}
}
Есть мысли ??