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

聚美优品网站建设策划书谷歌关键词搜索

聚美优品网站建设策划书,谷歌关键词搜索,深圳科技公司排名100,家用机做网站服务器当发布PVC之后可以生成PV#xff0c;还可以在动态服务器上直接生成挂载目录。PVC直接绑定和使用PV。 动态PV需要两个组件 存储卷插件#xff1a;Provisioner(存储分配器)根据定义的属性创建PV StorageClass#xff1a;定义属性 存储卷插件 存储卷插件#xff1a;k8s本…当发布PVC之后可以生成PV还可以在动态服务器上直接生成挂载目录。PVC直接绑定和使用PV。 动态PV需要两个组件 存储卷插件Provisioner(存储分配器)根据定义的属性创建PV StorageClass定义属性 存储卷插件 存储卷插件k8s本身不支持动态PV创建不包括NFS。所以需要声明和安装一个外部插件Provisioner(存储分配器) Provisioner(存储分配器)可以动态的创建PV。根据PVC的请求自动绑定和使用。 StorageClass StorageClass来定义PV属性、存储类型、大小、回收策略等等。 使用NFS实现动态PV。NFS支持的方式NFS-client。先创建Provisioner来适配NFS-client 需要先创建nfs-client-Provisioner 动态PV实验举例 实验架构图 serviceAccountNFS PRovisioner是一个插件没有权限是无法在集群当中获取k8s的信息的。插件要有权限才能监听APIserver。获取getlist(获取集中列表资源)create delete. 开始实验 实验架构 master01: 20.0.0.32 ndoe01: 20.0.0.34 node02: 20.0.0.35 k8s5: 20.0.0.36 NFS服务k8s5 mkdir k8s chmod 777 k8s/ vim /etc/exports /opt/k8s 20.0.0.0/24(rw,no_root_squash,sync)systemctl restart rpcbind systemctl restart nfs showmount -e 确定每台主机上都能查看serviceAccountNFS PRovisioner是一个插件没有权限是无法在集群当中获取k8s的信息的。插件要有权限才能监听APIserver。获取getlist(获取集中列表资源)create delete.给NFS PRovisioner创建一个账户 [rootmaster01 ~]# cd /opt/ [rootmaster01 opt]# vim nfs-client-rbac.yaml #定义账户类型和名称 apiVersion: v1 kind: ServiceAccount metadata:name: nfs-client-provisioner #定义账户的名称叫nfs-client-provisioner ---#定义类型名称和权限以及动作 apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata:name: nfs-client-provisioner-role rules: #定义权限- apiGroups: [] #apiGroups定义规则可以使用哪个api组的权限 #[]如果为空表示直接使用api的核心资源resources: [persistentvolumes] #定义在核心组中需要的资源.定义获取PV的相关资源verbs: [get,list,watch,create,delete] #表示权限需要哪些动作 #watch表示监听 #表示声明的账号可以对PV进行这些操作- apiGroups: []resources: [persistentvolumeclaims] #定义获取pvc的相关组件verbs: [watch,get,list,update] #表示权限需要哪些动作- apiGroups: [storage.k8s.io]resources: [storageclass]verbs: [get,watch,get]- apiGroups: [] #获取核心组件中的事件信息 #api在调用时候的所有事件信息resources: [events]verbs: [get,create,watch,update,patch]- apiGroups: []resources: [endpoints] #获取服务节点的终端IP地址verbs: [delete,create,get,watch,update,patch,list] #获取权限需要哪些动作---#开始绑定角色和权限 apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata:name: nfs-client-provisioner-bind subjects: - kind: ServiceAccountname: nfs-client-provisioner #声明账户的名称需要一一对应namespace: default #要在哪个有权限就声明使用哪个命名空间 roleRef:kind: ClusterRolename: nfs-client-provisioner-role #声明调用权限的名称apiGroup: rbac.authorization.k8s.io #声明api的组名 #将定义好的集群规则定义好的权限都赋给nfs-client-provisioner账户 kubectl apply -f nfs-client-rbac.yaml 角色和权限都创建完毕 部署插件 NFS-privisioner。使用deployment来部署插件 pod 1.20之后又一个新的机制 selfLinkAPI的资源对象之一消失资源对象在集权当中滋生的一个连接。self Link是一个唯一表示符号。可以用于表示k8s集群当中每个资源的对象。 selfLink的值是一个URL。指向该资源对象的k8s的api路径 更好的实现资源对象的查找和引用。 [rootmaster01 opt]# vim /etc/kubernetes/manifests/kube-apiserver.yaml - --feature-gatesRemoveSelfLinkfalse #feature-gates在不破坏现在又规则以及功能基础上引入新功能或者修改现在又的功能机制。禁用不影响之前的规则 [rootmaster01 opt]# kubectl apply -f /etc/kubernetes/manifests/kube-apiserver.yaml [rootmaster01 opt]# kubectl get pod -n kube-system kubectl delete pod -n kube-system kube-apiserver部署nfs-provisioner的插件 nfs的provisioner的客户端以pod的方式运行在集群中监听k8s当中的pv请求。动态的创建于nfs服务相关的PV 容器使用的配置在provisioner当中定义好环境变量。传给容器。storageclass的名称、nfs服务器的地址以及nfs的目录 开始部署 [rootmaster01 opt]# vim nfs-client-provisioner.yaml apiVersion: apps/v1 kind: Deployment metadata:name: nfs-provisionerlabels:app: nfs1 spec:replicas: 1selector:matchLabels:app: nfs1template:metadata:labels:app: nfs1spec:serviceAccountName: nfs-client-provisionercontainers: #指定容器- name: nfs1image: quay.io/external_storage/nfs-client-provisioner:latestvolumeMounts:- name: nfsmountPath: /persistentvolumesenv:- name: PROVISIONER_NAMEvalue: nfs-storage #配置provisioner的账户名称。要和storageclass的资源名称一致- name: NFS_SERVER #nfs共享服务器的地址value: 20.0.0.36- name: NFS_PATHvalue: /opt/k8s #把变量传递给内部容器设置共享服务器和共享目录volumes:- name: nfsnfs:server: 20.0.0.36path: /opt/k8s #表示后续在哪创建存储卷。定义后续存储卷存储的位置。 #provisioner的作用就是创建pv #定义pv的属性 #告诉你nfs共享的服务器 #告诉你共享目录 #容器和本地目录进行挂载 #当有符合storageclass的pvc请求来了之后 #这个nfs-client-provisioner就会往定义的服务器上自动创建存储目录[rootmaster01 opt]# kubectl apply -f nfs-client-provisioner.yaml部署PVC的存储卷和策略 [rootmaster01 opt]# vim nfs-client-storageclass.yaml apiVersion: storage.k8s.io/v1 kind: StorageClass metadata:name: nfs-client-storageclass #匹配provisioner provisioner: nfs-storage #定义pv的相关属性 parameters:archiveOnDelete: false #表示当pvc被删除之后pv的状态。有false和true两种 #如果是false。pvc如果被删除那么pv的状态将是released。可以人工调整继续使用 #如果定义是true那么pv的状态将是Archived。表示pv将不再可用。 #一般来说都用false reclaimPolicy: Retain #定义pv的回收策略。reclaimPolicy定义的只支持两种retain和delete allowVolumeExpansion: true #pv的存储空间可以动态的扩缩容[rootmaster01 opt]# kubectl apply -f nfs-client-storageclass.yaml [rootmaster01 opt]# kubectl get storageclasses.storage.k8s.io NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE nfs-client-storageclass nfs-storage Retain Immediate true namestorageclass的名称 PROVISIONER对应的创建pv的PROVISIONER插件 RECLAIMPOLICY回收策略。保留 VOLUMEBINDINGMODE卷绑定模式。lmmediate表示pvc请求创建pv时系统会立即绑定一个可用的pv waitForFirstConsumer第一个使用者出现之后再绑定pv ALLOWVOLUMEEXPANSIONtrue表示可以再运行时对pv进行扩容 AGE生命周期 开始创建pod [rootmaster01 opt]# vim pvc-pod.yaml #创建PVC apiVersion: v1 kind: PersistentVolumeClaim metadata:name: nfs-pvc spec:accessModes:- ReadWriteManystorageClassName: nfs-client-storageclassresources:requests:storage: 2Gi #创建一个pvc名称为nfs-pvc使用的pv属性是nfs-client-storageclass定义的属性 #创建的pv大小是2Gi最后由provisioner---apiVersion: apps/v1 kind: Deployment metadata:name: nginx1labels:app: nginx1 spec:replicas: 1selector:matchLabels:app: nginx1template:metadata:labels:app: nginx1spec:containers:- name: nginx1image: nginx:1.22volumeMounts:- name: htmlmountPath: /usr/share/nginx/htmlvolumes:- name: htmlpersistentVolumeClaim: #指定pvcclaimName: nfs-pvc #pod引用上面的pvc 检验实验结果 [rootk8s5 k8s]# cd /opt/k8s [rootk8s5 k8s]# ls [rootk8s5 k8s]# cd default-nfs-pvc-pvc-3771a7a5-381e-4934-a9a7-ae3a675628fc/ [rootk8s5 default-nfs-pvc-pvc-3771a7a5-381e-4934-a9a7-ae3a675628fc]# ls [rootk8s5 default-nfs-pvc-pvc-3771a7a5-381e-4934-a9a7-ae3a675628fc]# echo 123 index.html [rootk8s5 default-nfs-pvc-pvc-3771a7a5-381e-4934-a9a7-ae3a675628fc]# ls[rootmaster01 opt]# curl 10.244.2.147:80 123 检验回收策略 Retain策略 [rootmaster01 opt]# vim nfs-client-storageclass.yaml apiVersion: storage.k8s.io/v1 kind: StorageClass metadata:name: nfs-client-storageclass #匹配provisioner provisioner: nfs-storage #定义pv的相关属性 parameters:archiveOnDelete: false #表示当pvc被删除之后pv的状态。有false和true两种 #如果是false。pvc如果被删除那么pv的状态将是released。可以人工调整继续使用 #如果定义是true那么pv的状态将是Archived。表示pv将不再可用。 #一般来说都用false reclaimPolicy: Retain allowVolumeExpansion: true #pv的存储空间可以动态的扩缩容开始测试资源回收策略 reclaimPolicy: Retainrootk8s5 k8s]# cd default-nfs-pvc-pvc-3771a7a5-381e-4934-a9a7-ae3a675628fc/ [rootk8s5 default-nfs-pvc-pvc-3771a7a5-381e-4934-a9a7-ae3a675628fc]# ls [rootk8s5 default-nfs-pvc-pvc-3771a7a5-381e-4934-a9a7-ae3a675628fc]# echo 123 index.html [rootk8s5 default-nfs-pvc-pvc-3771a7a5-381e-4934-a9a7-ae3a675628fc]# ls index.html[rootmaster01 opt]# kubectl get pod -o wide [rootmaster01 opt]# curl 10.244.2.147:80 [rootmaster01 opt]# kubectl delete deployments.apps nginx2 #删除控制器 [rootmaster01 opt]# kubectl delete pvc nfs-pvc2 #删除PVC [rootmaster01 opt]# kubectl delete pv pvc-c15e8810-62e5-49eb-a7f1-282b5292347 #删除PV 回到k8s5查看共享目录依旧存在 Delete策略 [rootmaster01 opt]# vim nfs-client-storageclass.yaml apiVersion: storage.k8s.io/v1 kind: StorageClass metadata:name: nfs-client-storageclass #匹配provisioner provisioner: nfs-storage #定义pv的相关属性 parameters:archiveOnDelete: false #表示当pvc被删除之后pv的状态。有false和true两种 #如果是false。pvc如果被删除那么pv的状态将是released。可以人工调整继续使用 #如果定义是true那么pv的状态将是Archived。表示pv将不再可用。 #一般来说都用false reclaimPolicy: Delete allowVolumeExpansion: true #pv的存储空间可以动态的扩缩容reclaimPolicy: Delete[rootk8s5 k8s]# cd default-nfs-pvc2-pvc-c15e8810-62e5-49eb-a7f1-282b5292347b [rootk8s5 default-nfs-pvc2-pvc-c15e8810-62e5-49eb-a7f1-282b5292347b]# ls [rootk8s5 default-nfs-pvc2-pvc-c15e8810-62e5-49eb-a7f1-282b5292347b]# echo 456 index.html [rootk8s5 default-nfs-pvc2-pvc-c15e8810-62e5-49eb-a7f1-282b5292347b]# cd /opt/k8s/ [rootk8s5 k8s]# ls[rootmaster01 opt]# kubectl delete deployments.apps nginx2 #删除控制器 [rootmaster01 opt]# kubectl delete pvc nfs-pvc2 #删除PVC [rootmaster01 opt]# kubectl delete pv pvc-c15e8810-62e5-49eb-a7f1-282b5292347 #删除PV 回到k8s5查看共享目录自动消失 实验完成 rbacRole-based ACCESS CONTROL基础权限配置。用来定义角色在集群当中可以使用的权限。 provisioner的作用就是创建pv nfs-client-provisioner.yaml的作用就是定义pv的属性告诉你nfs共享的服务器。告诉你共享目录。容器和本地目录进行挂载。当有符合storageclass的pvc请求来了之后这个nfs-client-provisioner就会往定义的服务器上自动创建存储目录 工作流程图 总结 动态pv的两个组件 provisioner插件支持nfs。创建pv目录 strogeclass定义pv的属性。 动态pv的默认策略是删除 动态pv删除pvc的状态。最好设置为releassed 给卷插件创建账号确保集群可以在集群内部通信获取资源监听事件。创建和删除以及更新pv 创建卷插件的pod。由卷插件的pod创建pv 定义storageclass给pv赋予属性。属性包括pvc被删除之后pv的状态以及回收策略。 创建pvc 实验完成
http://www.lakalapos1.cn/news/70642/

