打赏

星辰大海ゞ

That which does not kill us makes us stronger!

导航

K8S有状态服务-NAS共享存储使用

介绍

阿里云Kubernetes集群目前支持NAS、OSS、CPFS等阿里云共享存储服务,并通过flexvolume进行挂载;

共享存储支持一个存储卷被多个Pod同时挂载,多个Pod可能同时修改相同数据,这时需要应用自行实现数据的同步功能;

NAS:适合于IO较高的应用,读写性能相对OSS高,可实现跨主机文件共享;如文件服务器;

OSS:适用于低IO服务,配置文件、图片、小视频等共享业务;

使用NAS卷创建应用

创建NAS存储盘

  1. 在NAS控制台创建一个NAS文件系统盘;
  2. 创建NAS挂载点,挂载点配置成集群所在的VPC网络;
  3. 可以在集群中一个节点挂载NAS卷测试是否可行;

创建PV

通过NAS卷创建PV资源类型,配置PV唯一性标签alicloud-pvname: pv-nas;

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv-nas
  labels:
    alicloud-pvname: pv-nas
spec:
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteMany
  flexVolume:
    driver: "alicloud/nas"
    options:
      server: "***-**.cn-beijing.nas.aliyuncs.com"
      path: "/k8s1"
      vers: "4.0"

options支持的参数:

server:NAS的挂载点;

path:所想挂载NAS文件系统的目录,如果目录不存在会自动创建;

vers:使用NFS的版本,支持3.0、4.0;

mode:挂载目录后配置目录的访问权限,如果挂载的目录文件量很大,此操作会很慢,不建议配置;

options:挂载NAS时,附加的参数,可选;

创建应用

PVC中通过selector来显式指定所要绑定的pv;

NAS为共享存储,可以在Deployment中配置replicas为2;

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: pvc-nas
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 5Gi
  selector:
    matchLabels:
      alicloud-pvname: pv-nas
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nas-static
  labels:
    app: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 80
        volumeMounts:
          - name: pvc-nas
            mountPath: "/data"
      volumes:
        - name: pvc-nas
          persistentVolumeClaim:
            claimName: pvc-nas

 

 参考资料:https://yq.aliyun.com/articles/629000?spm=a2c4e.11154873.tagmain.68.3881649bmUeJar

 

 

 

 

 

posted on 2020-03-10 10:10  星辰大海ゞ  阅读(3600)  评论(0编辑  收藏  举报