K8S部署nginx并且使用NFS存储数据

安装NFS

在master安装NFS

systemctl start nfs-server

修改配置 /etc/exports

/data *(rw,no_root_squash,no_all_squash,sync)

目录为 /data 允许所有地址访问

验证下

[root@master nginx]# showmount -e 192.168.57.61 
Export list for 192.168.57.61:
/data *

共享可以正常访问

K8S部署nginx

新建 nginx.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
        volumeMounts:
        - name: data
          mountPath: /usr/share/nginx/html
      volumes:
      - name: data
        nfs:
          path: /data
          server: 192.168.57.61

---
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
  labels:
    app: nginx
spec:
  ports:
  - port: 9000
    name: nginx
    protocol: TCP
    targetPort: 80
    nodePort: 31090
  selector:
    app: nginx
  type: NodePort
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv-nfs
spec:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteMany 
  nfs:
    path: /data
    server: 192.168.57.61

---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: pvc-nfs
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 10Gi

在deployment 配置中

        volumeMounts:
        - name: data
          mountPath: /usr/share/nginx/html
      volumes:
      - name: data
        nfs:
          path: /data
          server: 192.168.57.61

这部分代表 容器内的 /usr/share/nginx/html 目录

挂到NFS 的 /data目录

NFS服务器的地址为 192.168.57.61

在Service中

apiVersion: v1
kind: Service
metadata:
  name: nginx-service
  labels:
    app: nginx
spec:
  ports:
  - port: 9000
    name: nginx
    protocol: TCP
    targetPort: 80
    nodePort: 31090
  selector:
    app: nginx
  type: NodePort

ports:port:9000 代表pod之间通信的端口为9000

protocol:TCP 代表只允许TCP连接

targetPort:80 代表pod内的80端口

nodePort:31090 代表映射到集群外的31090端口,刚才提到的80端口

运行

kubectl apply -f  nginx.yaml 

查看pod状态(由于我没有设置namespace 就是默认的命名空间 不用指定 -n )

[root@master nginx]# kubectl get pod 
NAME                                READY   STATUS    RESTARTS   AGE
nginx-deployment-5d7bfd6588-6g5mn   1/1     Running   0          48m
nginx-deployment-5d7bfd6588-7sz4p   1/1     Running   0          48m
nginx-deployment-5d7bfd6588-vkbvq   1/1     Running   0          48m

测试

挂载NFS

 mount -t nfs -o rw 192.168.57.61:/data /data1
echo "11111" >> /data1/index.html 

访问:http://192.168.57.76:31090/

 

可以看到1111 已经显示在浏览器中了

index.html已经在容器内了 

相关推荐

  1. K8S NFS持久存储配置

    2023-12-06 03:58:03       29 阅读
  2. K8S部署NFS服务器并在K8S集群外使用NFS

    2023-12-06 03:58:03       45 阅读
  3. k8s部署nginx-ingress服务

    2023-12-06 03:58:03       43 阅读
  4. k8s持久化存储(NFS-StorageClass)

    2023-12-06 03:58:03       37 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-06 03:58:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-06 03:58:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-06 03:58:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-06 03:58:03       20 阅读

热门阅读

  1. Spring Boot 如何支持多数据源

    2023-12-06 03:58:03       37 阅读
  2. Mybatis开发必备Idea插件,效率成倍提升!

    2023-12-06 03:58:03       46 阅读
  3. 不简单的字符串转换问题

    2023-12-06 03:58:03       28 阅读
  4. 【Vue】高德地图API 的组件封装

    2023-12-06 03:58:03       32 阅读
  5. Kafka的分区和副本机制

    2023-12-06 03:58:03       40 阅读
  6. QT中如何使用自定义控件

    2023-12-06 03:58:03       45 阅读
  7. 帆软部分公式及sql生成(月份、季度取数)

    2023-12-06 03:58:03       52 阅读
  8. 学习mongoDB

    2023-12-06 03:58:03       37 阅读
  9. MySQL 日期函数

    2023-12-06 03:58:03       27 阅读
  10. Kibana使用指南

    2023-12-06 03:58:03       29 阅读