kubernetes - 如何在内部 Kubernetes 集群上创建持久卷
问题描述
我有一个 3 节点 Kubernetes 集群,使用来自http://github.com/oracle/vagrant-boxes.git的 oracle Kubernetes vagrant 框在 vagrant 上运行。
我想添加一个包含 Oracle 数据库的 pod 并保留数据,以便在所有节点出现故障的情况下,我不会丢失我的数据。
根据我阅读 Kubernetes 文档的方式,无法在本地文件系统上仅在云支持的设备上创建持久卷。我想在我的 vagrant box 上配置持久卷和持久卷声明,作为我的 Kubernetes 学习的概念证明和培训练习。
是否有任何示例说明我如何在此配置中创建 PV 和 PVC?
作为一个完整的 Kubernetes 新手,任何代码示例都将不胜感激。
解决方案
使用主机路径:
创建 PV:
kind: PersistentVolume
apiVersion: v1
metadata:
name: task-pv-volume
labels:
type: local
spec:
storageClassName: manual
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/data
创建 PVC:
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: task-pv-claim
spec:
storageClassName: manual
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 3Gi
在 pod 中使用它:
kind: Pod
apiVersion: v1
metadata:
name: task-pv-pod
spec:
volumes:
- name: task-pv-storage
persistentVolumeClaim:
claimName: task-pv-claim
containers:
- name: task-pv-container
image: nginx
ports:
- containerPort: 80
name: "http-server"
volumeMounts:
- mountPath: "/usr/share/nginx/html"
name: task-pv-storage
这只是一个例子,仅供测试。
对于生产用例,您将需要使用 PVC 的 StorageClass进行动态配置,以便在 pod 在集群中移动时可以使用卷/数据。
推荐阅读
- python - 如何将熊猫数据框中的字符串转换为浮点数或整数
- java - SpringBoot中多个UnicastProcessor之间的消息传递
- database - MongoDB 从每个组中采样特定时间
- angular - 在 inetllij idea 中使用 Karma 运行 Angular 测试
- java - com.fasterxml.jackson.databind.exc.MismatchedInputException:无法构造 java 类的实例
- arrays - 将数组作为参数传递给方法
- ios - 位码未包含在我的框架中
- javascript - 带有承诺的条件可观察调用
- c# - 如何在已经注册的 IHttpClient 上注册 Polly
- android - 找不到样式:找不到符号变量