|
本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。 |
卷和存储
当部署需要保留数据的应用程序时,您需要创建持久化存储。持久化存储允许您将应用程序数据存储在运行应用程序的 Pod 之外。这种存储实践使您能够维护应用程序数据,即使应用程序的 Pod 失败。
持久卷(PV)是 Kubernetes 集群中的一块存储,而持久卷声明(PVC)是对存储的请求。有关 PV 和 PVC 工作原理的详细信息,请参阅官方 Kubernetes 文档 storage.。
K3s 作为符合标准的 Kubernetes 发行版,使用 容器存储接口(CSI) 和 云提供商接口(CPI) 来管理持久化存储。
本页面介绍如何通过本地存储提供商或 Longhorn. 设置持久化存储。
设置本地存储提供商
K3s 附带 Rancher 的本地路径提供程序,这使得能够使用相应节点上的本地存储开箱即用地创建持久卷声明。下面我们介绍一个简单的示例。有关更多信息,请参考官方文档 这里。
创建一个以 HostPath 为基础的持久卷声明和一个使用它的 Pod:
pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: local-path-pvc
namespace: default
spec:
accessModes:
- ReadWriteOnce
storageClassName: local-path
resources:
requests:
storage: 2Gi
pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: volume-test
namespace: default
spec:
containers:
- name: volume-test
image: nginx:stable-alpine
imagePullPolicy: IfNotPresent
volumeMounts:
- name: volv
mountPath: /data
ports:
- containerPort: 80
volumes:
- name: volv
persistentVolumeClaim:
claimName: local-path-pvc
应用 yaml:
kubectl create -f pvc.yaml
kubectl create -f pod.yaml
确认 PV 和 PVC 已创建:
kubectl get pv
kubectl get pvc
每个的状态应为已绑定。
设置 Longhorn
|
Longhorn 不支持 ARM32。 |
K3s 支持 Longhorn,这是一个用于 Kubernetes 的开源分布式块存储系统。
下面我们介绍一个简单的示例。有关详细信息,请参考https://documentation.suse.com/cloudnative/storage/1.8/en/longhorn-documentation.html[官方文档]。
应用 longhorn.yaml 来安装 Longhorn:
kubectl apply -f https://raw.githubusercontent.com/longhorn/longhorn/v1.8.1/deploy/longhorn.yaml
Longhorn 将安装在名称空间 longhorn-system 中。
创建一个持久卷声明和一个 Pod 来使用它:
pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: longhorn-volv-pvc
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 2Gi
pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: volume-test
namespace: default
spec:
containers:
- name: volume-test
image: nginx:stable-alpine
imagePullPolicy: IfNotPresent
volumeMounts:
- name: volv
mountPath: /data
ports:
- containerPort: 80
volumes:
- name: volv
persistentVolumeClaim:
claimName: longhorn-volv-pvc
应用 yaml 来创建 PVC 和 Pod:
kubectl create -f pvc.yaml
kubectl create -f pod.yaml
确认 PV 和 PVC 已创建:
kubectl get pv
kubectl get pvc
每个的状态应为已绑定。