searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

minio简单使用

2023-03-31 00:36:41
53
0

体验下来遇到的问题:
1. 使用Linux挂载minio的bucket时,wsl1安装s3fs有问题,至少使用wsl2或者完全的虚拟机、或者其他带有内核的机器,否者会因为找不到内核,报modprobe fuse first

bash-5.1# s3fs -o passwd_file=/data/test/passwd -o use_path_request_style -o no_check_certificate -o endpoint=us-east-1 -o url=https://xxx.xxx.xxx.xx:9000/ -o bucket=uploads /data/test/fuse
fuse: device not found, try 'modprobe fuse' first


2. minio使用docker安装不能使用,需要暴露多个端口,否则只有9000端口暴露出来,docker内部的动态端口出不来导致界面服务没法使用。

​​

 建议:

直接使用linux启动二进制文件的方式使用minio

wget https://dl.min.io/server/minio/release/linux-amd64/minio

chmod +x minio

export MINIO_ROOT_USER=admin # 填一个你喜欢的字符串,不要跟人杠特殊字符
export MINIO_ROOT_PASSWORD=****** # 填一个你喜欢的密码

# ":xxxx" 作为一个对外提供控制台服务的port
./minio server  --console-address  ":xxxx"  /mnt/data

3. 使用minio的桶挂载到k8s的容器,踩了一个大坑

# 上面的略
spec:
  containers:
  - name: ${your container's name}
    image: ${your images}
    resources:
      limits:
        memory: "1028Mi"
        cpu: "500m"
    securityContext:
      privileged: true  # 给你的容器增加权限
    volumeMounts:
    - name: mnt_dir
      mountPath: /var/s3fs:shared
  - name: ${another container's name}
    image: ${another images}
    volumeMounts:
    - name: mntdatas3fs
      mountPath: /var/s3fs:shared
  volumes:
    - name: mnt_dir
      hostPath: # emptyDir 也是可行的
        path: /mnt/s3data # 这是node上的path

这个大坑就是,同一个pod里想要共享目录的话,通过挂载卷的形式实现即可,问题是,我的需求是希望一个容器读写,另一个容器只读,因此我在 ${another container's name} 的容器里设置挂载目录为readonly时,如下:

# 上面的略
spec:
  containers:
  - name: ${your container's name}
    image: ${your images}
    resources:
      limits:
        memory: "1028Mi"
        cpu: "500m"
    securityContext:
      privileged: true  # 给你的容器增加权限
    volumeMounts:
    - name: mnt_dir
      mountPath: /var/s3fs:shared
  - name: ${another container's name}
    image: ${another images}
    volumeMounts:
    - name: mntdatas3fs
      mountPath: /var/s3fs
      readOnly: true
  volumes:
    - name: mnt_dir
      hostPath: # emptyDir 也是可行的
        path: /mnt/s3data # 这是node上的path

在${another container's name} 的容器就无法读取目录的内容。

此坑源于对挂载的不熟悉,对权限的不了解,对k8s共享卷的不知道,谨以为戒!程序员当修身养性,面对技术应“心如静水”,戒骄戒躁,深入研究之。

0条评论
0 / 1000
JackW
6文章数
0粉丝数
JackW
6 文章 | 0 粉丝
JackW
6文章数
0粉丝数
JackW
6 文章 | 0 粉丝
原创

minio简单使用

2023-03-31 00:36:41
53
0

体验下来遇到的问题:
1. 使用Linux挂载minio的bucket时,wsl1安装s3fs有问题,至少使用wsl2或者完全的虚拟机、或者其他带有内核的机器,否者会因为找不到内核,报modprobe fuse first

bash-5.1# s3fs -o passwd_file=/data/test/passwd -o use_path_request_style -o no_check_certificate -o endpoint=us-east-1 -o url=https://xxx.xxx.xxx.xx:9000/ -o bucket=uploads /data/test/fuse
fuse: device not found, try 'modprobe fuse' first


2. minio使用docker安装不能使用,需要暴露多个端口,否则只有9000端口暴露出来,docker内部的动态端口出不来导致界面服务没法使用。

​​

 建议:

直接使用linux启动二进制文件的方式使用minio

wget https://dl.min.io/server/minio/release/linux-amd64/minio

chmod +x minio

export MINIO_ROOT_USER=admin # 填一个你喜欢的字符串,不要跟人杠特殊字符
export MINIO_ROOT_PASSWORD=****** # 填一个你喜欢的密码

# ":xxxx" 作为一个对外提供控制台服务的port
./minio server  --console-address  ":xxxx"  /mnt/data

3. 使用minio的桶挂载到k8s的容器,踩了一个大坑

# 上面的略
spec:
  containers:
  - name: ${your container's name}
    image: ${your images}
    resources:
      limits:
        memory: "1028Mi"
        cpu: "500m"
    securityContext:
      privileged: true  # 给你的容器增加权限
    volumeMounts:
    - name: mnt_dir
      mountPath: /var/s3fs:shared
  - name: ${another container's name}
    image: ${another images}
    volumeMounts:
    - name: mntdatas3fs
      mountPath: /var/s3fs:shared
  volumes:
    - name: mnt_dir
      hostPath: # emptyDir 也是可行的
        path: /mnt/s3data # 这是node上的path

这个大坑就是,同一个pod里想要共享目录的话,通过挂载卷的形式实现即可,问题是,我的需求是希望一个容器读写,另一个容器只读,因此我在 ${another container's name} 的容器里设置挂载目录为readonly时,如下:

# 上面的略
spec:
  containers:
  - name: ${your container's name}
    image: ${your images}
    resources:
      limits:
        memory: "1028Mi"
        cpu: "500m"
    securityContext:
      privileged: true  # 给你的容器增加权限
    volumeMounts:
    - name: mnt_dir
      mountPath: /var/s3fs:shared
  - name: ${another container's name}
    image: ${another images}
    volumeMounts:
    - name: mntdatas3fs
      mountPath: /var/s3fs
      readOnly: true
  volumes:
    - name: mnt_dir
      hostPath: # emptyDir 也是可行的
        path: /mnt/s3data # 这是node上的path

在${another container's name} 的容器就无法读取目录的内容。

此坑源于对挂载的不熟悉,对权限的不了解,对k8s共享卷的不知道,谨以为戒!程序员当修身养性,面对技术应“心如静水”,戒骄戒躁,深入研究之。

文章来自个人专栏
JackW 的后端开发
6 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0