PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

mkdir / mnt / data:hệ thống tệp chỉ đọc Việc tắt khởi động lại vùng chứa postgres không thành công

Trong Khối lượng liên tục của bạn bạn đang sử dụng type: local có nghĩa là bạn muốn tạo thư mục trong /mnt . Local cũng không hỗ trợ cung cấp khối lượng động . Nếu bạn SSH cho bất kỳ nút nào của mình, bạn sẽ thấy rằng thư mục này là ReadOnly file system .

/ mnt $ mkdir somethingmkdir:không thể tạo thư mục ‘something’:Hệ thống tệp chỉ đọc

Để giải quyết vấn đề nhanh nhất, bạn chỉ có thể thay đổi trong PV YAML của mình

    - ReadWriteMany
  hostPath:
    path: /mnt/data

Tới:

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

Ví dụ:

$ 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

Bây giờ nếu bạn SSH tới nút đang lưu trữ nhóm này, bạn sẽ có thể truy cập thư mục và tệp này.

[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

CHỈNH SỬA

YAML tôi đã sử dụng.

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. Lỗi khi sử dụng lệnh sao chép trong Postgres (LỖI:cú pháp nhập không hợp lệ cho loại ngày:)

  2. Cách khai thác tốt nhất nhật ký PostgreSQL

  3. Phát hiện xem hàng đã được cập nhật hoặc được chèn hay chưa

  4. Cách thực thi nhiều phép nối với các tham số khác nhau trong một truy vấn

  5. Hibernate postgres bytea truy xuất vấn đề