带有 S3FS 的 Pod 卡在终止状态

问题描述

我需要在 kubernetes pod 中安装一个 s3 存储桶。我正在使用 this guide 来帮助我。它工作得很好,但是,当发出删除 pod 的命令时,pod 会无限期地停留在“终止”状态。我不知道这是为什么。

这里是 .yaml

apiVersion: v1
kind: Pod
Metadata:
  name: worker
spec:
      volumes:
        - name: mntdatas3fs
          emptyDir: {}
        - name: devfuse
          hostPath:
            path: /dev/fuse
      restartPolicy: Always
      containers:
      - image: Nginx
        name: s3-test
        securityContext:
          privileged: true
        volumeMounts:
          - name: mntdatas3fs
            mountPath: /var/s3fs:shared
      - name: s3fs
        image: meain/s3-mounter
        imagePullPolicy: IfNotPresent
        securityContext:
          privileged: true
        env:
          - name: S3_REGION
            value: "us-east-1"
          - name: S3_BUCKET
            value: "xxxxxxx"
          - name: AWS_KEY
            value: "xxxxxx"
          - name: AWS_SECRET_KEY
            value: "xxxxxx"
        volumeMounts:
          - name: devfuse
            mountPath: /dev/fuse
          - name: mntdatas3fs
            mountPath: /var/s3fs:shared

这里是s3fs容器使用的meain/s3-mounter的Dockerfile

FROM alpine:3.3

ENV MNT_POINT /var/s3fs

ARG S3FS_VERSION=v1.86

RUN apk --update --no-cache add fuse alpine-sdk automake autoconf libxml2-dev fuse-dev curl-dev git bash; \
    git clone https://github.com/s3fs-fuse/s3fs-fuse.git; \
    cd s3fs-fuse; \
    git checkout tags/${S3FS_VERSION}; \
    ./autogen.sh; \
    ./configure --prefix=/usr; \
    make; \
    make install; \
    make clean; \
    rm -rf /var/cache/apk/*; \
    apk del git automake autoconf;

RUN mkdir -p "$MNT_POINT"

copY run.sh run.sh
CMD ./run.sh

这里把run.sh复制到容器中

#!/bin/sh

set -e

echo "$AWS_KEY:$AWS_SECRET_KEY" > passwd && chmod 600 passwd
s3fs "$S3_BUCKET" "$MNT_POINT" -o passwd_file=passwd  && tail -f /dev/null

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)