# ============================================================ # PostgreSQL for JuiceFS Metadata # JuiceFS 元数据存储 # ============================================================ --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: postgresql-pvc namespace: nuwax-rcoder labels: app: postgresql spec: accessModes: ["ReadWriteOnce"] storageClassName: "local-path" # 单节点环境使用 local-path resources: requests: storage: 10Gi --- apiVersion: apps/v1 kind: StatefulSet metadata: name: postgresql namespace: nuwax-rcoder spec: serviceName: postgresql replicas: 1 selector: matchLabels: app: postgresql template: metadata: labels: app: postgresql spec: initContainers: - name: cleanup image: postgres:16-alpine command: ["rm", "-rf", "/var/lib/postgresql/data/lost+found"] volumeMounts: - name: postgres-data mountPath: /var/lib/postgresql/data containers: - name: postgresql image: postgres:16-alpine ports: - containerPort: 5432 name: postgres env: - name: POSTGRES_DB value: "juicefs" - name: POSTGRES_USER valueFrom: secretKeyRef: name: rcoder-credentials key: POSTGRES_USER - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: name: rcoder-credentials key: POSTGRES_PASSWORD livenessProbe: exec: command: - pg_isready - -U - juicefs initialDelaySeconds: 30 periodSeconds: 10 readinessProbe: exec: command: - pg_isready - -U - juicefs initialDelaySeconds: 5 periodSeconds: 5 volumeMounts: - name: postgres-data mountPath: /var/lib/postgresql/data volumes: - name: postgres-data persistentVolumeClaim: claimName: postgresql-pvc --- apiVersion: v1 kind: Service metadata: name: postgresql namespace: nuwax-rcoder spec: selector: app: postgresql ports: - name: postgres port: 5432 targetPort: 5432