?
體驗下來遇到的問題:
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=//xxx.xxx.xxx.xx:9000/ -o bucket=uploads /data/test/fuse
fuse: device not found, try 'modprobe fuse' first
2. minio使(shi)(shi)用docker安裝不(bu)能使(shi)(shi)用,需(xu)要暴露多(duo)個端(duan)(duan)口,否則只有(you)9000端(duan)(duan)口暴露出(chu)來(lai),docker內部(bu)的(de)動態端(duan)(duan)口出(chu)不(bu)來(lai)導致(zhi)界面服務沒法使(shi)(shi)用。
??
建議:
直接使用linux啟動二進制文件的方式使用minio
wget //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的桶掛載(zai)到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
這(zhe)個(ge)大坑就是,同一個(ge)pod里想要共享目(mu)錄的(de)話,通過(guo)掛載卷(juan)的(de)形式實現即可,問題是,我的(de)需求(qiu)是希(xi)望一個(ge)容器讀(du)寫,另一個(ge)容器只讀(du),因(yin)此我在 ${another container's name} 的(de)容器里設(she)置掛載目(mu)錄為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} 的容器就無法讀取(qu)目錄的內容。
此坑源于對掛載的不熟悉,對權限的不了解,對k8s共享卷的不知道,謹以為戒!程序員當修身養性,面對技術應“心如靜水”,戒驕戒躁,深入研究之。
?