相关文章:

  • 山西做网站哪个好网站修改title
  • 国外家装设计网站做电影网站投资多少钱
  • 照明灯企业网站织梦模板网站开发需要几个人
  • 网站建设方案数建设局网站公告
  • 保定高碑店网站建设网站设计宽度
  • 重庆慕尚网站建设网站做的漂浮为什么不动
  • 怎么自己开一个网站好的平面网站模板
  • 淘客网站怎么做重庆综合网站建设配件
  • 可信网站认证 费用定制头像的网站
  • 电销做网站的话术齐河网站建设公司价格
  • 网页制作的公司网站seo基础培训教程
  • 中企动力建设网站怎么样网站的根目录是什么
  • 网站外部优化用div做网站代码
  • 网站建站实训总结网站空间是服务器吗
  • 申请建设活动中心网站大连网页设计学校
  • 长沙建网站理上海建设工程质监局网站
  • wordpress 制作网站模板网站建设为什么要推广
  • 网站建设的重要性与价值设计的商城网站建设
  • 用jsp做的可运行的网站免费推广的软件
  • 2个域名指向同一个网站桐城建设规划局网站
  • 网站建设在线网站建设合作协议书
  • 做婚介打么网站好wordpress文章被采集
  • 秦皇岛建设网站官网wordpress增加管理员权限
  • 张家港网站制作公司网站设计尺寸1920
  • 网站网页设计要求产品设计培训机构排名
  • 图跃企业网站建设网站集约化建设行业规定
  • 哪个网站可以做医学基础知识题空间网址
  • 班级网站建设模板国外专门做旅行社的网站
  • 郑州上海做网站的公司有哪些郑州广告设计与制作公司
  • 建立个人网站费用乌兰察布做网站的公司