簡體   English   中英

更改所有權/ data / db,輸入/輸出錯誤,Kubernetes Mongo部署

[英]Changing ownership /data/db, input/output error, Kubernetes Mongo Deployment

我正在嘗試使用minikube為mongo運行部署。 我使用以下配置創建了永久存儲:

kind: PersistentVolume
apiVersion: v1
metadata:
  name: mongo-volume
spec:
  capacity:
    storage: 1Gi
  accessModes:
    - ReadWriteOnce
  claimRef:
    namespace: default
    name: mongo-claim
  hostPath:
    path: "/test"

使用minikube mount <local_path>:/test "/test"文件夾

然后,我使用以下配置創建了PV Claim:

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: mongo-claim
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 50Mi

最后,我嘗試使用以下配置創建服務和部署:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: mongo
spec:
  replicas: 1
  template:
    metadata:
      labels:
        tier: backend
        app: mongo
    spec:
      containers:
      - name: mongo
        image: "mongo"
        envFrom:
          - configMapRef:
              name: mongo-config
        ports:
          - name: mongo-port
            containerPort: 27017 
        volumeMounts:
          - name: mongo-storage
            mountPath: "/data/db"
      volumes:
        - name: mongo-storage
          persistentVolumeClaim:
            claimName: mongo-claim
---
apiVersion: v1
kind: Service
metadata: 
  name: mongo
spec:
  selector:
    app: mongo
  ports:
    - protocol: TCP
      port: 27017
      targetPort: mongo-port

容器退出,並顯示以下錯誤:更改“ / data / db”的所有權,輸入/輸出錯誤。

問題1)誰在嘗試更改容器內部目錄的所有權? PV索賠嗎? 問題2)為什么上述罪魁禍首試圖破壞Mongodb容器默認存儲路徑的許可?

看起來更像是有關外部文件夾的virtualbox驅動程序,然后是k8s本身,

在我的情況下

  • 我在OS X上創建了一個文件夾,
  • 將該文件夾映射到minikube minikube mount data-storage/:/data-storage
  • 創建的PersistentVolume指向minikube中的文件夾
  • 創建的PersistentVolumeClaim指向上方的PV
  • 嘗試使用上面的PVC啟動單個簡單的mongodb

並不斷使用日志重新啟動Pod:

Fatal Assertionfsync: Invalid Argument奮戰了幾個小時,終於找到了

https://github.com/mvertes/docker-alpine-mongo/issues/1

如果文件夾映射到主機,這基本上是報告virtualbox驅動程序的問題。

一旦我將PersistentVolume映射到minikube內的/data ,我的吊艙就像一個魅力一樣上線了。

我的情況是我決定的,因為minikube是開發環境,因此沒有任何理由要堅持下去

更新:

我希望我能早點發現這個問題,可以節省一些時間!

docker CE桌面內置了kubernetes!

您所需要做的就是轉到屬性並將其打開,這完全不需要在虛擬盒子或minikube中。

最好的是,共享文件夾(在“文件共享”選項卡上)-適用於kubernetes-已在k8s內部使用mongodb檢查。 而且它的速度比minikube快(在我的OS X上一直失敗)。

希望它可以節省某人的時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM