Postgresql 如何在crunchydata postgres operator中使用nfs存储
我正在用图表试用CrunchyData postgres操作符(Helm)。我无法使用NFS创建群集。执行以下配置: 已安装图表回购Postgresql 如何在crunchydata postgres operator中使用nfs存储,postgresql,docker,kubernetes,nfs,pgo,Postgresql,Docker,Kubernetes,Nfs,Pgo,我正在用图表试用CrunchyData postgres操作符(Helm)。我无法使用NFS创建群集。执行以下配置: 已安装图表回购 helm install nfs-abc stable/nfs-server-provisioner 设置postgres存储值 设置存储配置 创建PGO集群 pgo create cluster -n pgo dravoka --storage-config='nfsstorage' --pgbackrest-storage-config='nfsstorag
helm install nfs-abc stable/nfs-server-provisioner
设置postgres存储值
设置存储配置
创建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
kubectl description-n pgo pvc dravoka
姓名:德拉沃卡
名称空间:pgo
StorageClass:标准
状态:待定
卷:
标签:pg cluster=dravoka
pgremove=true
供应商=crunchydata
注释:volume.beta.kubernetes.io/storage-provisioner:kubernetes.io/gce-pd
终结器:[kubernetes.io/pvc保护]
容量:
访问模式:
VolumeMode:文件系统
安装人:
活动:
从消息中键入原因年龄
---- ------ ---- ---- -------
警告设置失败112s(x10超过7m45s)persistentvolume控制器无法使用StorageClass“standard”设置卷:无效的访问模式[ReadWriteMany]:仅支持访问模式[ReadWriteOnce ReadOnlyMany]
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)
kubectl描述-n pgo吊舱dravoka-backback-shared-repo-9fdd77886-j2mjv
名称:dravoka-backback-shared-repo-9fdd77886-j2mjv
名称空间:pgo
优先级:0
节点:
标签:名称=dravoka靠背共享回购
pg集群=德拉沃卡
pg pod抗亲和力=首选
pgo靠背回购=真
pod模板哈希=9fdd77886
服务名称=德拉沃卡共享回购
供应商=crunchydata
注释:
状态:待定
知识产权:
IPs:
控制人:ReplicaSet/dravoka-backback-shared-repo-9fdd77886
容器:
数据库:
图片:registry.developers.crunchydata.com/crunchydata/pgo-repo:centos7-4.4.1
端口:2022/TCP
主机端口:0/TCP
请求:
内存:48英里
环境:
PGU节:db
SSHD_端口:2022
pgdata\u DB\u路径:/pgdata/dravoka
pgbackback_REPO_路径:/backrestrepo/dravoka backback shared REPO
PGU PG1_端口:5432
pgu日志路径:/tmp
PG靠背\u PG1\u插座\u路径:/tmp
PGU DB_主机:dravoka
挂载:
/从backrestrepo(rw)返回backrestrepo
/来自sshd(ro)的sshd
条件:
类型状态
播客计划错误
卷数:
署方:
类型:Secret(由Secret填充的卷)
秘书名称:dravoka靠背回购配置
可选:false
backrestrepo:
类型:PersistentVolumeClaim(对同一命名空间中PersistentVolumeClaim的引用)
索赔名称:dravoka pgbr repo
只读:false
QoS等级:Burstable
节点选择器:
容差:node.kubernetes.io/未就绪:NoExecute op=存在300秒
node.kubernetes.io/unreachable:NoExecute op=存在300秒
活动:
从消息中键入原因年龄
---- ------ ---- ---- -------
警告失败调度76s(x7超过9m58s)默认调度程序pod已解除立即PersistentVolumeClaims的绑定(重复2次)
我是否错过了一些配置过的东西,或者做错了什么?我的目的是将NFS用作postgres存储。任何帮助都将不胜感激
未能使用StorageClass“standard”设置卷:无效
AccessModes[ReadWriteMany]:仅AccessModes[ReadWriteOnce]
支持ReadOnlyMany]
这就是问题的根本原因。您正在使用不支持所需访问模式的存储类(即ReadWriteMany
看一下,你似乎有这样的配置
storage3_name: 'nfsstorage'
storage3_access_mode: 'ReadWriteMany'
storage3_size: '1G'
storage3_type: 'create'
storage3_supplemental_groups: 65534
其中,storage3\u access\u mode
表示访问模式为ReadWriteMany
,但不支持这种方式
请尝试将其更改为ReadWriteOnce
另外,Postgres需要块存储才能工作,因此即使NFS设置正确,您的Postgres群集也不会运行。更多说明PostgreSQL需要文件系统,无块存储。NFS可以,但我听到了很多关于Linux实现可靠性的令人沮丧的声音。好吧,至少我不能每次都让它在NFS上工作。所以,是的,只是一些额外的信息供参考:)我试着像你说的那样放置
nfs
,但我得到了一个错误“time=“2020-09-16T06:40:46Z”level=error msg=“error in pgoconfig:check pgo.yaml:PrimaryStorage设置无效:\“nfs\”未定义“func=“internal/apiserver.Initialize()”file=”内部/apiserver/root.go:134“version=4.4.1
查看下面的示例:。我认为您应该放回nfsstorage
。并将AccessMode
更新为ReadWriteOnce
。我将更新我的答案。
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)
storage3_name: 'nfsstorage'
storage3_access_mode: 'ReadWriteMany'
storage3_size: '1G'
storage3_type: 'create'
storage3_supplemental_groups: 65534