是否可以在Kubernetes中进行单一部署,并针对不同的容器进行不同的扩展?

nkhmeac6  于 2023-03-17  发布在  Kubernetes
关注(0)|答案(2)|浏览(105)

我有一个非常简单的docker-compose应用程序,带有nginx和php-fpm服务。
我想创建一个Helm图表,将部署这个完全相同的东西作为一个单位(一个POD我猜?),但我希望能够扩展php-fpm服务。
我怎样才能做到呢?
我的想法是将这些容器放在一个部署中,这样就不会有很多分散的部署。

App1:
   - Container 1 (php-fpm autoscaled or manually scaled)
   - Container 2 (nginx)
   - Container 3 (Redis)
   - Container 4 (something else that this app needs)

App2
   - Container 1
   - Container 2
   - Container 3 etc...

我可以做不同的部署,但这样就像

app1_php-fpm
app1_nginx
app1_redis
app2_container1
app2_container2
app2_container3

而不是一个单独的吊舱。

5gfr0r5j

5gfr0r5j1#

“每个Pod一个容器”模型是最常见的Kubernetes用例;在本例中,您可以将Pod看作是单个容器的 Package 器;Kubernetes管理Pod,而不是直接管理容器。
Nginx和Redis应该作为独立的服务运行,这样它们就可以以解耦的方式独立于应用程序进行扩展。
Nginx可以反向代理多个应用程序,因此您不需要为每个应用程序设置单独的Nginx示例。
https://kubernetes.io/docs/concepts/workloads/pods/#using-pods

af7jpaap

af7jpaap2#

最佳做法是将单个容器保留在pod中,但是我们也可以运行多个容器。
RedisNginx容器作为单独的部署,您可以添加HPA,它们可以根据负载进行缩放。
通过保持部署的独立性,还有助于在需要时进行任何维护,或在不停机的情况下进行部署。
然而,如果你没有保留Nginx的选项,你也可以保留fpm容器,因为它也是一个轻量级容器。
例如,这里我有一个fpm和Nginx容器在单个POD中运行:https://github.com/harsh4870/Kubernetes-wordpress-php-fpm-nginx/blob/master/wordpress-deployment.yaml
如果可能的话,将所有应用划分为单个部署,使得管理部署以及维护和扩展也将非常容易。

相关问题