kubernetes的学习—k8s中的nfs的部署实验(使用pv、pvc)

k8s中的nfs的部署实验(使用pv、pvc)

实验准备

五台主机
master   192.168.220.104
node-1   192.168.220.105
node-2   192.168.220.106
node-3   192.168.220.107
nfs-web  192.168.220.100

1、每台主机上都要安装好nfs

yum install -y nfs-utils

2、在nfs-web数据共享主机上创建nfs共享文件

[root@nfs ~]# mkdir -p /k8s-volume-nfs/web
[root@nfs ~]# cd /k8s-volume-nfs/web
[root@nfs web]# pwd
/k8s-volume-nfs/web
[root@nfs web]# echo "welcome zjx" >index.html
[root@nfs web]# cat index.html
welcome zjx

3、编写PersistentVolume文件

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv-nfs
  labels:
    type: pv-nfs
spec:
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteMany
  storageClassName: nfs
  nfs:
    server: 192.168.220.100
    path: "/k8s-volume-nfs/web"
    readOnly: false
17:03:59[root@master ~]# kubectl get pv
NAME             CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                   STORAGECLASS   REASON   AGE
pv-nfs           5Gi        RWX            Retain           Bound    default/pv-claim-nfs    nfs                     3d2h

4、编写PersistentVolumeClaim

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pv-claim-nfs
spec:
  storageClassName: nfs
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 1Gi
17:04:10[root@master ~]# kubectl get pvc
NAME            STATUS   VOLUME           CAPACITY   ACCESS MODES   STORAGECLASS   AGE
pv-claim-nfs    Bound    pv-nfs           5Gi        RWX            nfs            3d2h

5、编写deploy部署pod的yaml文件

apiVersion: apps/v1
kind: Deployment
metadata:
  name: deploy-nfs
  labels:
    app: deploy-nfs
spec:
  replicas: 3
  selector:
    matchLabels:
      app: deploy-nfs
  template:
    metadata:
      labels:
        app: deploy-nfs
    spec:
      volumes:
        - name: deploy-pv-storage
          persistentVolumeClaim:
            claimName: pv-claim-nfs
      containers:
      - name: nginx-nfs
        image: nginx
        ports:
          - containerPort: 80
            name: "http-sever"
        volumeMounts:
          - mountPath: "/usr/share/nginx/html"
            name: deploy-pv-storage
17:04:12[root@master ~]# kubectl get pod
NAME                          READY   STATUS    RESTARTS      AGE
deploy-nfs-7947b9cb58-9pcx6   1/1     Running   0             33m
deploy-nfs-7947b9cb58-vvgkn   1/1     Running   0             33m
deploy-nfs-7947b9cb58-vw7fb   1/1     Running   0             33m

6、编写service文件进行service暴露

apiVersion: v1
kind: Service
metadata:
  name: nginx-nfs
  labels:
    app: deploy-nfs
spec:
  type: NodePort
  ports:
  - port: 8090
    targetPort: 80
    protocol: TCP
    name: http
  selector:
    app: deploy-nfs
17:03:24[root@master ~]# kubectl get svc
NAME                  TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)                      AGE
kubernetes            ClusterIP   10.1.0.1       <none>        443/TCP                      10d
nginx-nfs             NodePort    10.1.226.70    <none>        8090:30565/TCP               2d22h

7、查看网页192.168.220.104:30565,此30565是对外暴露的服务端口

在这里插入图片描述
实验结果可随 /k8s-volume-nfs/web 下index.html文件的改变而改变

若要学习pv和pvc可查看官方文档学习:https://kubernetes.io/zh-cn/docs/home/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值