我是 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/
相关文章:
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 格式