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

公众号开发 网站开发seo公司的选上海百首网络

公众号开发 网站开发,seo公司的选上海百首网络,最好的网站设计公司源码 php,厦门网络推广外包前情回顾 存储卷: emptyDir 容器内部,随着pod销毁,emptyDir也会消失 不能做数据持久化 hostPath:持久化存储数据 可以和节点上目录做挂载。pod被销毁了数据还在 NFS:一台机器,提供pod内容器所有的挂载点…

前情回顾

存储卷:

emptyDir 容器内部,随着pod销毁,emptyDir也会消失 不能做数据持久化

hostPath:持久化存储数据 可以和节点上目录做挂载。pod被销毁了数据还在

NFS:一台机器,提供pod内容器所有的挂载点

pv和pvc:

pvc就是pod发起的挂载请求

pv:持久化存储目录

静态pv和pvc: 运维负责:创建好持久化存储卷,声明好读写和挂载类型 以及可以提供的存储空间

pvc开发做,要和开发沟通好,你期望的读写和挂载类型,以及存储空间。

当我发布pvc之后可以自动生成pv,还可以在共享服务器上直接生成挂载目录。

pvc直接绑定和使用pv

动态pv

1.卷插件,k8s本身不支持的动态pv创建不包括nfs,需要声明和安装一个外部插件

Provisioner:存储分配器。动态创建pv,然后根据pvc的请求自动绑定和使用。

StorageClass:来定义pv的属性,存储类型,大小,回收策略。

用nfs来实现动态PV,NFS支持的方式NFS-client,Provisioner

实验模拟

步骤一:在stor01节点上安装nfs,并配置nfs服务


1、在stor01节点上安装nfs,并配置nfs服务
node02
cd /opt
mkdir k8s
chmod 777 k8s
vim /etc/exports
/opt/k8s 20.0.0.0/24(rw,no_root_squash,sync)
wq
systemctl restart rpcbind
systemctl restart nfs
showmount -emaster01
showmount -e 20.0.0.63
查看

接下来在matser01上配置

步骤二:创建 Service Account,用来管理 NFS Provisioner 在 k8s 集群中运行的权限和动态规则

vim nfs-client-rbac.yamlapiVersion: v1
kind: ServiceAccount
metadata:name: nfs-client-provisioner
---
#定义权限
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:name: nfs-client-provisioner-clusterrole
rules:- apiGroups: [""]
#apigroup定义了规则使用了哪个api的组,空字符“”,直接使用api的核心组的资源resources: ["persistentvolumes"]verbs: ["get", "list", "watch", "create", "delete"]
#表示权限的动作。- apiGroups: [""]resources: ["persistentvolumeclaims"]verbs: ["get", "list", "watch", "update"]#获取pv属性- apiGroups: ["storage.k8s.io"]resources: ["storageclasses"]verbs: ["get", "list", "watch"]#获取api活动的时间信息- 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
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.iowq

步骤三:使用 Deployment 来创建 NFS Provisioner 

vim /etc/kubernetes/manifests/kube-apiserver.yaml...
spec:containers:- command:- --feature-gares=RemoveSelfLink=false- --advertise-address=20.0.0.61feature-gates:在不破坏现有规则以及功能基础上引入新功能或者修改现有功能的机制。禁用不影响之前的规则wqkubectl apply -f /etc/kubernetes/manifests/kube-apiserver.yamlkubectl delete pods kube-apiserver -n kube-systemkubectl get pods -n kube-system | grep apiserver

部署nfs-provisioners插件:

nfs的provisioner的客户端以pod的方式运行在集群当中,监听k8s集群当中的pv的请求。动态的创建于NFS服务器相关的pv。

容器里使用配置,在provisioner当中定义好环境变量,穿给容器。storageclass的名称,nfs服务器的地址,nfs的目录

vim nfs-client-provisioner.yaml
#创建 NFS Provisioner
vim nfs-client-provisioner.yaml
kind: Deployment
apiVersion: apps/v1
metadata:name: nfs-client-provisioner
spec:replicas: 1selector:matchLabels:app: nfs1strategy:type: Recreatetemplate:metadata:labels:app: nfs1spec:serviceAccountName: nfs-client-provisioner 
#指定Service Account账户来调用containers:- name: nfs1image: quay.io/external_storage/nfs-client-provisioner:latestimagePullPolicy: IfNotPresentvolumeMounts:- name: nfs1mountPath: /persistentvolumesenv:- name: PROVISIONER_NAMEvalue: nfs-storage   
#配置provisioner的Name,确保该名称与StorageClass资源中的provisioner名称保持一致- name: NFS_SERVERvalue: stor01                     
#配置绑定的nfs服务器- name: NFS_PATHvalue: /opt/k8s                   
#配置绑定的nfs服务器目录volumes:                                  
#申明nfs数据卷- name: nfs-client-rootnfs:server:20.0.0.63path: /opt/k8skubectl apply -f nfs-client-provisioner.yaml 

步骤四:创建 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开头reclaimPolicy: Retain
#定义pv的回收策略,retain,另一个是delete,不支持回收
allowVolumeExpansion: true
#pv的存储空间可以动态的扩缩容kubectl apply -f nfs-client-storageclass.yaml

步骤五: 创建 PVC 和 Pod 测试

先创建pvcvim test-pvc-pod.yamlapiVersion: v1
kind: PersistentVolumeClaim
metadata:name: nfs-pvc
spec:accessModes:- ReadWriteManystorageClassName: nfs-client-storageclass    #关联StorageClass对象resources:requests:storage: 1Gi
---
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: nginx1mountPath: /usr/share/nginx/htmlvolumes:- name: nginx1persistentVolumeClaim:claimName: nfs-pvc      
#与PVC名称保持一致kubectl apply -f test-pvc-pod.yaml

nfs主机中: 

下面进行读写测试

总结
动态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://www.dinnco.com/news/58974.html

相关文章:

  • 如何做网站地图txt网络营销创意案例
  • 唐山模板网站建设石家庄seo外包的公司
  • lamp网站开发 pdfseo软件下载
  • 无需登录免费观看的直播抖音关键词排名优化软件
  • 个人建网站大概多少钱seo页面优化的方法
  • 龙岗在线网站制作百度怎么发布广告
  • 做运营需要看的网站免费seo课程
  • 织梦网站模板怎么做企业查询软件
  • 与小学生一起做网站国内新闻最新消息今天简短
  • 北京建设监管部门网站怎么做线上推广
  • 企业网站建设怎么做网络营销渠道的特点
  • 网站的大图标怎么做的短视频营销策略有哪些
  • 个人门户网站备案长沙seo公司
  • 做夹具需要知道的几个网站网络营销概念是什么
  • 武汉工业网站制作营销策划方案公司
  • 举报网站建设情况汇报免费网络营销方式
  • 山东青岛网站建设公司排名找竞价托管公司
  • 哈尔滨网站建设公司那家好网站制作教程
  • 有谁做分销网站seo关键词排名点击工具
  • 建网站需要什么程序厦门谷歌推广
  • 黄色视频做爰网站安全企业网站seo优化公司
  • wordpress 简码大全丁的老头seo博客
  • 白云区pc端网站建设网络推广培训课程内容
  • 中英文网站制作长沙网络营销公司
  • 深圳找个做网站平台的企业广告宣传
  • 国外的网站需要备案吗营销助手
  • 滕州市东方建设工程事务有限公司网站seo建站教程
  • 集团网站建设思路seo策略工具
  • 网站专题页面模板怎么注册个人网站
  • 绍兴建设开发有限公司网站沈阳seo网站关键词优化