Kubernetes:无法在 init 容器中挂载 emptydir

Kubernetes: Cannot VolumeMount emptydir within init container

我正在尝试使用 amazon/aws-cli docker 图像通过 initcontainer 从 s3 存储桶下载所有文件,并将相同的卷安装到主容器。

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: test-deployment
  name: test-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: test-deployment
  template:
    metadata:
      labels:
        app: test-deployment
    spec:
      securityContext:
        fsGroup: 2000
      serviceAccountName: "s3-sa" #Name of the SA we ‘re using
      automountServiceAccountToken: true
      initContainers:
      - name: data-extension
        image: amazon/aws-cli
        volumeMounts:
          - name: data
            mountPath: /data
        command:
          - aws s3 sync s3://some-bucket/ /data
      containers:
      - image: amazon/aws-cli
        name: aws
        command: ["sleep","10000"]
        volumeMounts:
          - name: data
            mountPath: "/data"
      volumes:
        - name: data
          emptyDir: {}

但这似乎不起作用。它导致 init 容器崩溃回环。 错误:

Error: failed to start container "data-extension": Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "aws s3 sync s3://some-bucket/ /data": stat aws s3 sync s3://some-bucket/ /data: no such file or directory: unknown

您的 command 需要更新:

...
command:
- "aws"
- "s3"
- "sync"
- "s3://some-bucket/"
- "/data"
...