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

php网站开发主要内容oa系统哪个公司做的好

php网站开发主要内容,oa系统哪个公司做的好,渭南做网站的公司,产品商城网站建设当发布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.zqtcl.cn/news/325579/

相关文章:

  • 县 住房和城乡建设局网站wordpress接入支付宝
  • 网站建设初期推广方式天津网站建设案例
  • 销项税和进项导入是在国税网站做吗凡科网站模块
  • 苏州建网站皆去苏州聚尚网络常州企业建站系统
  • 网站建设明细wordpress 主题稳定
  • 网站设计论文前言怎么写肇庆网站开发哪家专业
  • 商城建站系统松江新城做网站公司
  • 长沙招聘做搜狗pc网站优化排
  • 辽宁智能建站系统价格金融做市场广告挂哪些网站
  • 做外贸的有哪些网站互动平台游戏
  • 网站设计最好的公司idc网站模板源码下载
  • 网站建设历史视频制作软件有哪些
  • 加盟网站制作定制桥的设计网站建设
  • 深圳做宣传网站的公司开发电商网站多少钱
  • 自适应网站建设公司什么是网站死链
  • 自己给网站做支付接口wordpress elementor
  • 中国最新军事新闻网站优化推广
  • 有没有做3d衣服模型网站php网站开发目的
  • 东莞网站建设方案咨询wordpress易企秀
  • 漳诈网站建设免费的企业网站建设
  • 广州番禺区有什么好玩的地方优化软件有哪些
  • 面包机做面包网站wordpress获取用户注册时间
  • 福州网站建设个人兼职泰州seo排名扣费
  • 泰安北京网站建设公司个人自我介绍网页
  • 网站建设适应全屏如何自动深圳市哪里最繁华
  • 杭州网站推广公司阿里云wordpress 安装目录
  • 厦门优秀网站建设app项目开发流程
  • 工作设计室网站海外网站代理
  • 室内设计官方网站没网站怎么做cpa
  • 哪个网站做欧洲旅游攻略好wordpress编辑器字体大小