使用本地路径供应器

使用本地路径供应器

概述

本地路径供应器为 Kubernetes 用户提供了一种利用每个节点本地存储的方法。它支持多节点设置。本教程将向您展示如何在双节点 minikube 集群上设置 local-path-prvisioner。

先决条件

  • Minikube 版本高于 v1.27.0
  • kubectl

教程

  • 启动一个具有 2 个节点的集群
$ minikube start -n 2
  • 启用 storage-provisioner-rancher 插件
$ minikube addons enable storage-provisioner-rancher
  • 您应该能够看到 local-path-storage 命名空间中的 Pod
$ kubectl get pods -n local-path-storage
NAME                                     READY   STATUS    RESTARTS   AGE
local-path-provisioner-7f58b4649-hcbk9   1/1     Running   0          38s
  • local-path StorageClass 应该被标记为 default
$ kubectl get sc
NAME                   PROVISIONER                RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
local-path (default)   rancher.io/local-path      Delete          WaitForFirstConsumer   false                  107s
standard               k8s.io/minikube-hostpath   Delete          Immediate              false                  4m27s
  • 以下 yaml 创建 PVC 和 Pod,在第二个节点 (minikube-m02) 上创建包含内容的文件
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: test-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 64Mi
---
apiVersion: v1
kind: Pod
metadata:
  name: test-local-path
spec:
  restartPolicy: OnFailure
  nodeSelector:
    "kubernetes.io/hostname": "minikube-m02"
  containers:
    - name: busybox
      image: busybox:stable
      command: ["sh", "-c", "echo 'local-path-provisioner' > /test/file1"]
      volumeMounts:
      - name: data
        mountPath: /test
  volumes:
    - name: data
      persistentVolumeClaim:
        claimName: test-pvc
$ kubectl get pvc
NAME       STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
test-pvc   Bound    pvc-f07e253b-fea7-433a-b0ac-1bcea3f77076   64Mi       RWO            local-path     5m19s
$ kubectl get pods -o wide
NAME              READY   STATUS      RESTARTS   AGE     IP           NODE           NOMINATED NODE   READINESS GATES
test-local-path   0/1     Completed   0          5m19s   10.244.1.5   minikube-m02   <none>           <none>
  • 在第二个节点上,我们可以看到创建的包含内容 local-path-provisioner 的文件
$ minikube ssh -n minikube-m02 "cat /opt/local-path-provisioner/pvc-f07e253b-fea7-433a-b0ac-1bcea3f77076_default_test-pvc/file1"
local-path-provisioner

上次修改时间:2022 年 10 月 4 日:添加使用本地路径供应器的教程 (0fb290e39)