使用 nginx 代理动态进入 Kubernetes 服务
dynamic ingress to Kubernetes services with nginx proxy
我正在尝试用 nginx 做一个动态的 proxy_pass,做类似的事情:
- 对 foo.mywebsite.com 的请求被转发到名称为 foo 的服务
- 对 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 [error] 6#6: 163 10.default.svc.cluster.local
could not be resolved (3: Host not found), client: 10.142.0.34,
server: ~^(?.?)., request: "GET / HTTP/1.1", host:
"10.142.0.34"
10。是ip的开头点。
不知道怎么回事,谁能帮我解决一下,谢谢!!
用这个解决
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;
}
}
我正在尝试用 nginx 做一个动态的 proxy_pass,做类似的事情:
- 对 foo.mywebsite.com 的请求被转发到名称为 foo 的服务
- 对 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 [error] 6#6: 163 10.default.svc.cluster.local could not be resolved (3: Host not found), client: 10.142.0.34, server: ~^(?.?)., request: "GET / HTTP/1.1", host: "10.142.0.34"
10。是ip的开头点。 不知道怎么回事,谁能帮我解决一下,谢谢!!
用这个解决
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;
}
}