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

网站建设有哪些类型WordPress导入用户数据

网站建设有哪些类型,WordPress导入用户数据,长春网站建设推广,网站信息发布目录 一、PV、PVC简介 二、PV、PVC关系 三、创建静态PV 1.配置nfs存储 2.定义PV 3.定义PVC 4.测试访问 四、 搭建 StorageClass nfs-client-provisioner #xff0c;实现 NFS 的动态 PV 创建 1. 配置nfs服务 2.创建 Service Account 3.使用 Deployment 来创建 NFS P…目录 一、PV、PVC简介 二、PV、PVC关系 三、创建静态PV 1.配置nfs存储 2.定义PV 3.定义PVC 4.测试访问 四、 搭建 StorageClass nfs-client-provisioner 实现 NFS 的动态 PV 创建 1. 配置nfs服务 2.创建 Service Account 3.使用 Deployment 来创建 NFS Provisioner 3.1由于 1.20 版本启用了 selfLink所以 k8s 1.20 版本通过 nfs provisioner 动态生成pv会报错解决方法如下 3.2创建 NFS Provisioner  4.创建 StorageClass 5.创建 PVC 和 Pod 测试 一、PV、PVC简介 PV 全称叫做 Persistent Volume持久化存储卷。K8S在指定存储设备空间中逻辑划分创建的可持久化的存储资源对象。 PVC 的全称是 Persistent Volume Claim是持久化存储的请求。是对PV资源对象的请求和绑定也是Pod能挂载使用的一种存储卷类型。 PV是集群中的资源。 PVC是对这些资源的请求也是对资源的索引检查。  二、PV、PVC关系 PV和PVC之间的相互作用遵循生命周期 Provisioning配置--- Binding绑定--- Using使用--- Releasing释放 --- Recycling回收 Provisioning即 PV 的创建可以直接创建 PV静态方式也可以使用 StorageClass 动态创建Binding将 PV 分配给 PVCUsingPod 通过 PVC 使用该 Volume并可以通过准入控制StorageProtection1.9及以前版本为PVCProtection 阻止删除正在使用的 PVCReleasingPod 释放 Volume 并删除 PVCReclaiming回收 PV可以保留 PV 以便下次使用也可以直接从云存储中删除 根据5个阶段PV的状态有以下4种 Available可用表示可用状态还未被任何 PVC 绑定Bound已绑定表示 PV 已经绑定到 PVCReleased已释放表示 PVC 被删掉但是资源尚未被集群回收Failed失败表示该 PV 的自动回收失败 PV从创建到销毁的具体流程  一个PV创建完后状态会变成Available等待被PVC绑定。一旦被PVC邦定PV的状态会变成Bound就可以被定义了相应PVC的Pod使用。Pod使用完后会释放PVPV的状态变成Released。变成Released的PV会根据定义的回收策略做相应的回收工作。有三种回收策略Retain、Delete和Recycle。 PV回收策略 Retain(保留)当用户删除与之绑定的PVC时候这个PV被标记为releasedPVC与PV解绑但还没有执行回收策略且之前的数据依然保存在该PV上但是该PV不可用需要手动来处理这些数据并删除该PV。Delete(删除)删除与PV相连的后端存储资源。对于动态配置的PV来说默认回收策略为Delete。表示当用户删除对应的PVC时动态配置的volume将被自动删除。只有 AWS EBS, GCE PD, Azure Disk 和 Cinder 支持Recycle(回收)如果用户删除PVC则删除卷上的数据卷不会删除。只有 NFS 和 HostPath 支持 三、创建静态PV 创建使用 静态PV 准备好存储设备和共享目录手动创建PV资源配置 存储卷类型 访问模式RWO RWX ROX RWOP 存储空间大小  回收策略Retain Recycle Delete等创建PVC资源配置请求PV资源的访问模式必要条件必须是PV能支持的访问模式 存储空间大小默认就近选择大于等于指定大小的PV来绑定PV创建Pod和Pod控制器资源挂载PVC存储卷配置存储卷类型为 persistentVolumeClaim 并在容器配置中定义存储卷挂载点目录   1.配置nfs存储 mkdir /data/v{1..5}vim /etc/exports /data/v1 192.168.88.0/24(rw,no_root_squash,sync) /data/v2 192.168.88.0/24(rw,no_root_squash,sync) /data/v3 192.168.88.0/24(rw,no_root_squash,sync) /data/v4 192.168.88.0/24(rw,no_root_squash,sync) /data/v5 192.168.88.0/24(rw,no_root_squash,sync)exportfs -arvshowmount -e 2.定义PV vim pv.yaml apiVersion: v1 kind: PersistentVolume metadata: #由于 PV 是集群级别的资源即 PV 可以跨 namespace 使用所以 PV 的 metadata 中不用配置 namespacename: pv01labels:name: pv01 spec:nfs: #定义存储类型path: /data/v1 #定义挂载卷路径server: 192.168.88.60 #定义服务器名称或地址accessModes: #定义访问模型- ReadWriteOnce- ReadWriteManycapacity: #定义存储能力一般用于设置存储空间storage: 1Gi #指定大小storageClassName: slow #自定义存储类名称此配置用于绑定具有相同类别的PVC和PVpersistentVolumeReclaimPolicy: Retain #回收策略Retain/Delete/Recycle --- apiVersion: v1 kind: PersistentVolume metadata:name: pv02labels:name: pv02 spec:nfs:path: /data/v2server: 192.168.88.60accessModes:- ReadWriteOncecapacity:storage: 2Gi --- apiVersion: v1 kind: PersistentVolume metadata:name: pv03labels:name: pv03 spec:nfs:path: /data/v3server: 192.168.88.60accessModes:- ReadWriteOnce- ReadWriteManycapacity:storage: 2Gi --- apiVersion: v1 kind: PersistentVolume metadata:name: pv04labels:name: pv04 spec:nfs:path: /data/v4server: 192.168.88.60accessModes:- ReadWriteOnce- ReadWriteManycapacity:storage: 4Gi --- apiVersion: v1 kind: PersistentVolume metadata:name: pv05labels:name: pv05 spec:nfs:path: /data/v5server: 192.168.88.60accessModes:- ReadWriteOnce- ReadWriteManycapacity:storage: 5Gikubectl apply -f pv.yaml3.定义PVC 定义了pvc的访问模式为多路读写该访问模式必须在前面pv定义的访问模式之中。定义PVC申请的大小为2Gi此时PVC会自动去匹配多路读写且大小为2Gi的PV匹配成功获取PVC的状态即为Bound vim pvc.yaml apiVersion: v1 kind: PersistentVolumeClaim #定义类型为pvc metadata:name: mypvc-anamespace: default spec:accessModes: #定义pvc的访问模式- ReadWriteManyresources:requests:storage: 2Gi #定义请求pv的大小 --- apiVersion: v1 kind: Pod metadata:name: pod-vol-pvcnamespace: default spec:containers:- name: myappimage: nginx:1.14volumeMounts:- name: htmlmountPath: /usr/share/nginx/htmlvolumes:- name: htmlpersistentVolumeClaim: #定义挂载的pvc详细信息claimName: mypvc-a #挂载pvc的名称kubectl apply -f pvc.yaml 4.测试访问 在存储服务器上创建index.html并写入数据通过访问Pod进行查看可以获取到相应的页面。 cd /data/v3/ echo welcome to use pv3 index.htmlkubectl get pods -o widecurl 10.244.1.37 welcome to use pv3 四、 搭建 StorageClass nfs-client-provisioner 实现 NFS 的动态 PV 创建 Kubernetes 本身支持的动态 PV 创建不包括 NFS所以需要使用外部存储卷插件分配PV。详见https://kubernetes.io/zh/docs/concepts/storage/storage-classes/ 卷插件称为 Provisioner存储分配器NFS 使用的是 nfs-client这个外部卷插件会使用已经配置好的 NFS 服务器自动创建 PV。 Provisioner用于指定 Volume 插件的类型包括内置插件如 kubernetes.io/aws-ebs和外部插件如 external-storage 提供的 ceph.com/cephfs。 创建使用动态PV 准备好存储设备和共享目录如果是外置存储卷插件需要先创建serviceaccount账户Pod使用的账户和做RBAC授权创建角色授予相关资源对象的操作权限再将账户和角色进行绑定使serviceaccount账户具有对PV PVC StorageClass等资源的操作权限创建外置存储卷插件provisioner的Pod配置中使用serviceaccount账户作为Pod的用户并设置相关环境变量参数创建StorageClassSC资源配置中引用存储卷插件的插件PROVISIONER_NAME创建PVC资源配置中设置 StorageClass资源名称 访问模式 存储空间大小。创建PVC资源会自动创建相关的PV资源。创建Pod资源挂载PVC存储卷配置存储卷类型为 persistentVolumeClaim 并在容器配置中定义存储卷挂载点目录   1. 配置nfs服务 mkdir /opt/k8s chmod 777 /data/volumesvim /etc/exports /data/volumes 192.168.88.0/24(rw,no_root_squash,sync)exportfs -arv 2.创建 Service Account Service Account用来管理 NFS Provisioner 在 k8s 集群中运行的权限设置 nfs-client 对 PVPVCStorageClass 等的规则 vim nfs-client-rbac.yaml #创建 Service Account 账户用来管理 NFS Provisioner 在 k8s 集群中运行的权限 apiVersion: v1 kind: ServiceAccount metadata:name: nfs-client-provisioner --- #创建集群角色 apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata:name: nfs-client-provisioner-clusterrole rules: - apiGroups: []resources: [persistentvolumes]verbs: [get, list, watch, create, delete] - apiGroups: []resources: [persistentvolumesclaims]verbs: [get, list, watch, update] - apiGroups: [storage.k8s.io]resources: [storageclasses]verbs: [get, list, watch] - apiGroups: []resources: [events]verbs: [list, watch, create, update, patch] - apiGroups: []resources: [endpoints]verbs: [create, delete, get, list, watch, patch, update] --- #集群角色绑定 apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata:name: nfs-client-provisioner-clusterrolebinding subjects: - kind: ServiceAccountname: nfs-client-provisionernamespace: default roleRef:kind: ClusterRolename: nfs-client-provisioner-clusterroleapiGroup: rbac.authorization.k8s.ioverbs: [list, watch, create, update, patch] - apiGroups: []resources: [endpoints]kubectl apply -f nfs-client-rbac.yaml3.使用 Deployment 来创建 NFS Provisioner NFS Provisioner(即 nfs-client)有两个功能一个是在 NFS 共享目录下创建挂载点(volume)另一个则是将 PV 与 NFS 的挂载点建立关联。 3.1由于 1.20 版本启用了 selfLink所以 k8s 1.20 版本通过 nfs provisioner 动态生成pv会报错解决方法如下 vim /etc/kubernetes/manifests/kube-apiserver.yaml spec:containers:- command:- kube-apiserver- --feature-gatesRemoveSelfLinkfalse #添加这行- --advertise-address192.168.88.70kubectl apply -f /etc/kubernetes/manifests/kube-apiserver.yaml kubectl delete pods kube-apiserver -n kube-system kubectl get pods -n kube-system | grep apiserver 3.2创建 NFS Provisioner  vim nfs-client-provisioner.yaml apiVersion: apps/v1 kind: Deployment metadata:name: nfs-client-provisioner spec:replicas: 1selector:matchLabels:app: nfs-client-provisionerstrategy:type: Recreatetemplate:metadata:labels:app: nfs-client-provisionerspec:serviceAccountName: nfs-client-provisionercontainers:- name: nfs-client-provisionerimage: quay.io/external_storage/nfs-client-provisioner:latestimagePullPolicy: IfNotPresentvolumeMounts:- name: nfs-client-rootmountPath: /persistentvolumesenv:- name: PROVISIONER_NAMEvalue: nfs-storage #配置provisioner的Name确保该名称与StorageClass资源中的provisioner名称保持一致- name: NFS_SERVERvalue: 192.168.88.60 #配置绑定的nfs服务器- name: NFS_PATHvalue: /data/volumes #配置绑定的nfs服务器目录volumes: #申明nfs数据卷- name: nfs-client-rootnfs:server: 192.168.88.60path: /data/volumeskubectl apply -f nfs-client-provisioner.yaml kubectl get pod 4.创建 StorageClass StorageClass负责建立 PVC 并调用 NFS provisioner 进行预定的工作并让 PV 与 PVC 建立关联 vim nfs-client-storageclass.yaml apiVersion: storage.k8s.io/v1 kind: StorageClass metadata:name: nfs-client-storageclass provisioner: nfs-storage #这里的名称要和provisioner配置文件中的环境变量PROVISIONER_NAME保持一致 parameters:archiveOnDelete: false #false表示在删除PVC时不会对数据目录进行打包存档即删除数据为ture时就会自动对数据目录进行打包存档存档文件以archived开头kubectl apply -f nfs-client-storageclass.yaml kubectl get storageclass 5.创建 PVC 和 Pod 测试 vim test-pvc-pod.yaml apiVersion: v1 kind: PersistentVolumeClaim metadata:name: test-nfs-pvc#annotations: volume.beta.kubernetes.io/storage-class: nfs-client-storageclass #另一种SC配置方式annotations也可表示为注释字段 spec:accessModes:- ReadWriteManystorageClassName: nfs-client-storageclass #关联StorageClass对象resources:requests:storage: 1Gi --- apiVersion: v1 kind: Pod metadata:name: test-storageclass-pod spec:containers:- name: busyboximage: busybox:latestimagePullPolicy: IfNotPresentcommand:- /bin/sh- -cargs:- sleep 3600volumeMounts:- name: nfs-pvcmountPath: /mntrestartPolicy: Nevervolumes:- name: nfs-pvcpersistentVolumeClaim:claimName: test-nfs-pvc #与PVC名称保持一致#PVC 通过 StorageClass 自动申请到空间 kubectl get pvc #查看 NFS 服务器上是否生成对应的目录自动创建的 PV 会以 ${namespace}-${pvcName}-${pvName} 的目录格式放到 NFS 服务器上 ls /data/volumes#进入 Pod 在挂载目录 /mnt 下写一个文件然后查看 NFS 服务器上是否存在该文件 kubectl exec -it test-storageclass-pod sh / # cd /mnt/ /mnt # echo this is test file test.txt#发现 NFS 服务器上存在说明验证成功 cat /data/volumes/default-test-nfs-pvc-pvc-bff2245e-990d-4119-a846-06f898f95efb
http://www.pierceye.com/news/96992/

