我有一个带有public
文件夹的php应用程序,它包含作为静态文件处理php请求的index.php
。
我想直接通过nginx容器提供静态文件,并仅使用php-fpm来提供动态请求。
如何实现?据我了解,有两种方法:
persistentVolumeClaim
,但这也需要某种神奇的同步(initContainers
)。最佳做法是什么?
答案 0 :(得分:2)
让我们首先说有2个豆荚是Nginx Pod和Php pod。 现在有两件事需要与这些豆荚相关联。
我更喜欢对静态文件使用Persistent Volume声明,对配置文件使用ConfigMap。
解决您的问题。
Php pod将拥有以下k8s资源
Nginx pod将拥有以下k8s资源
现在,Deployment Resouces将与其他资源建立关系,例如Persistent volume claim和configmap等。
正如我对InitContainer所理解的那样,它帮助Pod拥有一致的网络命名空间以及为主容器组织文件系统,它为主容器提供了所有必要的资源,如服务帐户,pvc,configmap。
例如,如果主容器重新启动,则初始容器确保IP地址不会更改。但是,如果再次创建pod,则意味着您将再次创建initcontainer,然后Pod将具有新的IP地址。