Nginx的路由为kubernetes服务

问题描述 投票:0回答:1

我有同样的需求,如在这篇文章中提到的 - qazxsw POI

但是我不知道什么是,后端的ipaddresses有提及。我以为这是我的主人和工作节点的IPS在我的集群

我kubernetes有主节点的IP为10.118.6.35和工作节点的IP为10.118.2.215这是AWS EC2实例。

所以,当我配置类似下面我nginx.conf(请参见下文),我收到的index.html,当我做卷曲https://tech.holidayextras.com/routing-to-internal-kubernetes-services-using-proxies-and-ingress-controllers-e7eb44954d53呈现

但是当我做https://10.118.6.35我得到nginx的错误页面默认的404页,但我希望它的路线我kubernetes服务NodePort 80上运行:30854

我按照步骤,在该文章中提到。仅供参考,我显示下面的回声ing.yaml -

https://10.118.6.35/hello-kenzan

以下是nginx.conf -

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

请建议什么给了后端节点IPS

更新

嘿,终于取得了它,当我与IP地址尝试从浏览器,而不是DNS名称的工作 -

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; } } } https://10.118.6.35/hello-kenzan

https://myservice.myorg.com/hello-kenzan

这是我修改nginx.conf -

https://myservice.myorg.com

有什么想法吗??

nginx kubernetes nginx-reverse-proxy kubernetes-ingress nginx-ingress
1个回答
0
投票

当你与主IP和节点试图叶是绝对错误的nginx的入口控制的方法。当您添加入nginx的控制器,它使负载平衡器后面(如果使用AWS,数字海洋,你检查它的控制台负荷balacer)。


 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
      }

  }

开始nginx的入口控制器

you have to use the load balancer ip rather then using ip of node and master ip.

更多信息请访问该如有查询添加评论:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/mandatory.yaml

终于来了它的安装证书管理器,你可以删除其他的部分都事是容易和简单。

© www.soinside.com 2019 - 2024. All rights reserved.