kubernetes DNSparsing器在Nginx中

我在docker-compose中进行了本地开发,并且有一个nginx容器做一个简单的proxy_pass如下所示:

 location /app/ { proxy_pass http://webapp:3000/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; resolver 127.0.0.11; } 

我现在想转移到GKE的kubernetes ,最后一行给我麻烦。

我试图将parsing器切换到:

  resolver kube-dns; 

我也尝试了各种其他的IP和名字,但是我一直听错:

 nginx: [emerg] host not found in resolver "kube-dns" 

我的kubernetes设置是我有一个容器,有2个容器:'webapp'和'nginx'。 我只是想有一个外部service指向nginx,可以proxy_pass到webapp。

有任何想法吗?

如果nginx存在于kubernetes中,则不需要设置parsing器,因为它将parsing到正确的位置。 如果nginxwebapp在同一个命名空间中,你可以简单的

 proxy_pass http://webapp 

只要您的webapp的服务名称被称为webapp并使用端口80。

如果nginx住在户外,那么你应该使用一个入口控制器或者把webapp的服务设置为一个nodeport。 一个nodeport将在所有的节点上打开相同的端口,所以你可以在nginx端负载平衡。