kubernetes - 使用 Persistent Volume Claim 时是否必须显式创建

我是 Kubernetes 的新手,我很难理解 Kubernetes 中持久存储背后的整个想法。

这就足够了吗,或者我必须创建持久卷,如果我只部署这两个对象而不创建 PV 会发生什么情况?

存储应该在本地机器上。

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  creationTimestamp: null
  name: nginx-logs
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 100Mi
status: {}
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: app-web
  name: app-web
spec:
  selector:
    matchLabels:
      app: app-web
  replicas: 1
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: app-web
    spec:
      containers:
        image: nginx:1.14.2
        imagePullPolicy: Always
        name: app-web
        volumeMounts:
        - mountPath: /var/log/nginx
          name: nginx-logs
      restartPolicy: Always
      volumes:
      - name: nginx-logs
        persistentVolumeClaim:
          claimName: nginx-logs

最佳答案

I struggle to understand whole idea behind Persistent Storage in Kubernetes

想法是将应用所需的存储请求与物理存储分开 - 这样应用就可以移动到例如其他具有不同存储系统的云提供商 - 但不需要对应用程序进行任何更改。它还分离了“请求存储”和管理底层存储的责任,例如开发人员与运营人员。

So is this enough or I have to create Persistent Volume and what will happen if I deploy only these two object without creating PV?

这取决于您的环境。大多数环境通常有 Dynamic Volume Provisioning ,例如大型云提供商现在也支持 Minikube。

使用动态卷配置时,开发人员只需创建一个 PersistentVolumeClaim - 而无需创建 PersistentVolume,而是动态配置。

关于kubernetes - 使用 Persistent Volume Claim 时是否必须显式创建 Persistent Volume?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64229574/

相关文章:

reactjs - 如何触发事件 React 测试库

python - 无法用pip安装pycuda

github - 使用 SonarQube(社区版)装饰 GitHub 中的拉取请求

unity3d - 如何将 Input.GetAxis ("Mouse X") 或 Input.Ge

terraform - 如何定义 "azurerm_resource_group_template_

swiftui - 编辑 : How we can alignment Image with Ima

postgresql - Ecto:如何用不同的随机数更新所有记录

json - 使用 Mule 中的 Dataweave 将定界文件转换为 JSON 格式

ruby-on-rails - 使用 Cloudinary 和 Active Storage 时如何

java - 无效的正则表达式 : Dangling meta character "*"