k8s创建部署nignx, 并挂载nfs挂载共享存储

  1. nfs服务端及客户端安装
    请查看我的另一篇博客:https://blog.csdn.net/weixin_44020899/article/details/107283650

  2. 创建pvc和pv
    过程中遇到的问题

创建pvc和pv后,发现pvc一直处于pending状态,困惑许久,发现pvc中的accessModes和pv中的不一致。所以这里要注意:

storageClassName: pvc和pvc要一致。
accessModes:pvc和pvc要一致。
存储大小:pvc会匹配大小相近的进行绑定。
pvc.yaml

点击查看代码
# 创建pv
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pvctest
spec:
  capacity:
    storage: 1Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  storageClassName: mytest
  nfs:
    path: /nfs
    server: 192.168.1.14
---
# 创建pvc
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mypvc
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
  storageClassName: mytest
  1. 通过deployment控制器创建pod
    nginx-deploy.yaml
点击查看代码
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: nginx
  name: mysql-deployment
spec:
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - ports:
        - containerPort: 80
        name: nginx
        image: nginx:v1
        imagePullPolicy: IfNotPresent
        volumeMounts:
        - mountPath: /usr/share/nginx/html
          name: nfspv1        
      volumes:
      - metadata:
        name: nfspv1
        persistentVolumeClaim:
          claimName: mypvc
  replicas: 1
  1. 创建svc,暴露端口
    nginx-svc.yaml
点击查看代码
apiVersion: v1
kind: Service
metadata:
  labels:
    app: nginx
  name: nginx-svc
spec:
  ports:
    - port: 80
      name: server
      nodePort: 30320
      targetPort: 80
      protocol: TCP
  selector:
    app: nginx
  type: NodePort

说明:这里将容器中/usr/share/nginx/html挂载到nfs存储上

编辑index.html
测试访问:
在浏览器访问测试

本星球包含了海量运维、安全、设计微服务k8s、Python干货分享、提供最完整的指引,帮助你轻松掌握ChatGPT理论和实战应用场景、如何变现、如何正确使用AI!!时代赋予的机遇,你可躺平,但生活从不手软,你赚的每一分钱都是成长的变现!!赶紧抓住这个巨大的风口红利,建议跟着这个课程来学习,相信能带你成为ChatGPT、技术大师!

posted @ 2022-06-29 16:55  seaskyccl  阅读(549)  评论(0编辑  收藏  举报