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

做网站设计的网站企业营销网站建设费用

做网站设计的网站,企业营销网站建设费用,建设企业网站的目的,温州网站域名注册服务公司文章目录 1.在K8S环境下RBD与Cephfs的使用对比2.Cephfs环境介绍3.在Ceph集群中为K8S创建单独Cephfs文件系统和认证用户3.1.创建一个K8S使用的Cephfs文件系统3.2.将创建的Cephfs文件系统挂载到本地路径3.3.创建K8S连接Ceph集群使用的认证用户 4.K8S PV存储卷使用Cephfs文件系统4… 文章目录 1.在K8S环境下RBD与Cephfs的使用对比2.Cephfs环境介绍3.在Ceph集群中为K8S创建单独Cephfs文件系统和认证用户3.1.创建一个K8S使用的Cephfs文件系统3.2.将创建的Cephfs文件系统挂载到本地路径3.3.创建K8S连接Ceph集群使用的认证用户 4.K8S PV存储卷使用Cephfs文件系统4.1.在Cephfs文件系统中为PV挂载创建子目录4.2.将K8S连接Cephfs的认证用户信息存储在Secret中4.3.创建PV存储卷对接Cephfs文件系统4.4.创建PVC资源从PV中获取存储空间4.5.创建Pod资源将数据持久化到Cephfs中4.6.验证Pod资源持久化数据导Cephfs 5.K8S StorageClass存储类使用Cephfs文件系统5.1.Cephfs-Provisioner客户端简介5.2.在K8S集群中部署Cephfs-Provisioner客户端5.3.失败了。。。。。。。 6.K8S Volumes存储卷使用Cephfs文件系统6.1.在默认的Cephfs文件系统中为Volumes创建子目录6.2.将K8S连接Cephfs的认证用户信息存储在Secret中6.3.Volumes存储卷对接Cephfs文件系统6.4.进入Pod中产生数据验证数据持久化效果 1.在K8S环境下RBD与Cephfs的使用对比 在K8S环境中大多数情况下都是多个Pod资源同时挂载一个存储端共享存储中的数据在这个普遍应用场景下Ceph集群的RBD块存储和Cephfs文件系统有着非常明显的区别。 RBD存储 仅支持同一个Node节点中的多个Pod共享存储中的数据不支持跨Node节点的Pod挂载同一个RBD存储。Ceph RBD块存储的读写延迟低性能强。QKubernetes集群对RBD块存储有专门的驱动程序。 Cephfs文件系统 支持多个Node节点中多个Pod同时挂载实现共享存储。读写延迟性能略逊于RBD块存储。需要安装第三方的驱动程序。 无论是RBD还是Cephfs与K8S集群集成都没有想象中那么好RBD不支持跨Node节点的Pod一起使用而Cephfs则不支持指定使用某个Cephfs文件系统但是在我不懈努力之下终于研究出了指定某个Cephfs文件系统的方法。 Cephfs更加友好起码支持跨节点的Pod都可以同时使用并且可以指定使用哪一个Cephfs文件系统我们可以为K8S集群单独创建一个Cephfs文件系统。 Cephfs文件系统常用的几种方式 为不同的客户端创建不同Cephfs文件系统挂载时指定使用不同的Cephfs。 集群中只创建一个Cephfs为不同的客户端在Cephfs文件系统中创建不同的子目录挂载时指定不同的子目录路径。 在实际生产者中第二种方式最为常见但是如果一个Ceph集群中要为不同类型的客户端提供存储服务那么建议创建出多个Cephfs文件系统客户端通过参数分别指定使用哪一个Cephfs。 2.Cephfs环境介绍 K8S集群连接Cephfs文件系统时默认情况下是连接的Ceph集群中默认的Cephfs文件系统也就是数据资源池为cephfs_data和元数据资源池cephfs_metadata的Cephfs文件系统并且K8S官方的对接Cephfs的文档中如果Ceph集群中有多个Cephfs文件系统时中并没有说明使用什么参数可以指定使用某一个的Cephfs文件文件系统。 好在功夫不负有心人再查阅了大量的资料后终于找到了可以让K8S各种存储卷指定使用某一个Cephfs文件系统的方法。 我们K8S对接Ceph集群的Cephfs文件系统的环境如下 当前集群中存在多个Cephfs文件系统我们会为K8S集群创建单独的Cephfs文件系统K8S集群Volume、PV、StorageClass访问Cephfs时会通过具体的参数指定要使用Ceph集群的哪一个Cephfs文件系统来实现数据的存储。 3.在Ceph集群中为K8S创建单独Cephfs文件系统和认证用户 3.1.创建一个K8S使用的Cephfs文件系统 1首先创建Cephfs依赖的数据池和元数据池 [rootceph-node-1 ~]# ceph osd pool create kubernetes_cephfs_data 16 16 pool kubernetes_cephfs_data created [rootceph-node-1 ~]# ceph osd pool create kubernetes_cephfs_metadata 16 16 pool kubernetes_cephfs_metadata created2创建一个Cephfs文件系统 [rootceph-node-1 ~]# ceph fs new kubernetes_cephfs kubernetes_cephfs_metadata kubernetes_cephfs_data new fs with metadata pool 14 and data pool 133查看集群中所有的Cephfs文件系统 发型当前集群有两个Cephfs文件系统后面会通过具体的参数指定存储卷使用某一个Cephfs文件系统。 [rootceph-node-1 ~]# ceph fs ls name: kubernetes_cephfs, metadata pool: kubernetes_cephfs_metadata, data pools: [kubernetes_cephfs_data ] name: cephfs-storage, metadata pool: cephfs2_data, data pools: [cephfs2_metadata ]4查看Cephfs文件系统的状态 [rootceph-node-1 ~]# ceph fs status kubernetes_cephfs kubernetes_cephfs - 0 clients-------------------------------------------------------- | Rank | State | MDS | Activity | dns | inos | -------------------------------------------------------- | 0 | active | ceph-node-2 | Reqs: 0 /s | 0 | 0 | -------------------------------------------------------- ---------------------------------------------------- | Pool | type | used | avail | ---------------------------------------------------- | kubernetes_cephfs_metadata | metadata | 1728k | 17.9G | | kubernetes_cephfs_data | data | 0 | 17.9G | ---------------------------------------------------- ------------- | Standby MDS | ------------- | ceph-node-1 | ------------- ------------------------------------------------------------------------------------------------ | version | daemons | ------------------------------------------------------------------------------------------------ | None | ceph-node-2 | | ceph version 14.2.22 (ca74598065096e6fcbd8433c8779a2be0c889351) nautilus (stable) | ceph-node-1 | ------------------------------------------------------------------------------------------------3.2.将创建的Cephfs文件系统挂载到本地路径 挂载到本地路径的原因是为了给K8S集群不同类型的存储卷提供一个子目录不同的存储卷挂载不同的子目录来存储持久化文件。 使用mount命令中的mds_namespace参数指定要将哪个Cephfs文件系统挂载到本地路径。 [rootceph-node-1 ~]# mount -t ceph 192.168.20.20:6789,192.168.20.21:6789,192.168.20.22:6789:/nginx_conf /nginx_conf/ -o nameadmin,mds_namespacekubernetes_cephfs[rootceph-node-1 kubernetes_cephfs]# df -hT /kubernetes_cephfs/ 文件系统 类型 容量 已用 可用 已用% 挂载点 192.168.20.20:6789,192.168.20.21:6789,192.168.20.22:6789:/ ceph 18G 0 18G 0% /kubernetes_cephfs3.3.创建K8S连接Ceph集群使用的认证用户 [rootceph-node-1 ~]# ceph auth get-or-create client.kubernetes_cephfs mon allow r mds allow rw osd allow rw poolkubernetes_cephfs_data, allow rw poolkubernetes_cephfs_metadata [client.kubernetes_cephfs]key AQAVMFpi1gm6GBAARrJdTXsxYQwGiA1D7h2jHw4.K8S PV存储卷使用Cephfs文件系统 4.1.在Cephfs文件系统中为PV挂载创建子目录 在Cephfs文件系统中为PV类型的存储卷创建独立的子目录来持久化容器的数据。 现在属于实验环境如果是线上环境时还要在子子目录下为不同应用程序挂载分别创建三级目录。 [rootceph-node-1 ~]# mkdir /kubernetes_cephfs/pv_storage4.2.将K8S连接Cephfs的认证用户信息存储在Secret中 我们在前面创建了一个专门用于K8S访问Cephfs文件系统的认证用户将该用户的Key通过Base64进行加密然后保存在Secret资源中最后在创建存储卷的资源编排文件中引用这个Secret资源。 1将认证用户的Key进行Base64加密 [rootceph-node-1 ~]# ceph auth get-key client.kubernetes_cephfs | base64 QVFBVk1GcGkxZ202R0JBQVJySmRUWHN4WVF3R2lBMUQ3aDJqSHc9PQ2将加密后的用户认证Key存储在Secret资源中 [rootk8s-master volumes]# vim cephfs-volumes-secret.yaml apiVersion: v1 kind: Secret metadata:name: cephfs-secret data:key: QVFBVk1GcGkxZ202R0JBQVJySmRUWHN4WVF3R2lBMUQ3aDJqSHc9PQo3创建Secret并查看资源的状态 [rootk8s-master volumes]# kubectl apply -f cephfs-volumes-secret.yaml secret/cephfs-secret created[rootk8s-master volumes]# kubectl get secret NAME TYPE DATA AGE cephfs-secret Opaque 1 3m30s4.3.创建PV存储卷对接Cephfs文件系统 创建一个PV资源采用Cephfs文件系统作为底层存储端。 1编写资源编排文件 PV指定使用某个Cephfs文件系统主要是通过mountOptions参数来实现的这个参数是为挂载存储卷时设置一些挂载参数在宿主机使用mount挂载Cephfs时有参数可以指定挂载哪一个Cephfs同理在PV中也提供了这种参数通过这个参数我们就可以指定使用哪一个Cephfs文件系统了。 [rootk8s-master pv]# cat cephfs-pv.yaml apiVersion: v1 kind: PersistentVolume metadata:name: cephfs-pv spec:capacity:storage: 10GiaccessModes:- ReadWriteManymountOptions: #指定使用哪一个Cephfs文件系统- mds_namespacekubernetes_cephfs #Cephfs文件系统的名称cephfs: #存储源使用Cephfs类型monitors: #Monitor组件的地址- 192.168.20.20:6789- 192.168.20.21:6789- 192.168.20.22:6789path: /pv_storage #挂载Cephfs文件系统中的哪一个子目录user: kubernetes_cephfs #使用Cephfs文件系统的认证用户readOnly: falsesecretRef: #认证用户的Secretname: cephfs-secretpersistentVolumeReclaimPolicy: Recycle2创建PV资源并查看资源的状态 [rootk8s-master pv]# kubectl apply -f cephfs-pv.yaml persistentvolume/cephfs-pv created[rootk8s-master pv]# kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE cephfs-pv 10Gi RWX Recycle Available 5m12s4.4.创建PVC资源从PV中获取存储空间 PV已经创建完成了下面来创建PVC资源关联PV从PV中分配存储空间给Pod资源使用。 1编写资源编排文件 [rootk8s-master pv]# cat cephfs-pvc.yaml apiVersion: v1 kind: PersistentVolumeClaim metadata:name: cephfs-pvc spec:accessModes:- ReadWriteManyresources:requests:storage: 10Gi2创建PVC并查看资源的状态 [rootk8s-master pv]# kubectl apply -f cephfs-pvc.yaml persistentvolumeclaim/cephfs-pvc created[rootk8s-master pv]# kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE cephfs-pvc Bound cephfs-pv 10Gi RWX 3sPVC已经与PV资源进行了绑定下面就可以给Pod资源使用了。 4.5.创建Pod资源将数据持久化到Cephfs中 使用Cephfs文件系统作为存储源的PV和PVC资源都已经准备就绪了下面来创建一个Pod资源挂载PVC将数据持久化到Cephfs文件系统中。 1编写资源编排文件 [rootk8s-master pv]# cat cephfs-pv-pod.yaml apiVersion: v1 kind: Pod metadata:name: cephfs-pod spec:containers:- image: nginx:1.15name: cephfs-podports:- name: webcontainerPort: 80protocol: TCPvolumeMounts:- name: datamountPath: /data #将PVC挂载到/data目录volumes: - name: datapersistentVolumeClaim:claimName: cephfs-pvc #关联PVC的名称2创建Pod并查看资源的状态 [rootk8s-master pv]# kubectl apply -f cephfs-pv-pod.yaml pod/cephfs-pod created[rootk8s-master pv]# kubectl get pod NAME READY STATUS RESTARTS AGE cephfs-pod 1/1 Running 0 11s4.6.验证Pod资源持久化数据导Cephfs Pod资源已经创建完成下面进入到Pod中创建一些文件看看是否能持久化到Cephfs文件系统中。 1在Pod资源中写入数据文件 [rootk8s-master pv]# kubectl exec -it cephfs-pod bash rootcephfs-pod:/# cd /data/ rootcephfs-pod:/data# touch file{1..10}.txt2查看Cephfs文件系统中是否有Pod持久化的数据文件 到查看这一步就要尽显当初将Cephfs文件系统的根目录挂载到本地路径的好处了我们可以直接进入到挂载的目录中查看来自客户端写入的数据。 [rootceph-node-1 ~]# cd /kubernetes_cephfs/ [rootceph-node-1 kubernetes_cephfs]# tree pv_storage/ pv_storage/ ├── aa ├── file10.txt ├── file1.txt ├── file2.txt ├── file3.txt ├── file4.txt ├── file5.txt ├── file6.txt ├── file7.txt ├── file8.txt └── file9.txt0 directories, 11 filesPod数据持久化成功。 5.K8S StorageClass存储类使用Cephfs文件系统 5.1.Cephfs-Provisioner客户端简介 StoragecClass存储类动态分配PV需要依赖第三方的客户端插件通过客户端插件连接到Cephfs文件系统从而自动分配PV资源。 由于K8S没有内置Cephfs的Provisioner故需要安装第三方的Provisioner客户端 Cephfs-Provisioner主要组件 cephfs-provisioner.go是cephfs-provisionercephfs的storageclass的核心主要是watch kubernetes中PVC资源的CURD事件然后以命令行方式调用cephfs_provisor.py脚本创建PV。cephfs_provisioner.pypython 脚本实现的与cephfs交互的命令行工具。cephfs-provisioner对cephfs端volume的创建都是通过该脚本实现。里面封装了volume的增删改查等功能。 5.2.在K8S集群中部署Cephfs-Provisioner客户端 Cephfs-Provisioner客户端在GitHub的地址https://github.com/kubernetes-retired/external-storage/tree/master/ceph/cephfs/deploy/rbac 完整的Cephfs-Provisioner客户端资源编排文件内容 [rootk8s-master cephfs-provisioner]# cat cephfs-provisioner.yaml kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 metadata:name: cephfs-provisionernamespace: kube-system rules:- apiGroups: []resources: [persistentvolumes]verbs: [get, list, watch, create, delete]- apiGroups: []resources: [persistentvolumeclaims]verbs: [get, list, watch, update]- apiGroups: [storage.k8s.io]resources: [storageclasses]verbs: [get, list, watch]- apiGroups: []resources: [events]verbs: [create, update, patch]- apiGroups: []resources: [services]resourceNames: [kube-dns,coredns]verbs: [list, get]---kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata:name: cephfs-provisioner subjects:- kind: ServiceAccountname: cephfs-provisionernamespace: kube-system roleRef:kind: ClusterRolename: cephfs-provisionerapiGroup: rbac.authorization.k8s.io---apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata:name: cephfs-provisionernamespace: kube-system rules:- apiGroups: []resources: [secrets]verbs: [create, get, delete]- apiGroups: []resources: [endpoints]verbs: [get, list, watch, create, update, patch]---apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata:name: cephfs-provisionernamespace: kube-system roleRef:apiGroup: rbac.authorization.k8s.iokind: Rolename: cephfs-provisioner subjects: - kind: ServiceAccountname: cephfs-provisioner---apiVersion: v1 kind: ServiceAccount metadata:name: cephfs-provisionernamespace: kube-system---apiVersion: apps/v1 kind: Deployment metadata:name: cephfs-provisionernamespace: kube-system spec:replicas: 1selector:matchLabels:app: cephfs-provisionerstrategy:type: Recreatetemplate:metadata:labels:app: cephfs-provisionerspec:containers:- name: cephfs-provisionerimage: quay.io/external_storage/cephfs-provisioner:latestenv:- name: PROVISIONER_NAMEvalue: ceph.com/cephfs- name: PROVISIONER_SECRET_NAMESPACEvalue: cephfscommand:- /usr/local/bin/cephfs-provisionerargs:- -idcephfs-provisioner-1serviceAccount: cephfs-provisioner在集群中部署Cephfs-Provisioner客户端。 [rootk8s-master cephfs-provisioner]# kubectl apply -f cephfs-provisioner.yaml clusterrole.rbac.authorization.k8s.io/cephfs-provisioner created clusterrolebinding.rbac.authorization.k8s.io/cephfs-provisioner created role.rbac.authorization.k8s.io/cephfs-provisioner created rolebinding.rbac.authorization.k8s.io/cephfs-provisioner created serviceaccount/cephfs-provisioner created deployment.apps/cephfs-provisioner created当看到Cephfs-Provisioner客户端的Pod资源处于Running状态就表示部署成功了。 [rootk8s-master cephfs-provisioner]# kubectl get pod -n kube-system | grep cephfs cephfs-provisioner-67dd56fb57-l7xxm 1/1 Running 0 21m5.3.失败了。。。。。。。 6.K8S Volumes存储卷使用Cephfs文件系统 Volumes类型的存储卷无法像PV、PVC等通过mountOptions参数指定要使用的Cephfs文件系统因此Volumes存储卷只能使用默认的Cephfs文件系统基于这种场景我们可以在默认的Cephfs文件系统中创建出多个子目录供不同的客户端去使用这也是Cephfs文件系统最常用的方法。 6.1.在默认的Cephfs文件系统中为Volumes创建子目录 所谓默认的Cephfs文件系统指的是数据资源池为cephfs_data、元数据资源池为cephfs_metadata的Cephfs文件系统。 在Cephfs文件系统中为Volumes类型的存储卷创建独立的子目录来持久化容器的数据。 1默认的Cephfs文件系统的创建方法 1.创建元数据资源池 [rootceph-node-1 ~]# ceph osd pool create cephfs_metadata 16 16 pool cephfs_metadata created2.创建数据资源池 [rootceph-node-1 ~]# ceph osd pool create cephfs_data 16 16 pool cephfs_data created3.创建Cephfs文件系统 [rootceph-node-1 ~]# ceph fs new cephfs-storage cephfs_metadata cephfs_data new fs with metadata pool 8 and data pool 92挂载Cephfs文件系统 [rootceph-node-1 ceph-deploy]# mount -t ceph 192.168.20.20:6789,192.168.20.21:6789,192.168.20.22:6789:/ /kubernetes_cephfs/ -o nameadmin3为Volumes存储创建子目录 [rootceph-node-1 ~]# mkdir /kubernetes_cephfs/volumes_storage6.2.将K8S连接Cephfs的认证用户信息存储在Secret中 可以直接使用admin用户连接Ceph集群也可以专门创建一个。 1将认证用户的Key进行Base64加密 [rootceph-node-1 ~]# ceph auth get-key client.admin | base64 QVFCSVdVaGlFbWFGT0JBQTZKcjZpdFVlSGlMVlZPZVlGVnBSb2c9PQ2将加密后的用户认证Key存储在Secret资源中 [rootk8s-master volumes]# vim cephfs-volumes-secret.yaml apiVersion: v1 kind: Secret metadata:name: cephfs-volumes-secret data:key: QVFCSVdVaGlFbWFGT0JBQTZKcjZpdFVlSGlMVlZPZVlGVnBSb2c9PQ3创建Secret并查看资源的状态 [rootk8s-master volumes]# kubectl apply -f cephfs-volumes-secret.yaml secret/cephfs-secret created[rootk8s-master volumes]# kubectl get secret NAME TYPE DATA AGE cephfs-secret Opaque 1 3m30s6.3.Volumes存储卷对接Cephfs文件系统 创建一个Pod资源使用Volumes存储卷将Pod资源的数据持久化到Cephfs文件系统中的子目录里。 1编写Pod资源的资源编排文件 [rootk8s-master volumes]# vim cephfs-volumes-pod.yaml apiVersion: v1 kind: Pod metadata:name: cephfs-pod-volumes spec:containers:- name: cephfs-pod-volumesimage: nginx:1.15volumeMounts:- mountPath: /dataname: cephfs-volumevolumes:- name: cephfs-volumecephfs: #使用cephfs类型monitors: #monitor集群的地址- 192.168.20.21:6789- 192.168.20.22:6789- 192.168.20.23:6789path: /volumes_storage #挂载文件系统中的哪一个子目录user: admin #连接Ceph集群的用户secretRef: #用户的Secret资源名称name: cephfs-volumes-secret2创建Pod资源并查看资源的状态 [rootk8s-master volumes]# kubectl apply -f cephfs-volumes-pod.yaml pod/cephfs-pod-volumes created[rootk8s-master volumes]# kubectl get pod NAME READY STATUS RESTARTS AGE cephfs-pod-volumes 1/1 Running 0 4m18s6.4.进入Pod中产生数据验证数据持久化效果 1产生数据 [rootk8s-master volumes]# kubectl exec -it cephfs-pod-volumes bash rootcephfs-pod-volumes:/# cd /data/ rootcephfs-pod-volumes:/data# touch web{1..5}.index rootcephfs-pod-volumes:/data# ls web1.index web2.index web3.index web4.index web5.index2查看Cephfs文件系统中的数据持久化结构 之前已经将文件系统挂载到本地路径了可以直接看到一级一级目录的数据内容。 [rootceph-node-1 ~]# tree /kubernetes_cephfs/ /kubernetes_cephfs/ └── volumes_storage├── web1.index├── web2.index├── web3.index├── web4.index└── web5.index1 directory, 5 files
http://www.hkea.cn/news/14430827/

