簡體   English   中英

Kubernetes 和 mongo、PV、PVC

[英]Kubernetes and mongo, PV, PVC

嗨,只是一個 noobiew 問題。 我管理(?)在 mongo DB 上實現 PV 和 PVC。 我使用 PV 作為本地而不是在雲上。 容器重啟后k8s在我的電腦上運行時有辦法保存數據嗎?

我不確定我做對了,但我需要的是在重啟后保存 mongo 數據 什么是最好的方法? (沒有 mongo 地圖集)

更新:我設法使票務服務數據庫工作得很好,但我還有其他 2 項服務無法正常工作。 我更新了 yaml 文件,所以你可以看到當前的 state? auth-mongo 和 ticket-mongo 一樣,為什么它不起作用?

票證-depl-mongo yaml 文件:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: tickets-mongo-depl

spec:
  replicas: 1
  selector:
    matchLabels:
      app: tickets-mongo
  template:
    metadata:
      labels:
        app: tickets-mongo
    spec:
      containers:
        - name: tickets-mongo
          image: mongo
          args: ["--dbpath", "data/auth"]
          livenessProbe:
            exec:
              command:
                - mongo
                - --disableImplicitSessions
                - --eval
                - "db.adminCommand('ping')"
            initialDelaySeconds: 30
            periodSeconds: 10
            timeoutSeconds: 5
            successThreshold: 1
            failureThreshold: 6
          volumeMounts:
            - mountPath: /data/auth
              name: tickets-data
      volumes:
        - name: tickets-data
          persistentVolumeClaim:
            claimName: tickets-pvc

---
apiVersion: v1
kind: Service
metadata:
  name: tickets-mongo-srv
spec:
  selector:
    app: tickets-mongo
  ports:
    - name: db
      protocol: TCP
      port: 27017
      targetPort: 27017

auth-mongo-depl.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: auth-mongo-depl
spec:
  replicas: 1
  selector:
    matchLabels:
      app: auth-mongo
  template:
    metadata:
      labels:
        app: auth-mongo
    spec:
      containers:
        - name: auth-mongo
          image: mongo
          args: ["--dbpath", "data/db"]
          livenessProbe:
            exec:
              command:
                - mongo
                - --disableImplicitSessions
                - --eval
                - "db.adminCommand('ping')"
            initialDelaySeconds: 30
            periodSeconds: 10
            timeoutSeconds: 5
            successThreshold: 1
            failureThreshold: 6
          volumeMounts:
            - mountPath: /data/db
              name: auth-data
      volumes:
        - name: auth-data
          persistentVolumeClaim:
            claimName: auth-pvc

---
apiVersion: v1
kind: Service
metadata:
  name: auth-mongo-srv
spec:
  selector:
    app: auth-mongo
  ports:
    - name: db
      protocol: TCP
      port: 27017
      targetPort: 27017



NAME         CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                 STORAGECLASS   REASON   AGE
pv-auth      1Gi        RWO            Retain           Bound    default/auth-pvc      auth                    78m
pv-orders    1Gi        RWO            Retain           Bound    default/orders-pvc    orders                  78m
pv-tickets   1Gi        RWO            Retain           Bound    default/tickets-pvc   tickets                 78m

我正在使用帶有票證、訂單和身份驗證服務的 mongo 容器。 只是添加一些信息以使其清楚。

NAME                                     READY   STATUS    RESTARTS   AGE
auth-depl-66c5d54988-ffhwc               1/1     Running   0          36m
auth-mongo-depl-594b98fcc5-k9hj8         1/1     Running   0          36m
client-depl-787cf6c7c6-xxks9             1/1     Running   0          36m
expiration-depl-864d846445-b95sh         1/1     Running   0          36m
expiration-redis-depl-64bd9fdb95-sg7fc   1/1     Running   0          36m
nats-depl-7d6c7dc46-m6mcg                1/1     Running   0          36m
orders-depl-5478cf4dfd-zmngj             1/1     Running   0          36m
orders-mongo-depl-5f974847d7-bz9s4       1/1     Running   0          36m
payments-depl-78f85d94fd-4zs55           1/1     Running   0          36m
payments-mongo-depl-5d5c47494b-7zjrl     1/1     Running   0          36m
tickets-depl-84d59fd47c-cs4k5            1/1     Running   0          36m
tickets-mongo-depl-66798d9874-cfbqb      1/1     Running   0          36m

光伏示例:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv-tickets
  labels:
    type: local
spec:
  storageClassName: tickets
  capacity:
    storage: 1Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/tmp"

我所要做的就是更改每個 PV 中 hostPath 的路徑。 相同的路徑將使應用程序失敗。

pv1:

 hostPath:
    path: "/path/x1"

pv2:

 hostPath:
        path: "/path/x2"

像這樣..只是不一樣的路徑。

暫無
暫無

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

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