好吧,所以这些纹理让我很困惑.我一直在看这个教程(我认为很棒),特别是"你可以定义最多32个纹理单元,但每个着色器最多可以定义8个纹理"的图片.据我了解,这是它的工作原理:
您激活纹理单位.然后,将纹理对象(类似于图像中的"纹理数据"立方体)绑定到该单元内的某个目标.所以,glGenTextures制作对象并得到它们的名字,然后glBindTexture将该纹理绑定到TEXTURE_2D或其他东西(我现在对其他目标不感兴趣).然后,您可以使用glTexImage2D指定纹理数据.
现在.我正在使用3个着色器程序,每个程序都需要不同的纹理.这就是我想要做的事情:
在初始化阶段,我浏览每个纹理单元,然后去
对于着色器,我glUniform将每个着色器中的一个制服与glActiveTexture的GL_TEXTUREi中指定的'i'值相匹配.我总共只需要四个纹理,而且它们非常小.
现在,在渲染过程中,我应该能够很好地切换程序,一切正常,对吧?每个程序都有一个统一指定要使用的单元,每个单元已经有一个绑定到其TEXTURE_2D目标的对象,每个对象都有glTexImage2D指定的数据,对吗?所以我的渲染功能不需要绑定或激活单元?至少这是我理解它的方式,但是我在错误的地方绘制了错误的纹理.
此外,在我的一个程序中,我想在单个表面的三个纹理之间切换.所以我想我将每个纹理加载到一个对象中,并将每个对象绑定到一个单元,然后在渲染时我可以通过glUniform告诉程序使用哪个纹理单元.
所以我想知道我是否误解了OpenGL中纹理的基本结构,或者当程序切换时对象与单元的绑定是否会过期,或类似的东西.或者我是否需要多次绑定纹理 - 但何时,为什么?
我已经研究Kubernetes了几周了,使用kube-lego NGINX示例(https://github.com/jetstack/kube-lego)已在DigitalOcean上使用Rancher成功地将服务部署到Kubernetes集群。
我已经部署了示例静态站点,Wordpress,Laravel,Craft CMS等。所有这些站点都使用自定义命名空间,部署,机密,带有外部注册表的容器,服务和入口定义。
使用示例(乐高)NGINX Ingress Controller设置,我可以将DNS应用于我的K8s群集的公开IP地址,并显示结果站点。
但是,我不知道的是如何允许多个主机使Ingress Controller服务于相同的部署,从而为群集提供HA Ingress。(通过应用外部负载平衡器服务,geo-ip或您拥有的资源)。
Rancher(稳定)允许我添加多个主机,我一次旋转了3到5个主机,并且Kubernetes在所有主机上进行了配置和部署。此外,我将定义许多副本和/或部署(如上所列),它们将散布在群集中并可以按预期访问。我什至指定了多个Ingress Controller副本,但是当然它们都安排在同一主机上,仅给我一个IP地址。
那么,如何允许多个主机(每个主机都有自己的面向公众的IP地址)允许进入群集?我还阅读了有关设置多个Ingress Controller的信息,但随后您必须指定Ingress Controller为哪些部署/服务提供服务,而这完全无法达到目的。
也许我缺少了一些东西,但是如果K8s多主机应该提供HA,并且带有入口控制器的主机出现故障,那么该服务将在其他主机上重新安排,但是所有指向的IP地址都会死了,因此中断了。有什么办法可以将多个IP地址分配给同一组部署/服务?