相关文章:

  • 南山龙岗最新通告宜昌网站优化
  • 企业网站做凭安认证有用吗全国建设地产网站
  • 前端网站建设德邦公司网站建设特点
  • 网站建设营销型qq邮箱官方网站
  • seo网站推广教程山东泰安人才网
  • 建工网校官网登录入口自己做的网站竞价优化
  • 一个微信公众号可以做几个网站展厅设计常用材料
  • 冬创网站建设培训中心python官方下载
  • 怎么做网站下载链接wordpress go跳转页面
  • wordpress 避免被刷死网站内链如何做优化
  • 服务定制网站ps如何做音乐网站
  • 建设网站需要哪些设备ios wordpress 编辑器
  • 网站怎样做百度推广计划西安市做网站的
  • 中国石化工程建设公司网站如何做代刷网站
  • 网站建设怎么样工作室网络销售是什么样的工作
  • 网站开发小程序开发公司被关闭的设计网站
  • 自适应网站是什么竞价网络推广
  • 网站设计的出路中文网站怎么做英文版
  • 网站被谷歌收录国内精自视频品线一区
  • 建设网站的服务宗旨百度最贵关键词排名
  • 南昌vr网站开发门户网站开发怎么收费
  • 网站网页设计前言长宁区网站建设
  • 代理ip注册网站都通不过如何投诉做网站的公司
  • 网站网址怎么写微信下拉小程序怎么关闭
  • 在线考试网站开发报价房屋网站模板
  • 泰安建设工程招聘信息网站个人做外贸怎样起步
  • 福州销售网站设计企业淘宝网建设网站意义
  • 南通网站seowordpress4.7.2
  • 微信公众平台如何绑定网站网站开发游戏
  • 创建站点如何做网站桐柏微网站开发