docker - 我需要有关docker-compose.yml的信息-如何配置/导出到kubernetes入口

标签 docker kubernetes google-cloud-platform docker-compose dockerfile

我正在构建一个用PHP / Symfony4编写的应用程序。我准备了一个API服务和一些用NodeJS / Express编写的服务。
我正在使用Google Cloud Platform配置服务器结构。到目前为止,最好的想法是使用负载均衡器进行多区域多集群配置。

我使用此链接https://github.com/GoogleCloudPlatform/k8s-multicluster-ingress/tree/master/examples/zone-printer作为配置的源。但是现在我不知道如何上传/构建可以在Google Kubernetes中使用的docker-compose.yml 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,可以将Pod与2个容器一起使用(根据您的示例)。如果您想更进一步,可以使用Kubernetes Deployment来管理您的pod副本,以防您使用多个副本。

像这样:

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 ingress controller。有关Kubernetes Ingresses的更多信息here

关于docker - 我需要有关docker-compose.yml的信息-如何配置/导出到kubernetes入口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54081782/

相关文章:

docker - 使用 docker/build-push-action 在 GitHub Actions 中本地构建 docker 镜像

ubuntu - 在 docker 镜像中生成所有语言环境

azure - Kubernetes:无法从私有(private)容器注册表中提取镜像

kubernetes - kubectl - 如何重新启动部署(或所有部署)

docker - Kubernetes集群中计划作业的推荐架构是什么?

c# - 将 docker 环境变量传递给 .net core

c++ - CMake 链接库在 Docker 镜像中失败

kubernetes - 如何确定同类群集中的节点(CPU,内存)的尺寸?

google-app-engine - Google App 引擎应用程序的 IP 地址

google-cloud-platform - 无法在 Google Cloud Platform 中将我的 E2 实例编辑为 N1 实例