首页 > 其他分享 >PersistentVolume与PersistentVolumeClaim的使用

PersistentVolume与PersistentVolumeClaim的使用

时间:2024-10-22 12:22:49浏览次数:1  
标签:name namespace nginx html nfs PersistentVolume 使用 ns PersistentVolumeClaim

制作nginx执行

下载镜像

swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/rockylinux:9

编写Dockerfile

FROM swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/rockylinux:9
LABEL maintainer="huang.jinjin"

RUN yum install wget -y
RUN yum install nginx -y

COPY test.html /usr/share/nginx/html/

EXPOSE 80
ENTRYPOINT ["/usr/sbin/nginx","-g","daemon off;"]

test.html文件是随便编写的html文件

构建镜像

docker build -t nginx:v1.0 .

运行镜像

docker run --name mynginx -p 80:80 nginx

访问地址

http://127.0.0.1/test.html

使用nfs-server

创建namespace

nfs-namespace.yaml

apiVersion: v1
kind: Namespace
metadata:
  name: nfs-ns

创建PersistentVolume

nfs-pv.yaml

apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-pv
  namespace: nfs-ns
spec:
  capacity:
    storage: 1Gi
  accessModes:
    - ReadWriteOnce
  nfs:
    server: 10.0.2.11
    path: "/root/share"

创建PersistentVolumeClaim

nfs-pvc.yaml

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfs-pvc
  namespace: nfs-ns
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi

创建nginx deployment

nfs-nginx-deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  namespace: nfs-ns
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:v1.0
        ports:
        - containerPort: 80
        volumeMounts:
        - name: nginx-storage
          mountPath: /usr/share/nginx/html
      volumes:
      - name: nginx-storage
        persistentVolumeClaim:
          claimName: nfs-pvc

---

apiVersion: v1
kind: Service
metadata:
  name: nginx-service
  namespace: nfs-ns
spec:
  selector:
    app: nginx
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
      nodePort: 30018
  type: NodePort

这样/usr/share/nginx/html目录就挂载到了宿主机的/root/share目录。在/root/share创建 test.html 文件,并写入内容。

启动

kubectl apply -f .

输出
namespace/nfs-ns created
deployment.apps/nginx-deployment created
service/nginx-service created
persistentvolume/nfs-pv created
persistentvolumeclaim/nfs-pvc created

查看

kubectl get namespace
kubectl get pv -n nfs-ns
kubectl get pvc -n nfs-ns
kubectl get pvc -n nfs-ns
kubectl get svc -n nfs-ns

访问

http://10.0.2.12:30018/test.html

10.0.2.12为部署的pod的宿主机ip;30018为service映射的port

标签:name,namespace,nginx,html,nfs,PersistentVolume,使用,ns,PersistentVolumeClaim
From: https://www.cnblogs.com/happyhuangjinjin/p/18492310

相关文章

  • 苹果笔记本和微软Surface哪个更适合商务使用
    在商务环境中,选择合适的笔记本电脑对于提高工作效率至关重要。本文对苹果笔记本和微软Surface进行比较分析,探讨哪种更适合商务使用。主要考虑因素包括:1.性能和可靠性;2.操作系统与软件兼容性;3.设计与便携性;4.电池续航力;5.价格与性价比;6.售后服务与支持。通过全面的比较分析,可以帮......
  • C语言使用指针作为函数参数,并利用函数嵌套求输入三个整数,将它们按大到小的顺序输出。(
    输入三个整数,要求从大到小的顺序向他们输出,用函数实现。   本代码使用到了指针和函数嵌套。   调用指针做函数ex,并嵌套调用指针函数exx在函数ex中。(代码在下面哦!)一、关于函数 ex  1. 这个函数接受三个指针参数 int*p1 、 int*p2 和 int*p3 ,分别指......
  • 在Ubuntu小设备上使用VSCode+SSH开发部署nicegui的Web应用,并设置系统开机自动启动应用
    在一些小的设备上跑Ubuntu系统,需要快速的开发和调整项目的时候,往往使用SSH进行远程的开发测试,这样可以避免传统的打包更新处理,能够快速的在实际环境上测试具体的内容。另外由于系统设备往往需要重启后能够保留应用的工作,因此也需要在Ubuntu系统设置自动启动的服务处理。本篇随笔介......
  • 找到占用磁盘最多的文件或目录,可以使用du和sort
    想要找到占用磁盘最多的文件或目录,可以使用du和sort命令: du-h/path/to/directory|sort-rh|head-n10其中:du-h/path/to/directory用于计算指定目录下的所有文件和子目录的大小,并以人类可读的格式显示。sort-rh用于按磁盘使用情况的大小(逆序)对输出进行排序。h......
  • Hutool在SpringBoot中的使用
    Hutool介绍Hutool是一个功能丰富的Java工具集库,它封装了许多常用的工具类,使开发者能够更加简洁高效地编写代码。Hutool涵盖了很多日常开发中常见的工具,包括但不限于字符串处理、日期时间、文件操作、加解密、HTTP请求、缓存、Excel操作、JSON处理、二维码生成等。Huto......
  • 如何使用数据分析进行能效管理
    文章开头段落:你如何使用数据分析进行能效管理?首先,通过累积和收集有关设备、系统和过程的详尽数据,以便后续分析;其次,使用先进的数据分析手段,如预测建模、机器学习等,从数据中发现模式和趋势;然后,基于这些发现,优化设备、系统和过程以提高能效;最后,不断监控能效数据,以保持在最优状态。......
  • 基于32位单片机的裸机开发:使用定时器进行任务调度 V2.0
     在嵌入式系统开发中,合理地管理和调度任务对于提高系统的实时性、可靠性和可维护性非常重要。本文将详细介绍一个基于定时器的任务管理系统的设计与实现,该系统无需使用系统滴答定时器(SysTick)来增加堆栈深度,而是采用基本的定时器来实现任务的分时执行。V2.0对比V1.0优点V2.0......
  • 使用 OCaml 识别英文数字验证码
    环境准备确保你已安装OCaml和OPAM(OCaml包管理器)。然后安装以下库:cohttp(用于HTTP请求)ocaml-tesseract(用于OCR识别)graphics(用于图像处理)你可以通过OPAM安装这些库:bashopaminstallcohttp-lwt-unixocaml-tesseractgraphics2.下载验证码图片使用Cohttp下载......
  • 如何轻松设置和使用零代码平台?蓝燕云零代码平台为例!
    如何轻松设置和使用低代码零代码平台?在数字化转型的大潮中,低代码(Low-code)和零代码(No-code)平台已成为许多企业和个人开发者快速构建应用程序的利器。这些平台通过简化编程过程,使得没有深厚技术背景的人也能开发出功能丰富且高效的应用程序。本文将详细探讨如何设置和使用低代......
  • 使用 D 语言识别英文数字验证码
    环境准备确保你的D语言环境已设置好,并安装以下库:vibe.d(用于HTTP请求)dlib(用于图像处理和OCR)你可以在dub.json中添加依赖:json{"dependencies":{"vibe-d":"~>0.9.0","dlib":"~>1.0.0"}}然后运行dubget安装依赖。下载验证码图片使用vibe.d下载验证码......