K8S有状态服务 |
您所在的位置:网站首页 › k8s存储挂载权限 › K8S有状态服务 |
OSS介绍:
阿里云对象存储服务(OSS)提供海量、安全、低成本、高可靠的云存储服务。适用于配置文件、图片、小视频等共享业务; 容器服务访问OSS 数据是通过 ossfs 把 bucket 挂载到本地文件系统中,容器中的应用通过本地文件系统操作OSS上的数据,实现数据的访问、共享。 使用OSS卷挂载时: 随机或者追加写文件会导致整个文件的重写。 元数据操作,例如list directory,性能较差,因为需要远程访问OSS服务器。 多个客户端挂载同一个bucket时,用户自行处理并发。例如:避免多个客户端写同一个文件。 不适合用在高并发读/写的场景,这样会让系统的load升高。 创建OSS存储卷 创建OSS Bucket 在OSS控制台创建一个Bucket,根据需求配置bucket的读写权限; 在概览页查询访问bucket的Endpoint; 可以在集群中一个节点挂载OSS Bucket测试是否可行; 创建PV通过OSS卷创建PV资源类型,配置PV唯一性标签alicloud-pvname: pv-oss,“pv-oss”为PV Name; 配置storageClassName: oss,标识此PV为oss存储类型,只会与oss类型的PVC绑定; apiVersion: v1 kind: PersistentVolume metadata: name: pv-oss labels: alicloud-pvname: pv-oss spec: capacity: storage: 5Gi accessModes: - ReadWriteMany storageClassName: oss flexVolume: driver: "alicloud/oss" options: bucket: "docker" url: "oss-cn-hangzhou.aliyuncs.com" akId: "***" akSecret: "***" otherOpts: "-o max_stat_cache_size=0 -o allow_other"options支持的参数: bucket:目前只支持挂载 Bucket,不支持挂载 Bucket 下面的子目录或文件。 url: OSS Bucket的endpoint,挂载 OSS 的接入域名。 akId: 用户的 access id 值。 akSecret:用户的 access secret 值。 otherOpts: 挂载 OSS 时支持定制化参数输入,格式为: -o **。 参考文档 创建应用PVC通过配置selector,指定与创建的oss PV进行绑定; 配置storageClassName: oss,表示至于OSS类型存储卷绑定; OSS为共享存储,可以同时由多个Pod挂载一个bucket; kind: PersistentVolumeClaim apiVersion: v1 metadata: name: pvc-oss spec: accessModes: - ReadWriteMany storageClassName: oss resources: requests: storage: 5Gi selector: matchLabels: alicloud-pvname: pv-oss --- apiVersion: apps/v1 kind: Deployment metadata: name: oss-static labels: app: nginx spec: replicas: 1 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx ports: - containerPort: 80 volumeMounts: - name: pvc-oss mountPath: "/data" - name: pvc-oss mountPath: "/data1" livenessProbe: exec: command: - sh - -c - cd /data initialDelaySeconds: 30 periodSeconds: 30 volumes: - name: pvc-oss persistentVolumeClaim: claimName: pvc-oss 健康检查使用说明OSSFS通过s3fs进行bucket挂载,是在用户态挂载的文件系统(FUSE);OSSFS在kubelet重置的时候会重新启动,这时容器内部的bind目录已经不可用,需要重启容器;配置健康检查能保证容器内oss目录不可用时重启容器,进而重新bind oss目录;(升级最近版本flexvolume可解决此问题) livenessProbe 参数说明: command:sh -c cd /oss-path;语法如上面示例所示,目录为容器内部的oss对应目录,多个目录时写一个即可; initialDelaySeconds:容器启动后开始检查的时间; periodSeconds:检查时间周期; 高可用验证创建服务: # kubectl create -f oss.yaml persistentvolume "pv-oss" created persistentvolumeclaim "pvc-oss" created deployment.apps "oss-static" created # kubectl get pod NAME READY STATUS RESTARTS AGE oss-static-5d8cd48d96-9gc6c 1/1 Running 0 3sOSS Bucket上创建临时文件: # kubectl exec oss-static-5d8cd48d96-9gc6c ls /data | grep tmpfile # kubectl exec oss-static-5d8cd48d96-9gc6c touch /data/tmpfile # kubectl exec oss-static-5d8cd48d96-9gc6c ls /data/ | grep tmpfile tmpfile删除Pod,查看新创建Pod数据: # kubectl delete pod oss-static-5d8cd48d96-9gc6c # kubectl get pod NAME READY STATUS RESTARTS AGE oss-static-5d8cd48d96-bfwb2 1/1 Running 0 14s # kubectl exec oss-static-5d8cd48d96-bfwb2 ls /data | grep tmpfile tmpfile |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |