如何解决如何在CrunchyData Postgres运算符中使用NFS存储
我正在使用NFS Helm图表尝试CrunchyData postgres-operator(Helm)。我无法使用NFS创建群集。执行以下配置:
已安装的NFS helm图表存储库
helm install nfs-abc stable/nfs-server-provisioner
设置postgres存储值Doc
backrest_storage: 'nfsstorage'
backup_storage: 'nfsstorage'
primary_storage: 'nfsstorage'
replica_storage: 'nfsstorage'
设置存储配置Doc
export CCP_SECURITY_CONTEXT='"supplementalGroups": [65534]'
export CCP_STORAGE_PATH=/nfsfileshare
export CCP_NFS_IP=data-nfs-dravoka-nfs-server-provisioner-0.default.svc.cluster.local
export CCP_STORAGE_MODE=ReadWriteMany
export CCP_STORAGE_CAPACITY=400M
创建的PGO集群
pgo create cluster -n pgo dravoka --storage-config='nfsstorage' --pgbackrest-storage-config='nfsstorage' --pvc-size='2Gi'
PVC描述:
kubectl describe -n pgo pvc dravoka
Name: dravoka
Namespace: pgo
StorageClass: standard
Status: Pending
Volume:
Labels: pg-cluster=dravoka
pgremove=true
vendor=crunchydata
Annotations: volume.beta.kubernetes.io/storage-provisioner: kubernetes.io/gce-pd
Finalizers: [kubernetes.io/pvc-protection]
Capacity:
Access Modes:
VolumeMode: Filesystem
Mounted By: <none>
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning ProvisioningFailed 112s (x10 over 7m45s) persistentvolume-controller Failed to provision volume with StorageClass "standard": invalid AccessModes [ReadWriteMany]: only AccessModes [ReadWriteOnce ReadOnlyMany] are supported
Pod描述:
kubectl describe -n pgo pod dravoka-backrest-shared-repo-9fdd77886-j2mjv
Name: dravoka-backrest-shared-repo-9fdd77886-j2mjv
Namespace: pgo
Priority: 0
Node: <none>
Labels: name=dravoka-backrest-shared-repo
pg-cluster=dravoka
pg-pod-anti-affinity=preferred
pgo-backrest-repo=true
pod-template-hash=9fdd77886
service-name=dravoka-backrest-shared-repo
vendor=crunchydata
Annotations: <none>
Status: Pending
IP:
IPs: <none>
Controlled By: ReplicaSet/dravoka-backrest-shared-repo-9fdd77886
Containers:
database:
Image: registry.developers.crunchydata.com/crunchydata/pgo-backrest-repo:centos7-4.4.1
Port: 2022/TCP
Host Port: 0/TCP
Requests:
memory: 48Mi
Environment:
PGBACKREST_STANZA: db
SSHD_PORT: 2022
PGBACKREST_DB_PATH: /pgdata/dravoka
PGBACKREST_REPO_PATH: /backrestrepo/dravoka-backrest-shared-repo
PGBACKREST_PG1_PORT: 5432
PGBACKREST_LOG_PATH: /tmp
PGBACKREST_PG1_SOCKET_PATH: /tmp
PGBACKREST_DB_HOST: dravoka
Mounts:
/backrestrepo from backrestrepo (rw)
/sshd from sshd (ro)
Conditions:
Type Status
PodScheduled False
Volumes:
sshd:
Type: Secret (a volume populated by a Secret)
SecretName: dravoka-backrest-repo-config
Optional: false
backrestrepo:
Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
ClaimName: dravoka-pgbr-repo
ReadOnly: false
QoS Class: Burstable
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 76s (x7 over 9m58s) default-scheduler pod has unbound immediate PersistentVolumeClaims (repeated 2 times)
我是否丢失了某些已配置的内容或做错了什么?我的目的是使用NFS作为postgres存储。任何帮助将不胜感激。
解决方法
无法通过StorageClass“标准”配置卷:无效 AccessModes [ReadWriteMany]:仅AccessModes [ReadWriteOnce 支持ReadOnlyMany]
因此,这是问题的根本原因。您正在使用不支持所需AccessMode的存储类(即ReadWriteMany
看着doc,似乎您已经有了此配置
storage3_name: 'nfsstorage'
storage3_access_mode: 'ReadWriteMany'
storage3_size: '1G'
storage3_type: 'create'
storage3_supplemental_groups: 65534
storage3_access_mode
表示access_mode为ReadWriteMany
,但是不支持。
请尝试将其更改为ReadWriteOnce
然后,Postgres需要块存储才能工作,因此即使正确安装了NFS,Postgres集群也将无法运行。更多说明here
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。