我有一个龙卷风Web服务器+ Nginx + DNS。我已经将网络服务器移到了kubernetes容器中,并且与nginx相同。
但是我意识到无法暴露给端口80,所以我将nginx保留在kubernetes之外,并通过pod的ip更改了Web服务器的ip,并且工作正常。
问题在于,每次ssh服务器重新启动pod的ip更改时,我都需要手动更改nginx conf上的ip。
如何在重新加载之间保持Pod的IP或将Pod上的Nginx暴露在外面?
答案 0 :(得分:1)
在DNS和nginx入口控制器之间使用负载平衡器。负载平衡器可以在端口80上接受流量,并转发到暴露了nginx入口控制器的nodeport。
或者使用nginx ingress controller并在Deployment Pod规范中与hostNetwork: true
一起运行,以在主机的网络名称空间的端口80
上直接运行nginx入口控制器。然后配置DNS以将流量转发到nodeip:80
创建一个群集IP类型的kubernetes服务和一个ingress resource来访问通过nginx公开的pod。 Nginx入口控制器将流量直接转发到POD IP。如果pod IP发生更改,则此设置中的任何地方都不需要更改,因为nginx入口控制器会监视POD IP的任何更改并相应地更新nginx.conf
。