Kubernetes集群构建s3fs自定义镜像

构建s3fs自定义镜像

使用S3fs可以把Bucket当成一个文件夹挂载到Linux系统内部,当成一个系统文件夹使用。更多详情参考使用S3fs在服务器Linux上挂载Bucket。在Kubernetes集群中使用s3fs需要先构建s3fs的镜像,本文提供了s3fs镜像的的Dockerfile,你可以在Dockerfile中添加自定义参数,构建自定义s3fs镜像。

一、s3fs Dockerfile将s3f3 Dockerfile下载到本地

wget https://kubernetes.s3.cn-north-1.jdcloud-oss.com/s3fs/s3fs-dockerfile.yml
Dockerfile内容说明如下 FROM ubuntu:16.04# 定义Dockerfile中CMD exec指令使用的ENV环境变量ENV S3_BUCKET ''ENV MNT_POINT /dataENV S3_URL ''ENV S3_UID 0ENV S3_GID 0ENV OPTION ''RUN DEBIAN_FRONTEND=noninteractive apt-get -y update --fix-missing pt-get install -y automake autotools-dev g++ git libcurl4-gnutls-dev wget libfuse-dev libssl-dev libxml2-dev make pkg-config git clone https://github.com/s3fs-fuse/s3fs-fuse.git /tmp/s3fs-fuse cd /tmp/s3fs-fuse ./autogen.sh ./configure make make install ldconfig /usr/local/bin/s3fs --version mkdir -p "$MNT_POINT" DEBIAN_FRONTEND=noninteractive apt-get purge -y wget automake autotools-dev g++ git make pt-get -y autoremove --purge apt-get clean m -rf /var/lib/apt/lists/ /tmp/ /var/tmp/CMD exec /usr/local/bin/s3fs $S3_BUCKET $MNT_POINT -f -o passwd_file=/mysecret/passwd-s3fs -o url=$S3_URL -o uid=$S3_UID -o gid=$S3_GID $OPTION

构建docker镜像; ##使用阿里云提供的dockerfile构建## docker build --network host -t s3fs:latest https://kubernetes.s3.cn-north-1.jdcloud-oss.com/s3fs/s3fs-dockerfile.yml ##使用自定义dockerfile构建,请根据dockerfile文件的实际情况替换$PATH## docker build --network host -t s3fs:latest $PATH ##镜像构建成功后,请使用如下命令验证新构建的docker镜像 docker images REPOSITORY TAG IMAGE ID CREATED SIZE s3fs latest 9581af047109 13 seconds ago 307 MB

将docker镜像s3fs保存到阿里云镜像仓库或其他可以通过公网访问的镜像仓库。