如何在内部kubernetes群集上创建持久卷

时间:2018-10-24 20:02:09

标签: kubernetes

我有一个三节点的Kubernetes集群,该集群使用http://github.com/oracle/vagrant-boxes.git中的Oracle Kubernetes流浪者盒子在流浪者上运行。

我想添加一个包含Oracle数据库的Pod,并保留数据,以防万一所有节点掉线,我也不会丢失数据。

根据我的阅读Kubernetes文档的方式,持久卷不能仅在支持云的设备上在本地文件系统上创建。我想在无业游民的盒子上配置持久卷和持久卷声明,以作为我的Kubernetes学习的概念证明和培训练习。

有没有一些示例可以说明如何在这种配置下创建PV和PVC?

作为完整的Kubernetes新手,将非常感谢任何代码示例。

1 个答案:

答案 0 :(得分:1)

使用主机路径:

创建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

在吊舱中使用它:

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

documentation

这只是一个示例,仅供测试。

对于生产用例,您将需要使用StorageClass for PVC进行动态配置,以便在Pod在集群中移动时可以使用卷/数据。