web-dev-qa-db-ja.com

gkeポッドのボリュームとしてgcsバケットを使用しようとしています

エラーが発生します:

「mysql.yaml」の検証エラー:データの検証エラー:ValidationError(Deployment.spec.template.spec.volumes [0]):io.k8s.kubernetes.pkg.api.v1.Volumeの不明なフィールド「パス」; )

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: mysql
  labels:
    app: mysql
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
        - image: mysql:5.6
          name: mysql
          env:
            - name: MYSQL_ROOT_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: mysql
                  key: password
          ports:
            - containerPort: 3306
              name: mysql
          volumeMounts:
            - name: mapping-sandbox-test
              mountPath: /var/lib/mysql
      volumes:
        - name: mapping-sandbox-test
          path: gs://<bucket-name>
5
Ram

名前とパスをキーとして使用すると、Deploymentオブジェクトは正しく表示されます。 GCSバケットをkubernetesにマウントする方法の例をここで見ることができます

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: gcsfuse-test
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: gcsfuse-test
    spec:
      containers:
        - name: gcsfuse-test
          image: gcr.io/some-repo/gcs-Fuse:latest
          securityContext:
            privileged: true
            capabilities:
              add:
                - SYS_ADMIN
          lifecycle:
            postStart:
              exec:
                command: ["gcsfuse", "-o", "nonempty", "some-bucket", "/mnt/some-bucket"]
            preStop:
              exec:
                command: ["fusermount", "-u", "/mnt/some-bucket"]

このStack Overflowの質問も役立つかもしれません

7
Jose Armesto