Kubernetes 基于NFS的动态存储申请
2021-04-13 04:27
标签:设定 binding man int 镜像 upd led efault abi 创建工作目录 下载nfs-provisioner对应的镜像,上传到自己的私有镜像中 编辑启动nfs-provisioner的deploy.yml文件 编辑自动创建pv相关的rbac文件 编辑创建StorageClass的启动文件 启动nfs-provisioner 下面我们通过一个简单的例子来验证刚创建的nfs-provisioner,例子中主要包含两个应用,一个busyboxy和一个web,两个应用挂载同一个PVC,其中busybox负责向共享存储中写入内容,web应用读取共享存储中的内容,并展示到界面。 编辑创建PVC文件 创建PVC,并检查是否能自动创建相应的pv 启动一个busybox应用,通过挂载共享目录,向其中写入数据 编辑启动文件 启动busybox 查看是否在对应的pv下生成了index.html 启动web应用(nginx),读取共享挂载中的内容 编辑启动文件 启动web程序 访问页面 参照github上的步骤执行,启动PVC后无法创建pv,查看nfs-provisioner服务的日志,有出现错误: 错误原因issues/1262,之后把错误中提到端口保留,其他端口号都去掉,正常 Kubernetes 基于NFS的动态存储申请 标签:设定 binding man int 镜像 upd led efault abi 原文地址:https://www.cnblogs.com/gaofeng-henu/p/12392076.html部署nfs-provisioner external-storage-nfs
$ mkdir -p /opt/k8s/nfs/data
$ docker pull fishchen/nfs-provisioner:v2.2.2
$ docker tag fishchen/nfs-provisioner:v2.2.2 192.168.0.107/k8s/nfs-provisioner:v2.2.2
$ docker push 192.168.0.107/k8s/nfs-provisioner:v2.2.2
$ cd /opt/k8s/nfs
$ cat > deploy.yml
$ cd /opt/k8s/nfs
$ cat > rbac.yml
$ cd /opt/k8s/nfs
$ cat > class.yml
$ kubectl create -f deploy.yml -f rbac.yml -f class.yml
验证和使用nfs-provisioner
$ cd /opt/k8s/nfs
$ cat > claim.yml
$ kubectl create -f claim.yml
$ kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
nfs Bound pvc-10a1a98c-2d0f-4324-8617-618cf03944fe 100Mi RWX example-nfs 11s
$kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pvc-10a1a98c-2d0f-4324-8617-618cf03944fe 100Mi RWX Delete Bound default/nfs example-nfs 18s
$ cd /opt/k8s/nfs
$ cat > deploy-busybox.yml /mnt/index.html; hostname >> /mnt/index.html; sleep 20; done'
imagePullPolicy: IfNotPresent
name: busybox
volumeMounts:
# name must match the volume name below
- name: nfs
mountPath: "/mnt"
volumes:
- name: nfs
persistentVolumeClaim:
claimName: nfs
EOF
$ cd /opt/k8s/nfs
$ kubectl create -f deploy-busybox.yml
$ cd /opt/k8s/nfs
$ ls data/pvc-10a1a98c-2d0f-4324-8617-618cf03944fe/
index.html
$ cat data/pvc-10a1a98c-2d0f-4324-8617-618cf03944fe/index.html
Sun Mar 1 12:51:30 UTC 2020
nfs-busybox-6b677d655f-qcg5c
$ cd /opt/k8s/nfs
$ cat >deploy-web.yml
$ cd /opt/k8s/nfs
$ kubectl create -f deploy-web.yml
遇到问题
error syncing claim "20eddcd8-1771-44dc-b185-b1225e060c9d": failed to provision volume with StorageClass "example-nfs": error getting NFS server IP for volume: service SERVICE_NAME=nfs-provisioner is not valid; check that it has for ports map[{111 TCP}:true {111 UDP}:true {2049 TCP}:true {20048 TCP}:true] exactly one endpoint, this pod's IP POD_IP=172.30.22.3
文章标题:Kubernetes 基于NFS的动态存储申请
文章链接:http://soscw.com/index.php/essay/75031.html