在2个kubernetes部署之间共享GCE持久性磁盘

时间:2017-12-01 10:38:25

标签: php nginx kubernetes google-kubernetes-engine

我试图从php:7.1-apache图像转移到php-fpm + nginx图像,这是我目前的php部署

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: php
  labels:
    app: php
spec:
  replicas: 1
  selector:
    matchLabels:
      app: php
  template:
    metadata:
      labels:
        app: php
    spec:
      containers:
        - image: php:7.1-apache
          imagePullPolicy: Always
          name: php
          resources:
            requests:
              cpu: 200m
          ports:
            - containerPort: 80
              name: php
          volumeMounts:
            - name: php-persistent-storage
              mountPath: /var/www
      volumes:
        - name: php-persistent-storage
          gcePersistentDisk:
            pdName: php-phantomjs-disk
            fsType: ext4

如何在nginx部署文件中挂载相同的gcePersistentDisk?

1 个答案:

答案 0 :(得分:1)

您的问题是容器化PHP应用程序最常见的问题之一。只有某些支持ReadWriteMany策略的PV类型才能在部署之间共享代码/内容。

如果查看https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes,您可以看到gce磁盘不允许这样做。

你可以做的是使用支持RWX的其他类型的持久存储,或者将nginx和fpm移动到与两个独立容器相同的部署中(有自己的优点和缺点)。