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

正规的培训行业网站制作seo教育

正规的培训行业网站制作,seo教育,云服务器免费永久,Python电影网站开发文章目录 前言技术积累存储类(storage class)什么是NFS什么是PV\PVC为什么要用NFS-StorageClass 安装NFS-StorageClass保证K8S集群正常投用安装NFS工具与客户端NFS安装常见错误安装NFS-StorageClass存储器 前言 前面的博文我们介绍了如何用kuberadmin的…

文章目录

    • 前言
    • 技术积累
      • 存储类(storage class)
      • 什么是NFS
      • 什么是PV\PVC
      • 为什么要用NFS-StorageClass
    • 安装NFS-StorageClass
      • 保证K8S集群正常投用
      • 安装NFS工具与客户端
      • NFS安装常见错误
      • 安装NFS-StorageClass存储器

前言

前面的博文我们介绍了如何用kuberadmin的架构概述与简单执行流程,以及部署K8S集群的详细步骤。今天我们继续介绍如何安装持久化工具NFS-StorageClass。

技术积累

存储类(storage class)

存储类是Kubernetes资源类型的一种,是管理员为创建PV方便而按需创建的类别。
要使用 StorageClass,就得安装对应的自动配置程序,比如这里存储后端使用的是 nfs,那么就需要使用到一个 nfs-client 的自动配置程序,也叫它 Provisioner,这个程序使用我们已经配置好的 nfs 服务器,来自动创建持久卷,也就是自动创建 PV。PV、PVC和StorageClass之间的运作关系如下图所示:
在这里插入图片描述

什么是NFS

网络文件系统,英文Network File System(NFS),是由SUN公司研制的UNIX表示层协议(presentation layer protocol),能使使用者访问网络上别处的文件就像在使用自己的计算机一样。

NFS是主流的k8s数据持久化解决方案与pod共享存储解决方案;NFS数据卷提供对NFS挂载支持,可以自动将NFS共享 路径挂载到Pod中;NFS是一个主流的文件共享服务器。

什么是PV\PVC

在Kubernetes中,PV(Persistent Volume)网络管理员配置的存储和PVC(Persistent Volume Claim)用户申请的存储是用于持久化存储的两个概念,
它们的区别如下:

PV是实际的存储资源,例如物理存储设备、网络存储设备等。PVC是对PV的请求,描述了应用程序需要多少存储资源以及存储资源的属性。
PV由管理员手动配置,而PVC由应用程序自动创建。应用程序在需要持久化存储时,可以创建一个PVC,Kubernetes将根据PVC的要求自动查找或创建一个匹配的PV,并将PV与PVC进行绑定。

PV和PVC是分离的概念,它们可以独立地管理。当一个PVC被删除时,它所绑定的PV并不会立即被删除。相反,PV会被标记为"Released"状态,等待管理员手动删除。
PV和PVC之间的绑定是一对一的关系。一个PVC只能绑定一个PV,而一个PV只能被一个PVC绑定。但是,多个PVC可以绑定同一个PV,以实现共享存储。

PV可以设置访问模式(Access Modes),例如ReadWriteOnce、ReadWriteMany和ReadOnlyMany。Access Modes定义了多个Pod如何访问同一个PV。例如,ReadWriteOnce表示PV只能被一个Pod以读写方式访问,而ReadWriteMany表示PV可以被多个Pod以读写方式访问。

为什么要用NFS-StorageClass

​ PV 都是静态的,要使用的一个 PVC 的话就必须手动去创建一个 PV,这种方式在很大程度上并不能满足我们的需求,比如我们有一个应用需要对存储的并发度要求比较高,而另外一个应用对读写速度又要求比较高,特别是对于 StatefulSet 类型的应用简单的来使用静态的 PV 就很不合适了,这种情况下我们就需要用到动态 PV,这就需要 StorageClass动态的创建PV。

​要使用 StorageClass,需要安装对应的自动配置程序,比如我们这里存储使用的是 NFS,那么我们就需要使用到一个 nfs-client 的自动配置程序,我们也叫它 Provisioner,这个程序使用我们已经配置好的 NFS服务器,来自动创建持久卷,也就是自动帮我们创建 PV。

安装NFS-StorageClass

保证K8S集群正常投用

[root@master ~]# kubectl get nodes
NAME     STATUS   ROLES                  AGE   VERSION
master   Ready    control-plane,master   60d   v1.27.2
node1    Ready    <none>                 60d   v1.27.2
node2    Ready    <none>                 60d   v1.27.2
[root@master ~]#

安装NFS工具与客户端

# 所有kubernetes集群节点中都需要安装nfs
[root@master ~]# yum install -y nfs-utils# 在master节点中执行
[root@master ~]# echo "/data/nfs *(insecure,rw,sync,no_root_squash)" > /etc/exports
[root@master ~]# mkdir -p /data/nfs && chmod -R 777 /data/nfs
[root@master ~]# exportfs -r
#master节点启动rpc 与 nfs
[root@master ~]# systemctl enable rpcbind && systemctl start rpcbind
[root@master ~]# systemctl enable nfs && systemctl start nfs#在所有的node节点执行
[root@master ~]# systemctl enable rpcbind && systemctl start rpcbind
[root@master ~]# systemctl enable nfs && systemctl start nfs
[root@master ~]# showmount -e master#验证k8s集群节点nfs工具安装和配置正确
[root@master ~]#  showmount -e  master
Export list for master:
/data/nfs *
[root@master ~]#

