volumes 和 volumeMounts的使用

在 Kubernetes 配置文件中,volumes 和 volumeMounts 都是用于数据持久化和数据共享的配置,但它们的角度和用途有所不同。

volumes: 用于在 Pod 级别定义一种或多种数据卷类型。这些卷可以是 Pod 内所有容器都可访问的目录,源可以是本地的节点的文件系统,或是像 ConfigMap、Secret、PersistentVolumeClaim 或者其他 Kubernetes 支持的存储类型之一。这部分定义了该 Pod 可以使用哪些卷,但并没有指明具体的容器如何使用。
volumeMounts: 用于在容器级别指定如何挂载上面定义的卷。这部分指明了每个容器在哪个路径下挂载哪个卷,以及那个挂载点是否是只读的。
因此,volumes 和 volumeMounts 的关系如下:

volumes 是 Pod 层面的配置,定义了 Pod 可以使用的数据卷。
volumeMounts 是容器层面的配置,决定使用 Pod 层面定义的哪些卷,以及如何使用这些卷(即挂载到容器的哪个目录,挂载方式是只读还是可写)

apiVersion: apps/v1
kind: Deployment
metadata:
  generation: 13
  labels:
    name: blog-java
  name: blog-java
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      name: blog-java
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      labels:
        name: blog-java
    spec:
      containers:
        - image: xxx #镜像仓库地址
          imagePullPolicy: IfNotPresent
          name: blog-java
          ports:
          - containerPort: 8003
          resources:
            limits:
              memory: 1Gi
            requests:
              memory: 1Gi
          terminationMessagePath: /app/logs/termination-log
          terminationMessagePolicy: File
          envFrom:
          - configMapRef:
              name: blog-configmap
		  volumeMounts:
          - name: config-volume
            mountPath: /etc/config
	  volumes:
      - name: config-volume
        configMap:
          name: blog-configmap
      dnsPolicy: ClusterFirst
      imagePullSecrets:
        - name: xxxkey
      restartPolicy: Always
      schedulerName: default-scheduler
      terminationGracePeriodSeconds: 30

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值