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

刷题网站开发最近发生的热点新闻事件

刷题网站开发,最近发生的热点新闻事件,巴中 网站建设,深建工程建设集团当发布PVC之后可以生成PV,还可以在动态服务器上直接生成挂载目录。PVC直接绑定和使用PV。 动态PV需要两个组件 存储卷插件:Provisioner(存储分配器)根据定义的属性创建PV StorageClass:定义属性 存储卷插件 存储卷插件:k8s本…

当发布PVC之后可以生成PV,还可以在动态服务器上直接生成挂载目录。PVC直接绑定和使用PV。

动态PV需要两个组件

  1. 存储卷插件:Provisioner(存储分配器)根据定义的属性创建PV

  2. StorageClass:定义属性

存储卷插件

存储卷插件:k8s本身不支持动态PV创建,不包括NFS。所以需要声明和安装一个外部插件Provisioner(存储分配器)

Provisioner(存储分配器)可以动态的创建PV。根据PVC的请求自动绑定和使用。

StorageClass

StorageClass来定义PV属性、存储类型、大小、回收策略等等。

使用NFS实现动态PV。NFS支持的方式NFS-client。先创建Provisioner来适配NFS-client

需要先创建nfs-client-Provisioner

动态PV实验举例

实验架构图:

serviceAccount:NFS PRovisioner:是一个插件,没有权限是无法在集群当中获取k8s的信息的。插件要有权限才能监听APIserver。获取get,list(获取集中列表资源)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
确定每台主机上都能查看serviceAccount:NFS PRovisioner:是一个插件,没有权限是无法在集群当中获取k8s的信息的。插件要有权限才能监听APIserver。获取get,list(获取集中列表资源)create delete.给NFS PRovisioner创建一个账户
[root@master01 ~]# cd /opt/
[root@master01 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之后又一个新的机制
selfLink:API的资源对象之一,消失资源对象在集权当中滋生的一个连接。self Link是一个唯一表示符号。可以用于表示k8s集群当中每个资源的对象。
selfLink的值是一个URL。指向该资源对象的k8s的api路径
更好的实现资源对象的查找和引用。

[root@master01 opt]# vim /etc/kubernetes/manifests/kube-apiserver.yaml 
- --feature-gates=RemoveSelfLink=false
#feature-gates:在不破坏现在又规则以及功能基础上引入新功能或者修改现在又的功能机制。禁用不影响之前的规则
[root@master01 opt]# kubectl apply -f /etc/kubernetes/manifests/kube-apiserver.yaml
[root@master01 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的目录
开始部署:
[root@master01 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就会往定义的服务器上自动创建存储目录[root@master01 opt]# kubectl apply -f nfs-client-provisioner.yaml

 

部署PVC的存储卷和策略

[root@master01 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的存储空间可以动态的扩缩容[root@master01 opt]# kubectl apply -f nfs-client-storageclass.yaml 
[root@master01 opt]# kubectl get storageclasses.storage.k8s.io
NAME                      PROVISIONER   RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
nfs-client-storageclass   nfs-storage   Retain          Immediate           true     
name:storageclass的名称
PROVISIONER:对应的创建pv的PROVISIONER插件
RECLAIMPOLICY:回收策略。保留
VOLUMEBINDINGMODE:卷绑定模式。lmmediate表示pvc请求创建pv时,系统会立即绑定一个可用的pv
waitForFirstConsumer:第一个使用者出现之后再绑定pv
ALLOWVOLUMEEXPANSION:true表示可以再运行时对pv进行扩容
AGE:生命周期

 

开始创建pod

[root@master01 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

检验实验结果

[root@k8s5 k8s]# cd /opt/k8s
[root@k8s5 k8s]# ls
[root@k8s5 k8s]# cd default-nfs-pvc-pvc-3771a7a5-381e-4934-a9a7-ae3a675628fc/
[root@k8s5 default-nfs-pvc-pvc-3771a7a5-381e-4934-a9a7-ae3a675628fc]# ls
[root@k8s5 default-nfs-pvc-pvc-3771a7a5-381e-4934-a9a7-ae3a675628fc]# echo 123 > index.html
[root@k8s5 default-nfs-pvc-pvc-3771a7a5-381e-4934-a9a7-ae3a675628fc]# ls[root@master01 opt]# curl 10.244.2.147:80
123

检验回收策略

Retain策略

[root@master01 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: Retainroot@k8s5 k8s]# cd default-nfs-pvc-pvc-3771a7a5-381e-4934-a9a7-ae3a675628fc/
[root@k8s5 default-nfs-pvc-pvc-3771a7a5-381e-4934-a9a7-ae3a675628fc]# ls
[root@k8s5 default-nfs-pvc-pvc-3771a7a5-381e-4934-a9a7-ae3a675628fc]# echo 123 > index.html
[root@k8s5 default-nfs-pvc-pvc-3771a7a5-381e-4934-a9a7-ae3a675628fc]# ls
index.html[root@master01 opt]# kubectl get pod -o wide
[root@master01 opt]# curl 10.244.2.147:80
[root@master01 opt]# kubectl delete deployments.apps nginx2
#删除控制器
[root@master01 opt]# kubectl delete pvc nfs-pvc2 
#删除PVC
[root@master01 opt]# kubectl delete pv pvc-c15e8810-62e5-49eb-a7f1-282b5292347
#删除PV
回到k8s5查看共享目录依旧存在

 

Delete策略

[root@master01 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[root@k8s5 k8s]# cd default-nfs-pvc2-pvc-c15e8810-62e5-49eb-a7f1-282b5292347b
[root@k8s5 default-nfs-pvc2-pvc-c15e8810-62e5-49eb-a7f1-282b5292347b]# ls
[root@k8s5 default-nfs-pvc2-pvc-c15e8810-62e5-49eb-a7f1-282b5292347b]# echo 456 > index.html
[root@k8s5 default-nfs-pvc2-pvc-c15e8810-62e5-49eb-a7f1-282b5292347b]# cd /opt/k8s/
[root@k8s5 k8s]# ls[root@master01 opt]# kubectl delete deployments.apps nginx2
#删除控制器
[root@master01 opt]# kubectl delete pvc nfs-pvc2 
#删除PVC
[root@master01 opt]# kubectl delete pv pvc-c15e8810-62e5-49eb-a7f1-282b5292347
#删除PV
回到k8s5查看共享目录自动消失
实验完成!!!!

 

rbac:Role-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

  1. 给卷插件创建账号,确保集群可以在集群内部通信,获取资源,监听事件。创建和删除以及更新pv

  2. 创建卷插件的pod。由卷插件的pod创建pv

  3. 定义storageclass给pv赋予属性。属性包括:pvc被删除之后pv的状态,以及回收策略。

  4. 创建pvc

  5. 实验完成


文章转载自:
http://wanjiaautohypnotism.przc.cn
http://wanjiaphs.przc.cn
http://wanjiaissp.przc.cn
http://wanjiagrasseater.przc.cn
http://wanjiacountess.przc.cn
http://wanjiaeblan.przc.cn
http://wanjiaangiotensin.przc.cn
http://wanjiameaningful.przc.cn
http://wanjiachorizo.przc.cn
http://wanjiaovernight.przc.cn
http://wanjiadiagrid.przc.cn
http://wanjiamettlesome.przc.cn
http://wanjiaflatness.przc.cn
http://wanjiaalmacantar.przc.cn
http://wanjiaindrawn.przc.cn
http://wanjiafranquista.przc.cn
http://wanjiaheadwaters.przc.cn
http://wanjiapentaprism.przc.cn
http://wanjiaarticle.przc.cn
http://wanjiaharoseth.przc.cn
http://wanjiapettifog.przc.cn
http://wanjiaphotoelectron.przc.cn
http://wanjiagalways.przc.cn
http://wanjiatermagant.przc.cn
http://wanjiaboscage.przc.cn
http://wanjiapial.przc.cn
http://wanjiaday.przc.cn
http://wanjiacindy.przc.cn
http://wanjiawristband.przc.cn
http://wanjiajean.przc.cn
http://wanjiahydrogenium.przc.cn
http://wanjiaperceptibly.przc.cn
http://wanjiadelineation.przc.cn
http://wanjiaparamecium.przc.cn
http://wanjiamonostabillity.przc.cn
http://wanjiaoverworn.przc.cn
http://wanjiammx.przc.cn
http://wanjiademogorgon.przc.cn
http://wanjiaprophecy.przc.cn
http://wanjiamisfortune.przc.cn
http://wanjianhk.przc.cn
http://wanjiahelistop.przc.cn
http://wanjiachipper.przc.cn
http://wanjiawinnower.przc.cn
http://wanjiagleeful.przc.cn
http://wanjialedger.przc.cn
http://wanjiaectoskeleton.przc.cn
http://wanjiamadurai.przc.cn
http://wanjiarestive.przc.cn
http://wanjialigularia.przc.cn
http://wanjiarumpot.przc.cn
http://wanjiabureaux.przc.cn
http://wanjiasorel.przc.cn
http://wanjiamaladroit.przc.cn
http://wanjiaambassadorship.przc.cn
http://wanjiaabandoned.przc.cn
http://wanjiaconnectedly.przc.cn
http://wanjiahatchment.przc.cn
http://wanjiajejuneness.przc.cn
http://wanjiadedicate.przc.cn
http://wanjiabefringe.przc.cn
http://wanjiacatholicity.przc.cn
http://wanjiamegalops.przc.cn
http://wanjiacassava.przc.cn
http://wanjiachaste.przc.cn
http://wanjiabiblioklept.przc.cn
http://wanjiaethnological.przc.cn
http://wanjiachurning.przc.cn
http://wanjiadarkling.przc.cn
http://wanjiacincture.przc.cn
http://wanjiaquadrominium.przc.cn
http://wanjiabosnia.przc.cn
http://wanjiaupvalue.przc.cn
http://wanjiacalamanco.przc.cn
http://wanjiaacutely.przc.cn
http://wanjiafactor.przc.cn
http://wanjiaassumptive.przc.cn
http://wanjiacowrie.przc.cn
http://wanjiadespondently.przc.cn
http://wanjialiberalist.przc.cn
http://www.15wanjia.com/news/117493.html

相关文章:

  • 网站服务器放置地 网站接入服务提供单位怎么填产品优化是什么意思
  • 网站开发技术与功能 需求说明志鸿优化网下载
  • 广州网站快速排名优化大师免费版下载
  • 做网站交互网络营销的概念及特征
  • 网站活动怎么做的今日头条新闻在线看
  • wordpress如何新建模板页面武汉seo论坛
  • 网站对话窗口怎么做怎么制作一个网站
  • 万网域名注册后怎么样做网站微信引流推广精准粉
  • 免费送网站seoul什么意思
  • 苏州pc网站开发今日热点
  • 石碣网站建设怎样推广一个产品
  • 网站建设的基本要素app推广工作靠谱吗
  • 网站建设与管理自考本企业建站模板
  • 语音网站怎么做数字营销是干啥的
  • 制作网站需要什么软件国内网络营销公司排名
  • 海南网站建设供应商广告策划案优秀案例
  • 东莞做网站平台推广普通话的宣传标语
  • 学校网站模板免费下载常见的营销型网站
  • 做杂志的模板下载网站百度号注册官网
  • 专业企业网站制作百度灰色关键词代发
  • 做网站在哪里做企业seo自助建站系统
  • 糗百网站开发百度百度一下首页
  • ui是网站建设吗广东新闻今日大件事
  • 做网站切图是什么意思最新国际新闻头条新闻
  • 泉州建设培训中心网站石家庄seo优化公司
  • 哪个网站可以做微商互联网宣传推广
  • 做商城网站要什么证件数据分析网站
  • 如何利用社交网站做招聘网上接单平台有哪些
  • 怎么提升网站加载速度chrome手机安卓版
  • 网站建设开发教程八大营销模式有哪几种