PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

mkdir /mnt/data:केवल-पढ़ने के लिए फ़ाइल सिस्टम बैक-ऑफ़ पुनरारंभ विफल पोस्टग्रेज कंटेनर

आपके Persistent Volume में आप type: local . का उपयोग कर रहे हैं जिसका अर्थ है कि आप /mnt . में निर्देशिका बनाना चाहते हैं . स्थानीय भी डायनामिक वॉल्यूम प्रोविज़निंग का समर्थन नहीं करते हैं . यदि आप अपने किसी भी नोड को SSH करेंगे तो आप पाएंगे कि यह फ़ोल्डर ReadOnly file system है ।

/mnt $ mkdir somemkdir:निर्देशिका 'कुछ' नहीं बना सकता:केवल-पढ़ने के लिए फ़ाइल सिस्टम

सबसे तेज़ समाधान के रूप में, आप बस अपने PV YAML में बदलाव कर सकते हैं

    - ReadWriteMany
  hostPath:
    path: /mnt/data

प्रति:

    - ReadWriteMany
  hostPath:
    path: /var/lib/data

उदाहरण:

$ kubectl apply -f pv-pvc.yaml
persistentvolume/postgres-pv-volume created
persistentvolumeclaim/postgres-pv-claim created
$ kubectl apply -f pos.yaml
deployment.apps/postgres created
$ kubectl get po
NAME                        READY   STATUS    RESTARTS   AGE
postgres-65d9cbd495-pcqf5   1/1     Running   0          2s

$ kubectl exec -ti postgres-65d9cbd495-pcqf5 -- /bin/bash
[email protected]:/# cd /var/lib/postgresql/data
[email protected]:/var/lib/postgresql/data# ls
base    pg_commit_ts  pg_hba.conf    pg_logical    pg_notify    pg_serial     pg_stat      pg_subtrans  pg_twophase  pg_wal   postgresql.auto.conf  postmaster.opts
global  pg_dynshmem   pg_ident.conf  pg_multixact  pg_replslot  pg_snapshots  pg_stat_tmp  pg_tblspc    PG_VERSION   pg_xact  postgresql.conf       postmaster.pid
[email protected]:/var/lib/postgresql/data# echo "Hello from postgress pod" > data.txt
[email protected]:/var/lib/postgresql/data# cat data.txt
Hello from postgress pod

अब यदि आप उस नोड को SSH करेंगे जो इस पॉड को होस्ट कर रहा है, तो आप इस फ़ोल्डर और फ़ाइलों तक पहुँचने में सक्षम होंगे।

[email protected] ~ $ sudo su
gke-cluster-1-default-pool-463f9615-gxhl /home/user # cd /var/lib/data
gke-cluster-1-default-pool-463f9615-gxhl /var/lib/data # ls
PG_VERSION    pg_dynshmem    pg_notify     pg_stat_tmp  pg_xact
base          pg_hba.conf    pg_replslot   pg_subtrans  postgresql.auto.conf
data.txt      pg_ident.conf  pg_serial     pg_tblspc    postgresql.conf
global        pg_logical     pg_snapshots  pg_twophase  postmaster.opts
pg_commit_ts  pg_multixact   pg_stat       pg_wal       postmaster.pid
gke-cluster-1-default-pool-463f9615-gxhl /var/lib/data # cat data.txt 
Hello from postgress pod

संपादित करें

YAML मैंने इस्तेमाल किया है।

apiVersion: v1
kind: ConfigMap
metadata:
  name: postgres-config
  labels:
    app: postgres
data:
  POSTGRES_DB: postgresdb
  POSTGRES_USER: postgres
  POSTGRES_PASSWORD: root
---
apiVersion: v1
kind: Service
metadata:
  name: postgres
  labels:
    app: postgres
spec:
  type: NodePort
  selector:
    app: postgres
  ports:
  - name: postgres
    port: 5432
    nodePort: 30432
---
kind: PersistentVolume
apiVersion: v1
metadata:
  name: postgres-pv-volume
  labels:
    app: postgres
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteMany
  hostPath:
    path: /var/lib/data
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: postgres-pv-claim
  labels:
    app: postgres
spec:
  storageClassName: manual
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 5Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: postgres
spec:
  replicas: 1
  selector:
    matchLabels:
      app: postgres
  template:
    metadata:
      labels:
        app: postgres
    spec:
      containers:
        - name: postgres
          image: postgres:latest
          imagePullPolicy: "IfNotPresent"
          envFrom:
            - configMapRef:
                name: postgres-config
          volumeMounts:
            - mountPath: /var/lib/postgresql/data
              name: postgredb
      volumes:
        - name: postgredb
          persistentVolumeClaim:
            claimName: postgres-pv-claim
            
configmap/postgres-config created
service/postgres created
persistentvolume/postgres-pv-volume created
persistentvolumeclaim/postgres-pv-claim created
deployment.apps/postgres created

$ kubectl get po
NAME                        READY   STATUS    RESTARTS   AGE
postgres-65d9cbd495-wxx4h   1/1     Running   0          19s



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL अंतराल मान '2 दिन' को कैसे सम्मिलित करें

  2. पोस्टग्रेज - त्रुटि:तैयार कथन S_1 पहले से मौजूद है

  3. Persistence.createEntityManagerFactory() को वापस आने में बहुत समय लगता है

  4. एक्सॉन एग्रीगेट आइडेंटिफ़ायर टाइप कन्वर्टर

  5. हाइबरनेट त्रुटि:वर्तमान लेनदेन निरस्त कर दिया गया है, लेनदेन ब्लॉक के अंत तक आदेशों को अनदेखा कर दिया गया है