2.4. 使用 Azure File 的持久性存储
OpenShift Container Platform 支持 Microsoft Azure File 卷。您可以使用 Azure 为 OpenShift Container Platform 集群置备永久性存储。我们假设您对 Kubernetes 和 Azure 有一定的了解。
Kubernetes 持久性卷框架允许管理员提供带有持久性存储的集群,并使用户可以在不了解底层存储架构的情况下请求这些资源。Azure File 卷可以动态置备。
持久性卷不与某个特定项目或命名空间相关联,它们可以在 OpenShift Container Platform 集群间共享。PersistentVolumeClaim 是针对某一项目或命名空间的,应用程序中相应的用户可请求它。
存储的高可用性功能由底层的存储架构提供。
其他参考资源
2.4.1. 创建 Azure File 共享 PersistentVolumeClaim
要创建 PersistentVolumeClaim,您必须首先定义包含 Azure 帐户和密钥的 Secret。这个 Secret 用在 PersistentVolume 定义中,应用程序中使用的 PersistentVolumeClaim 将引用它。
先决条件
- 已存在 Azure File 共享。
- 有访问此共享所需的凭证,特别是存储帐户和密钥。
流程
创建包含 Azure File 凭证的 Secret:
$ oc create secret generic <secret-name> --from-literal=azurestorageaccountname=<storage-account> \ 1 --from-literal=azurestorageaccountkey=<storage-account-key> 2
创建一个引用您创建的 Secret 的 PersistentVolume:
apiVersion: "v1" kind: "PersistentVolume" metadata: name: "pv0001" 1 spec: capacity: storage: "5Gi" 2 accessModes: - "ReadWriteOnce" storageClassName: azure-file-sc azureFile: secretName: <secret-name> 3 shareName: share-1 4 readOnly: false
创建一个映射到您创建的 PersistentVolume 的 PersistentVolumeClaim:
apiVersion: "v1" kind: "PersistentVolumeClaim" metadata: name: "claim1" 1 spec: accessModes: - "ReadWriteOnce" resources: requests: storage: "5Gi" 2 storageClassName: azure-file-sc 3 volumeName: "pv0001" 4
2.4.2. 在 Pod 中挂载 Azure File 共享
创建 PersistentVolumeClaim 后,应用程序就可以使用它。以下示例演示了在 Pod 中挂载此共享。
先决条件
- PersistentVolumeClaim 存在,已映射到底层的 Azure File 共享。
流程
创建可挂载现有 PersistentVolumeClaim 的 Pod:
apiVersion: v1 kind: Pod metadata: name: pod-name 1 spec: containers: ... volumeMounts: - mountPath: "/data" 2 name: azure-file-share volumes: - name: azure-file-share persistentVolumeClaim: claimName: claim1 3