Nginx 将kubernetes服务传递给Flask中的变量

Nginx 将kubernetes服务传递给Flask中的变量,nginx,flask,Nginx,Flask,我有一个Kubernetes集群,运行着4个服务。其中一项服务是Nginx,它将充当外部和内部通信的代理。 另一个服务是flask应用程序,用户可以从中登录。登录后,用户被移动到另一个用go编写的应用程序。我想在用户登录后将其重定向回Nginx,然后Nginx将代理他们使用go服务。 我遇到的问题是如何将用户重定向到Nginx服务。Nginx服务简称为Nginx。 这是我用python编写的代码: if usernamedata == None: print("Could not log

我有一个Kubernetes集群,运行着4个服务。其中一项服务是Nginx,它将充当外部和内部通信的代理。 另一个服务是flask应用程序,用户可以从中登录。登录后,用户被移动到另一个用go编写的应用程序。我想在用户登录后将其重定向回Nginx,然后Nginx将代理他们使用go服务。 我遇到的问题是如何将用户重定向到Nginx服务。Nginx服务简称为Nginx。 这是我用python编写的代码:

if usernamedata == None:
    print("Could not log in")   
else:
    if passworddata == password:
        print("Logged in")
        return redirect("http://{0}/user?username".format(nginx))
我知道flask应该能够解析nginx服务名称,如果它位于同一名称空间中? 以下是nginx服务:
default | nginx |http://192.168.99.104:31316

我也尝试过
”http://nginx/user?username“
但这也不起作用。
如何将用户从flask重定向回nginx?

此行
http://nginx/user?username除非您已配置dns或
主机
文件,否则
将无法在群集外工作。此外,kubernetes不会将外部IP/端口传递给POD。烧瓶吊舱可以访问内部go服务。但您需要的是nginx外部ip

您可以将Nginx服务的外部IP硬编码到flask中,或者让kubernetes将其作为环境变量传递,然后像读取一样读取它

...
redirect(os.envirton['EXTERNAL_IP'] + '/go_service')
...

然后让Nginx处理对go服务的请求。

我不确定您是否有入口和3个kubernetes服务备份它。或者您有一个由3个web服务支持的kubernetes服务。你能澄清一下吗?我有3个独立的服务,在kubernetes中运行3个独立的部署。我没有入口,我计划为此使用nginx。我还更新了我的问题,以增加更多的清晰度(希望如此),因此我还有一个名为
mysql
的mysql服务。在我的flask应用程序中,只需键入数据库地址和端口
mysql:3306
即可连接到它。应用程序可以发现此服务,为什么nginx不可发现?我不知道,因为你没有显示k8s+nginx文件。