当前位置: 首页 > news >正文

如何在k8s中对接s3存储

github地址:

https://github.com/majst01/csi-driver-s3

1.CSI for S3

这是用于 S3(或兼容 S3)存储的容器存储接口 (CSI)。它可以动态分配存储桶并通过Fuse mount将它们安装到任何容器中

2.状态

这仍处于试验阶段,不应在任何生产环境中使用。根据所使用的安装器和 S3 存储后端,可能会发生意外的数据丢失。

3.Kubernetes installation

3.1Requirements

Kubernetes 1.16+(CSI v1.0.0 兼容性)
Kubernetes 必须允许特权容器
Docker 守护进程必须允许共享挂载(Systemd 标志 MountFlags=shared)

3.2 用S3凭证创建secret

# deploy/kubernetes/secret.yaml
apiVersion: v1
kind: Secret
metadata:
  name: csi-driver-s3-secret
  namespace: kube-system
stringData:
  accessKeyID: <YOUR_ACCESS_KEY_ID>
  secretAccessKey: <YOUR_SECRET_ACCES_KEY>
  # For AWS set it to "https://s3.<region>.amazonaws.com"
  endpoint: <S3_ENDPOINT_URL>
  # If not on S3, set it to ""
  region: <S3_REGION>

如果您使用其他 S3 兼容存储,region可以为空。

3.2 部署

kubectl apply -f deploy/kubernetes

如果你用的是k8s 1.25+ 的版本,下面这段可以不执行。

apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
  name: psp-s3
spec:
  allowPrivilegeEscalation: true
  fsGroup:
    rule: RunAsAny
  privileged: true
  runAsUser:
    rule: RunAsAny
  seLinux:
    rule: RunAsAny
  supplementalGroups:
    rule: RunAsAny
  hostNetwork: true
  allowedHostPaths: []
  allowedCapabilities:
    - "SYS_ADMIN"
  volumes:
  - '*'

测试S3 driver

Create a PVC

kubectl apply -f deploy/sample/pvc.yaml

Check if the PVC has been bound:

$ kubectl get pvc
NAME                STATUS    VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
csi-driver-s3-pvc   Bound     pvc-c5d4634f-8507-11e8-9f33-0e243832354b   5Gi        RWO            csi-driver-s3  9s

Create a test pod which mounts your volume:

kubectl apply -f deploy/sample/pod.yaml
If the pod can start, everything should be working.

Test the mount

$ kubectl exec -ti csi-driver-s3-test-nginx bash
$ mount | grep fuse
s3fs on /var/lib/www/html type fuse.s3fs (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other)
$ touch /var/lib/www/html/hello_world

用S3 Browser连接,发现bucket已经创建了,bucket的名称即为pv的名称

在这里插入图片描述
由于 S3 不是真正的文件系统,因此需要考虑一些限制。根据您使用的安装器,您将拥有不同级别的 POSIX 兼容性。此外,根据您使用的 S3 存储后端,并不总是有一致性保证。

相关文章:

  • 多线程 - wait notify
  • Apache Commons Lang3 常用方法详解
  • 大数据(4.3)Hive基础查询完全指南:从SELECT到复杂查询的10大核心技巧
  • 【超分辨率】基于DDIM+SwinUnet实现超分辨率
  • 深入理解pthread多线程编程:从基础到生产者-消费者模型
  • Android: Handler 的用法详解
  • 【工具】在 Visual Studio 中使用 Dotfuscator 对“C# 类库(DLL)或应用程序(EXE)”进行混淆
  • 关于 Nginx 配置中 proxy_set_header Host $host 的作用及其对 HTTP 请求头影响的详细说明,结合示例展示设置前后的差异
  • 【VSCode SSH 连接远程服务器】:身份验证时,出现 key: invalid format 的问题
  • 服务端向客户端推送数据的实现方案
  • Linux | I.MX6ULL 终结者底板原理图讲解完(第六天)
  • 关于亚马逊TTS的笔记
  • 银行回单识别技术应用与API服务解析
  • 1 分钟掌握 PlantUML,快速绘制 UML 类图!
  • Docker学习--本地镜像管理相关命令--docker history 命令
  • 在Windows下使用Docker部署Nacos注册中心(基于MySQL容器)
  • 初识C++(入门)
  • kubernetes》》k8s》》Deployment》》ClusterIP、LoadBalancer、Ingress 内部访问、外边访问
  • 31天Python入门——第20天:魔法方法详解
  • TruPlasma RF 1002-G2/13 软件 TruPlasma RF 1003-G2/13软件 TRUMPF 调试监控软件
  • 缅甸发生5.0级地震
  • 原核试验基地司令员范如玉逝世,从事核试验研究超40年
  • 全国多家健身房女性月卡延长,补足因月经期耽误的健身时间
  • 时隔三年,俄乌直接谈判重启
  • 雷军内部演讲回应质疑:在不服输、打不倒方面,没人比我们更有耐心
  • 普京确定俄乌谈判俄方代表团名单