使用Nginx代理动态进入Kubernetes服务

我正在尝试使用nginx创建一个动态proxy_pass,做类似的事情:

  • 对foo.mywebsite.com的请求将转发到具有foo名称的服务
  • 以bar名称将对bar.mywebsite.com的请求转发到服务

我的nginx.conf使用静态值,但是使用正则表达式,可以工作约5分钟,然后错误开始

apiVersion: v1
kind: ConfigMap
metadata:
  name: nginx-config-dns-file
data:
  nginx.conf: |
    server {
      listen 80;
      server_name ~^(?<subdomain>.*?)\.;
      resolver kube-dns.kube-system.svc.cluster.local valid=5s;

      location /healthz {
        return 200;
      }

      location / {
        proxy_pass http://$subdomain.default.svc.cluster.local; 
      }
    }

我的pod获取服务IP而不是名称,这是日志

  

2019/11/11 22:30:40 [错误] 6#6: 163 10.default.svc.cluster.local   无法解析(3:找不到主机),客户端:10.142.0.34,   服务器:〜^(?。?)。,请求:“ GET / HTTP / 1.1”,主机:   “ 10.142.0.34”

10。是ip的起点。 我不知道出了什么问题,有人可以帮我吗,谢谢!!

YC4130332000 回答:使用Nginx代理动态进入Kubernetes服务

解决此问题

apiVersion: v1
kind: ConfigMap
metadata:
  name: nginx-config-dns-file
data:
  nginx.conf: |
    server {
      listen 80;
      server_name ~^(?<subdomain>.*?)\.;
      resolver kube-dns.kube-system.svc.cluster.local valid=5s;

      location /healthz {
        return 200;
      }

      location / {
        proxy_set_header Host $host
        proxy_pass http://$subdomain.default.svc.cluster.local; 
      }
    }
本文链接:https://www.f2er.com/3120943.html

大家都在问