相关文章:

  • 做导航网站赚钱吗建立网站需要多少钱费用
  • 大同网站建设哪家好网站后台登录模板html
  • 网站建设过程中准备的工作手机制作网站
  • 做专业网站设计多少钱代理小企业网站建设
  • 怎样提升网站关键词免费的html模版下载
  • 栖霞网站定制三合一建站网站
  • 免费建立一个个人网站设计官网登录入口
  • 门户网站模板之家北京网上服务平台
  • 合肥网站优化方案东莞做网站那家好
  • 个人备案网站可以做论坛吗山东住房建设厅官网站首页
  • 寺院网站模板网站策划制作公司 北京
  • 昆山教育云平台网站建设宁晋县建设局网站
  • 廊坊网站公司dw做网站背景音乐
  • 阜南做网站搜索引擎优化seo多少钱
  • 贵州建设厅网站怎样查询电工证天津网站备案
  • 常州做网站的公司在盐城做网站的网络公司电话
  • seo站外推广如何用wampp 做网站
  • 怎样用手机做网站中企动力百度百科
  • 哪些网站可以做任务挣钱免费app软件
  • 国内简约网站平潭县机场建设网站
  • wordpress 全站通知wordpress怎样打开速度快
  • 广州市建设职业培训学校网站移除wordpress版本
  • 如何申请一个网站 新网动画制作大师
  • 动易后台 网站统计调查 报表类型怎样使用手机相册备份网站源码
  • 做网站放到百度上需要什么查看wordpress使用什么主题
  • 深圳企业网站seo郑州汉狮专业做网站公司
  • 广东网站建设多少钱辛集专业网站建设
  • 怎样做网站公司的销售小程序推广计划怎么赚钱
  • 网站开发文档编写wordpress小说站群
  • 南宁网站开发推广网站html模板下载