Kubernetes安装local-path-provisioner基于HostPath使用动态PV

Kubernetes安装local-path-provisioner基于HostPath使用动态PV

获取local-path-provisioner
git clone https://github.com/rancher/local-path-provisioner.git
修改local-path-storage.yaml
vi local-path-provisioner/deploy/local-path-storage.yaml

修改前(修改部分):

---
kind: ConfigMap
apiVersion: v1
metadata:
  name: local-path-config
  namespace: local-path-storage
data:
  config.json: |-
        {
                "nodePathMap":[
                {
                        "node":"DEFAULT_PATH_FOR_NON_LISTED_NODES",
                        "paths":["/opt/local-path-provisioner"]
                }
                ]
        }


修改后(修改部分):

---
kind: ConfigMap
apiVersion: v1
metadata:
  name: local-path-config
  namespace: local-path-storage
data:
  config.json: |-
        {
                "nodePathMap":[
                {
                        "node":"DEFAULT_PATH_FOR_NON_LISTED_NODES",
                        "paths":["/u01/local-path-provisioner"]
                }
                ]
        }


创建文件路径
mkdir -p /u01/local-path-provisioner
chmod 777 /u01/local-path-provisioner
创建namespace
kubectl create ns local-path-storage
发布local-path-storage
kubectl apply -f local-path-provisioner/deploy/local-path-storage.yaml -n local-path-storage
确认发布结果

确认结果:

kubectl get po -n local-path-storage

结果如下:

NAME                                      READY   STATUS    RESTARTS   AGE
local-path-provisioner-54bbdbb5cc-7d8kw   1/1     Running   0          18m

确认结果:

kubectl get storageclass

结果如下:

NAME         PROVISIONER             AGE
local-path   rancher.io/local-path   18m
创建PVC和POD进行测试

pvc.yam如下:

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

发布PVC和POD:

kubectl create -f local-path-provisioner/examples/pvc.yaml
kubectl create -f local-path-provisioner/examples/pod.yaml

确认结果:

kubectl get pv

结果如下:

NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM                                   STORAGECLASS      REASON   AGE
pvc-adeb9540-5ad8-11ea-9cf7-02001700ae85   2Gi        RWO            Delete           Bound       default/local-path-pvc                  local-path                 18m

确认结果:

kubectl get pvc

结果如下:

[opc@k8sinstance workspace]$ kubectl get pvc -n default
NAME                        STATUS    VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
local-path-pvc              Bound     pvc-adeb9540-5ad8-11ea-9cf7-02001700ae85   2Gi        RWO            local-path     21m

删除测试的PVC和POD:

kubectl delete -f local-path-provisioner/examples/pod.yaml
kubectl delete -f local-path-provisioner/examples/pvc.yaml
设置为default的storageclass
kubectl patch storageclass local-path -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
kubectl patch storageclass local-path -p '{"metadata": {"annotations":{"storageclass.beta.kubernetes.io/is-default-class":"true"}}}'
卸载
kubectl delete -f local-path-provisioner/deploy/local-path-storage.yaml

完结!

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值