接外包,有相关需求的可以联系我:Telegram | Email

配置 Pod 以使用 PersistentVolume 作为存储

该文章创建(更新)于04/18/2022,请注意文章的时效性!

最近了解这个k8s在PVC存储这儿卡了两天,今天终于算是大概搞明白是个怎么回事了。

以下是该过程的总结:

原理图

路径 说明
/mnt/data 本地主机上的目录
/app/wiz minikube容器里的路径
/wiz/storage/ pod的路径

步骤

镜像拉取

docker pull wiznote/wizserver

minikube 挂载本地目录

  • 启动挂载
minikube start --mount --mount-string="/mnt/data:/app/wiz"
  • 验证
minikube ssh
cd /app/wiz
# 创建一个文件再去主机上 /mnt/data 查看是否存在即可

PV 创建

  • 配置文件wiz-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: wiz-pv-volume
  labels:
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/app/wiz"
  • 部署
kubectl create -f  wiz-pv.yaml
  • 查看
kubectl get pv
  • 删除
kubectl delete pv wiz-pv-volume

PVC 创建

  • 配置文件wiz-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: wiz-pv-claim
spec:
  storageClassName: manual
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 3Gi
  • 部署
kubectl create -f  wiz-pvc.yaml
  • 查看
kubectl get pvc
  • 删除
kubectl delete pvc wiz-pv-claim

deployment 创建

  • 配置文件wiz.yaml
kind: Deployment
apiVersion: apps/v1
metadata:
  name: wiz  #Deployment名称
  labels:
    app: wiz
spec:
  replicas: 2  #目标副本数量
  selector:
    matchLabels:
      app: wiz
  template:
    metadata:
      labels:
        app: wiz
    spec:     
      volumes:
      - name: wiz-pv-storage
        persistentVolumeClaim:
          claimName: wiz-pv-claim #PVC 存储名称
      containers:
        - name: wizserver
          image: wiznote/wizserver:latest        
          resources: {}
          imagePullPolicy: Always           
          volumeMounts:        #容器内挂载点
            - mountPath: "/wiz/storage/"
              name: wiz-pv-storage       #必须有名称     
          ports:                                 #定义端口
            - name: container-port                 #定义pod名称
              containerPort: 80                    #定义pod端口
              protocol: TCP                        #定义TCP       
      restartPolicy: Always
      terminationGracePeriodSeconds: 30
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 25%
      maxSurge: 25%
  revisionHistoryLimit: 10
  progressDeadlineSeconds: 600
  • 部署
kubectl create -f wiz.yaml

创建service

  • 配置文件wiz-service.yaml
apiVersion: v1
kind: Service
metadata:
  name: wiz-service
spec:
  type: NodePort
  selector:
    app: wiz
  ports:
  - protocol: TCP
    port: 8888
    targetPort: 80
  • 部署
kubectl create -f wiz-service.yaml


👇 Share | 分享 👇


要不赞赏一下?

微信
支付宝
PayPal
Bitcoin

版权声明 | Copyright

除非特别说明,本博客所有作品均采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。转载请注明转自-
https://www.emperinter.info/2022/04/18/configure-persistent-volume-storage/


要不聊聊?

我相信你准备留下的内容是经过思考的!【勾选防爬虫,未勾选无法留言】

*

*



微信公众号

👉 NewsLetter ❤️ 邮箱订阅 👈

优惠码


阿里云国际版20美元
Vultr10美元
搬瓦工 | Bandwagon应该有折扣吧?
域名 | namesiloemperinter(1美元)