我正在构建一个用PHP / Symfony4编写的应用程序。我准备了一个API服务和一些用NodeJS / Express编写的服务。我正在使用Google Cloud Platform配置服务器结构。目前,最好的想法是使用负载均衡器进行多区域多集群配置。
我使用此链接https://github.com/GoogleCloudPlatform/k8s-multicluster-ingress/tree/master/examples/zone-printer作为我配置的来源。但现在我不知道如何上传/构建docker-compose.yml可以在Google Kubernetes中使用的GCR。
version: '3'
services:
php:
image: gcr.io/XXX/php
build: build/php
expose:
- '9000'
volumes:
- ./symfony:/var/www/html/symfony:cached
- ./logs:/var/log
web:
image: gcr.io/XXX/nginx
build: build/nginx
restart: always
ports:
- "81:80"
depends_on:
- php
volumes:
- ./symfony:/var/www/html/symfony:cached
- ./logs:/var/log/nginx
我需要一个容器GCR.io/XXX/XXX/XXX用于kubernetes-ingress配置。我应该使用docker-compose.yml还是找其他东西?哪种解决方案最好?
docker-compose和Kubernetes声明彼此不兼容。如果您想使用Kubernetes,您可以使用带有2个容器的Pod(根据您的示例)。如果您想更进一步,可以使用可以管理pod副本的Kubernetes 部署,以防您使用多个副本。
像这样的东西:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
labels:
app: myapp
spec:
replicas: 1
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: php
image: gcr.io/XXX/php
ports:
- containerPort: 9000
volumeMounts:
- mountPath: /var/www/html/symfony
name: symphony
- mountPath: /var/log
name: logs
- name: web
image: gcr.io/XXX/nginx
ports:
- containerPort: 80
volumeMounts:
- mountPath: /var/www/html/symfony
name: symphony
- mountPath: /var/log
name: logs
volumes:
- name: symphony
hostPath:
path: /home/symphony
- name: logs
hostPath:
path: /home/logs
更进一步,您可以删除Web容器并使用nginx入口控制器。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。