我在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到正确的位置。 如果nginx和webapp在同一个命名空间中,你可以简单的
proxy_pass http://webapp
只要您的webapp的服务名称被称为webapp并使用端口80。
如果nginx住在户外,那么你应该使用一个入口控制器或者把webapp的服务设置为一个nodeport。 一个nodeport将在所有的节点上打开相同的端口,所以你可以在nginx端负载平衡。