Ruby on rails Kubernetes-复制控制器和持久磁盘

Ruby on rails Kubernetes-复制控制器和持久磁盘,ruby-on-rails,docker,kubernetes,Ruby On Rails,Docker,Kubernetes,我遇到了一个与库伯内特斯有关的问题。我刚刚从RubyonRails应用程序的Pod配置转移到了ReplicationController,我正在使用Rails Pod的持久磁盘。尝试应用ReplicationController时,会出现以下错误: 复制控制器“cartelhouse ror”无效。 spec.template.spec.volumes[0]。gcePersistentDisk.readOnly:无效 值:false:对于大于1的复制POD,必须为true;GCE PD只能是 如

我遇到了一个与库伯内特斯有关的问题。我刚刚从RubyonRails应用程序的
Pod
配置转移到了
ReplicationController
,我正在使用Rails Pod的持久磁盘。尝试应用ReplicationController时,会出现以下错误:

复制控制器“cartelhouse ror”无效。
spec.template.spec.volumes[0]。gcePersistentDisk.readOnly:无效
值:false:对于大于1的复制POD,必须为true;GCE PD只能是
如果是只读的,则安装在多台机器上

这是否意味着在使用ReplicationController时无法使用持久性磁盘(R/W),还是有其他方法

如果没有,我如何扩展和/或对Pod配置应用滚动更新

吊舱配置: 复制控制器配置:
您无法使用当前的Kubernetes实现这一点-请参阅。这将在1.3版中的due实现中介绍。

当前的Kubernetes无法实现这一点-请参阅。这将在1.3版中的due实现中介绍。

问题不在于Kubernetes,而在于不能同时将共享块设备和文件系统装载到多个主机上。

您可以尝试使用索赔:


或者另一个文件系统,例如nfs:

问题不在于Kubernetes,而在于无法同时将共享块设备和文件系统装载到多个主机上。

您可以尝试使用索赔:

或其他文件系统,例如nfs:

apiVersion: v1
kind: Pod
metadata:
  name: appname
  labels:
    name: appname
spec:
  containers:
        - image: gcr.io/proj/appname:tag
      name: appname
      env:
            - name: POSTGRES_PASSWORD
              # Change this - must match postgres.yaml password.
          value: pazzzzwd
            - name: POSTGRES_USER
          value: rails
      ports:
            - containerPort: 80
          name: appname
      volumeMounts:
              # Name must match the volume name below.
            - name: appname-disk-per-sto
              # Mount path within the container.
          mountPath: /var/www/html
  volumes:
        - name: appname-disk-per-sto
      gcePersistentDisk:
            # This GCE persistent disk must already exist.
        pdName: appname-disk-per-sto
        fsType: ext4
apiVersion: v1
kind: ReplicationController
metadata:
      labels:
        name: appname
      name: appname
spec:
      replicas: 2
      selector:
        name: appname
      template:
        metadata:
          labels:
            name: appname
        spec:
          containers:
            - image: gcr.io/proj/app:tag
              name: appname
              env:
                - name: POSTGRES_PASSWORD
                  # Change this - must match postgres.yaml password.
                  value: pazzzzwd
                - name: POSTGRES_USER
                  value: rails
              ports:
                - containerPort: 80
                  name: appname
              volumeMounts:
                  # Name must match the volume name below.
                - name: appname-disk-per-sto
                  # Mount path within the container.
                  mountPath: /var/www/html
          volumes:
            - name: appname-disk-per-sto
              gcePersistentDisk:
                # This GCE persistent disk must already exist.
                pdName: appname-disk-per-sto
                fsType: ext4