菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
498
0

ubuntu kubernetes中使用NFS创建pv_pvc

原创
05/13 14:22
阅读数 603942

标签:source   exec   pat   tor   creat   通过   check   item   网络文件系统   

1、NFS 介绍
NFS 即网络文件系统(Network File-System),可以通过网络让不同机器、不同系统之间可以实现文件共享。通过 NFS,可以访问远程共享目录,就像访问本地磁盘一样。NFS 只是一种文件系统,本身并没有传输功能,是基于 RPC(远程过程调用)协议实现的,采用 C/S 架构。

2、安装 NFS 软件包

#1安装nfs服务端
sudo apt install nfs-kernel-server -y
 
#2. 创建目录
sudo mkdir -p /data/k8s/
 
#3. 使任何客户端均可访问
sudo chown nobody:nogroup /data/k8s/  
#sudo chmod 755 /data/k8s/
sudo chmod 777 /data/k8s/
 
#4. 配置/etc/exports文件, 使任何ip均可访问(加入以下语句)
vi /etc/exports
/data/k8s/ *(rw,sync,no_subtree_check)
  
#5. 检查nfs服务的目录
sudo exportfs -ra (重新加载配置)
sudo showmount -e (查看共享的目录和允许访问的ip段)
 
#6. 重启nfs服务使以上配置生效
sudo systemctl restart nfs-kernel-server
#sudo /etc/init.d/nfs-kernel-server restart
 
#查看nfs服务的状态是否为active状态:active(exited)或active(runing)
systemctl status nfs-kernel-server
 
#7. 测试nfs服务是否成功启动
 
#安装nfs 客户端
sudo apt-get install nfs-common
#创建挂载目录
 sudo mkdir /data/k8s/
 
#7.4 在主机上的Linux中测试是否正常
sudo mount -t nfs -o nolock -o tcp 192.168.100.11:/data/k8s/ /data/k8s/(挂载成功,说明nfs服务正常)
 
#错误 mount.nfs: access denied by server while mounting

3创建pv(master上)vim mypv.yaml //内容如下

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv001
spec:
  capacity:
    storage: 100M
  accessModes:
    - ReadWriteMany
  nfs:
    path: /data/k8s/
    server: 192.168.100.11

kubectl create -f mypv.yaml

kubectl get pv

状态为Available,这是因为它还没有绑定到任何的pvc上面,当定义完pvc后,就可以自动绑定了。

4 创建pvc(master上)vim mypvc.yaml //内容如下

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: myclaim
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 8M

kubectl create -f mypvc.yaml

kubectl get pvc

可以看到,pvc状态为Bound,它绑定了pv001

5 定义pod    vim pvpod.yaml //内容如下

apiVersion: v1
kind: Pod
metadata:
  name: httpd-pvpod
spec:
  containers:
  - image: httpd
    name: httpd-withpvc-pod
    imagePullPolicy: Always
    volumeMounts:
    - mountPath: "/usr/local/apache2/htdocs/"
      name: httpd-volume
  volumes:
    - name: httpd-volume
      persistentVolumeClaim:
        claimName: myclaim

kubectl create -f pvpod.yaml

kubectl describe pod httpd-pvpod //查看Volumes那部分里的ClaimName

6 验证

#1到NFS的共享目录下创建一个文件
cd /data/k8s/
echo "Test file" > 1.html
#2进入到httpd-pod里
#kubectl exec -it httpd-pvpod bash
kubectl exec -it httpd-pvpod /bin/sh
cat /usr/local/apache2/htdocs/1.html
#3删除httpd-pvpod
kubectl delete pod httpd-pvpod
cat /data/k8s/1.html
#4重建httpd-pod
kubectl create -f pvpod.yaml
#5curl访问
kubectl get pod httpd-pvpod -o wide //查看其对应的IP

 

ubuntu kubernetes中使用NFS创建pv_pvc

发表评论

0/200
498 点赞
0 评论
收藏
为你推荐 换一批