如下图所示表示安装成功:
在这里插入图片描述

NFS安装常见错误

1、clnt_create: RPC: Port mapper failure - Unable to receive: errno 111 (Connection refused)
需要关闭服务端和客户端防火墙以及selinux。

安装NFS-StorageClass存储器

创建k8s执行文件

[root@master ~]# vim nfs-storage.yaml
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:name: nfs-storageannotations:storageclass.kubernetes.io/is-default-class: "true"
provisioner: nfs-provisioner  
parameters:archiveOnDelete: "true" ---
apiVersion: apps/v1
kind: Deployment
metadata:name: nfs-client-provisionerlabels:app: nfs-client-provisioner# replace with namespace where provisioner is deployednamespace: default
spec:replicas: 1strategy:type: Recreateselector:matchLabels:app: nfs-client-provisionertemplate:metadata:labels:app: nfs-client-provisionerspec:serviceAccountName: nfs-client-provisionercontainers:- name: nfs-client-provisionerimage: registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/nfs-subdir-external-provisioner:v4.0.2# resources:#    limits:#      cpu: 10m#    requests:#      cpu: 10mvolumeMounts:- name: nfs-client-rootmountPath: /persistentvolumesenv:- name: PROVISIONER_NAMEvalue: nfs-provisioner- name: NFS_SERVERvalue: 10.10.22.91 ## master nfs服务器IP- name: NFS_PATH  value: /data/nfs  ## nfs服务器共享的目录路径volumes:- name: nfs-client-rootnfs:server: 10.10.22.91path: /data/nfs
---
apiVersion: v1
kind: ServiceAccount
metadata:name: nfs-client-provisioner# replace with namespace where provisioner is deployednamespace: default
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: nfs-client-provisioner-runner
rules:- apiGroups: [""]resources: ["nodes"]verbs: ["get", "list", "watch"]- 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"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: run-nfs-client-provisioner
subjects:- kind: ServiceAccountname: nfs-client-provisioner# replace with namespace where provisioner is deployednamespace: default
roleRef:kind: ClusterRolename: nfs-client-provisioner-runnerapiGroup: rbac.authorization.k8s.io
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: leader-locking-nfs-client-provisioner# replace with namespace where provisioner is deployednamespace: default
rules:- apiGroups: [""]resources: ["endpoints"]verbs: ["get", "list", "watch", "create", "update", "patch"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: leader-locking-nfs-client-provisioner# replace with namespace where provisioner is deployednamespace: default
subjects:- kind: ServiceAccountname: nfs-client-provisioner# replace with namespace where provisioner is deployednamespace: default
roleRef:kind: Rolename: leader-locking-nfs-client-provisionerapiGroup: rbac.authorization.k8s.io

执行k8s安装文件

#执行nfs-storageclass安装文件
[root@master ~]# kubectl apply -f nfs-storage.yaml
#验证执行结果
[root@master ~]# kubectl get storageclass
NAME                    PROVISIONER       RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
nfs-storage (default)   nfs-provisioner   Delete          Immediate           false                  60d
[root@master ~]#

如下图所示表示安装成功:
在这里插入图片描述

⭐️路漫漫其修远兮,吾将上下而求索 🔍

http://www.yayakq.cn/news/200824/

相关文章:

  • 网站建设与管理插图ui设计最好的培训机构
  • 网站策划师seo资讯
  • 做洁净的网站广西网络营销外包公司
  • 企业网站能个人备案吗景德镇建设局网站
  • 渝北网站建设公司鸣蝉智能建站
  • 郑州百度网站推广python做简单网站
  • 营销型网站建设sempk个人网站 可以做淘宝客吗
  • 网站免费优化软件企业画册宣传设计
  • 有做盆景的网站做网站需要哪些素材
  • 云南网站新备案制实业 东莞网站建设
  • 网站建设公司问答营销案例手机在线ps照片处理
  • 佛山企业模板建站国家单位网站建设要多久
  • 搭建网站程序哪儿有网络推广培训
  • 安徽盛绿建设网站装饰网站建设专家
  • 怎样做旅游网站设计怎样在手机上做动漫视频网站
  • 丹阳网站建设咨询本地网站可以做吗?
  • 做室内装修设计的网站深圳网站建设价钱
  • 桂林住房城乡建设厅网站最新新闻摘抄
  • 汝州市住房和城乡规划建设局网站重庆市建设工程信息网成绩查询
  • 沈阳市工伤网站做实做网站的文案怎么写
  • 怎么可以自己做网站互联网广告公司排名前十
  • 台州 网站建设类似视频教程网站的wordpress主题
  • 优享揭阳网站建设工商局注册公司网站
  • 圣弘建设股份有限公司网站百度制作的wordpress工具栏
  • asp 网站开发 软件公司网站建设费用入什么科目
  • 网站建设与管理教学大纲广州做网站发多少钱
  • 环球资源网站做网站价格表
  • 网站的建设主题运营一个网站要多少钱
  • 江门整站优化十大社交电商平台排名
  • 吉林省建设行业继续教续网站网站建设岗位的任职资格