安装 bitnami mongodb-sharded 时,我收到 PVC 错误:此声明没有可用的持久卷并且未设置存储 class
when installing bitnami mongodb-sharded, i got error from PVCs: no persistent volumes available for this claim and no storage class is set
我正在尝试安装我的 rancher(RKE) kubernetes 集群 bitnami/mongodb-shared。但是我无法为这个 helm chart 创建一个有效的 PV。
我得到的错误:
此声明没有可用的持久卷,也没有设置存储 class
这是关于 PersistenceVolume 的 helm chart 文档部分:https://github.com/bitnami/charts/tree/master/bitnami/mongodb-sharded/#persistence
这是我为此 helm chart PVC 创建的 StorageClass 和 PersistentVolume yaml:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: ssd-nfs-storage
provisioner: nope
parameters:
archiveOnDelete: "false"
----------
apiVersion: v1
kind: PersistentVolume
metadata:
name: nfs-pv
labels:
name: db-nfs
spec:
storageClassName: ssd-nfs-storage # same storage class as pvc
capacity:
storage: 100Gi
accessModes:
- ReadWriteOnce
nfs:
server: 142.251.33.78 # ip addres of nfs server
path: "/bitnami/mongodb" # path to directory
这是由 helm chart 创建的 PVC yaml:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
creationTimestamp: "2021-06-06T17:50:40Z"
finalizers:
- kubernetes.io/pvc-protection
labels:
app.kubernetes.io/component: shardsvr
app.kubernetes.io/instance: sam-db
app.kubernetes.io/name: mongodb-sharded
managedFields:
- apiVersion: v1
fieldsType: FieldsV1
fieldsV1:
f:metadata:
f:labels:
.: {}
f:app.kubernetes.io/component: {}
f:app.kubernetes.io/instance: {}
f:app.kubernetes.io/name: {}
f:spec:
f:accessModes: {}
f:resources:
f:requests:
.: {}
f:storage: {}
f:volumeMode: {}
f:status:
f:phase: {}
manager: kube-controller-manager
operation: Update
time: "2021-06-06T17:50:40Z"
name: datadir-sam-db-mongodb-sharded-shard1-data-0
namespace: default
resourceVersion: "960381"
uid: c4313ed9-cc99-42e9-a64f-82bea8196629
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 8Gi
volumeMode: Filesystem
status:
phase: Pending
你能告诉我我错过了什么吗?
该图表公开了两个参数,允许您选择要用于 PVC 的存储类(否则它将使用 'default' 一个):
configsvr.persistence.storageClass
shardsvr.persistence.storageClass
在 README.md
的 Parameters section 中查找更多信息
所以基本上您需要安装图表并相应地设置这些参数。
我在 Rancher(v2.5.8) 上提供 bitnami/mongodb-sharded
安装 NFS 服务器的说明。
我有三个 Centos 8 虚拟机。 k8s 集群上的一个 NFS 服务器(假设是 1.1.1.1),两个 k8s 节点(假设是 8.8.8.8 和 9.9.9.9),我正在使用 RKE(又名 Rancher K8S 引擎)
- 我们将创建一个 NFS 服务器
- 我们会将节点绑定到 NFS 服务器
- 我们会将
nfs-subdir-external-provisioner
HELM 存储库添加到 Rancher Chart 存储库
- 我们将通过 rancher 图表安装
nfs-subdir-external-provisioner
- 我们会将
bitnami
HELM 存储库添加到 Rancher Chart 存储库
- 我们将通过 Rancher 图表安装
mongodb-sharded
- 创建 NFS 服务器
# nfs server install
dnf install nfs-utils -y
systemctl start nfs-server.service
systemctl enable nfs-server.service
systemctl status nfs-server.service
# you can verify the version
rpcinfo -p | grep nfs
# nfs deamon config: /etc/nfs.conf
# nfs mount config: /etc/nfsmount.conf
mkdir /mnt/storage
# allows creation from client
# for mongodb-sharded: /mnt/storage
chown -R nobody: /mnt/storage
chmod -R 777 /mnt/storage
# restart service again
systemctl restart nfs-utils.service
# grant access to the client
vi /etc/exports
/mnt/storage 8.8.8.8(rw,sync,no_all_squash,root_squash)
/mnt/storage 9.9.9.9(rw,sync,no_all_squash,root_squash)
# check exporting
exportfs -arv
exportfs -s
# exporting 8.8.8.8:/mnt/storage
# exporting 9.9.9.9:/mnt/storage
- 将k8s节点绑定到NFS服务器
# nfs client install
dnf install nfs-utils nfs4-acl-tools -y
# see from the client shared folder
showmount -e 1.1.1.1
# create mounting folder for client
mkdir /mnt/cstorage
# mount server folder to the client folder
mount -t nfs 1.1.1.1:/mnt/storage /mnt/cstorage
# check mounted folder vis nfs
mount | grep -i nfs
# mount persistent upon a reboot
vi /etc/fstab
# add following codes
1.1.1.1:/mnt/storage /mnt/cstorage nfs defaults 0 0
# all done
奖励:解绑节点。
# un mount and delete from client
umount -f -l /mnt/cstorage
rm -rf /mnt/cstorage
# delete added volume from fstab
vi /etc/fstab
- 添加 nfs-subdir-external-provisioner helm 存储库
Helm 存储库 URL: https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
- 牧场主 -->
- 集群资源管理器 -->
- 应用与市场
- 图表存储库 -->
- 创建 -->
- 添加url如下this ccreenshot -->
- 保存 -->
- 通过图表安装
nfs-subdir-external-provisioner
- 牧场主 -->
- 集群资源管理器 -->
- 应用与市场
- 图表 -->
- find nfs-subdir-external-provisioner chart -->
- Select -->
- 给个名字(比如nfs-pr) -->
- Select 值 YAML -->
- set path, server ip and StorageClass name(we will use this class name later) -->
- 安装 -->
- 将
bitnami
HELM 存储库添加到 Rancher Chart 存储库
Bitnami 头盔 URL: https://charts.bitnami.com/bitnami
- 牧场主 -->
- 集群资源管理器 -->
- 应用与市场
- 图表存储库 -->
- 创建 -->
- 添加url喜欢步骤3的截图-->
- 保存 -->
- 通过 Rancher Charts 安装
mongodb-sharded
牧场主-->
集群资源管理器 -->
应用与市场
图表 -->
查找mongodb-sharded
-->
Select -->
给个名字(my-db) -->
Select 值 YAML -->
Add global.storageClassname: nfs-client(我们设置这个值第5步)-->
安装
我正在尝试安装我的 rancher(RKE) kubernetes 集群 bitnami/mongodb-shared。但是我无法为这个 helm chart 创建一个有效的 PV。
我得到的错误: 此声明没有可用的持久卷,也没有设置存储 class
这是关于 PersistenceVolume 的 helm chart 文档部分:https://github.com/bitnami/charts/tree/master/bitnami/mongodb-sharded/#persistence
这是我为此 helm chart PVC 创建的 StorageClass 和 PersistentVolume yaml:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: ssd-nfs-storage
provisioner: nope
parameters:
archiveOnDelete: "false"
----------
apiVersion: v1
kind: PersistentVolume
metadata:
name: nfs-pv
labels:
name: db-nfs
spec:
storageClassName: ssd-nfs-storage # same storage class as pvc
capacity:
storage: 100Gi
accessModes:
- ReadWriteOnce
nfs:
server: 142.251.33.78 # ip addres of nfs server
path: "/bitnami/mongodb" # path to directory
这是由 helm chart 创建的 PVC yaml:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
creationTimestamp: "2021-06-06T17:50:40Z"
finalizers:
- kubernetes.io/pvc-protection
labels:
app.kubernetes.io/component: shardsvr
app.kubernetes.io/instance: sam-db
app.kubernetes.io/name: mongodb-sharded
managedFields:
- apiVersion: v1
fieldsType: FieldsV1
fieldsV1:
f:metadata:
f:labels:
.: {}
f:app.kubernetes.io/component: {}
f:app.kubernetes.io/instance: {}
f:app.kubernetes.io/name: {}
f:spec:
f:accessModes: {}
f:resources:
f:requests:
.: {}
f:storage: {}
f:volumeMode: {}
f:status:
f:phase: {}
manager: kube-controller-manager
operation: Update
time: "2021-06-06T17:50:40Z"
name: datadir-sam-db-mongodb-sharded-shard1-data-0
namespace: default
resourceVersion: "960381"
uid: c4313ed9-cc99-42e9-a64f-82bea8196629
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 8Gi
volumeMode: Filesystem
status:
phase: Pending
你能告诉我我错过了什么吗?
该图表公开了两个参数,允许您选择要用于 PVC 的存储类(否则它将使用 'default' 一个):
configsvr.persistence.storageClass
shardsvr.persistence.storageClass
在 README.md
的 Parameters section 中查找更多信息所以基本上您需要安装图表并相应地设置这些参数。
我在 Rancher(v2.5.8) 上提供 bitnami/mongodb-sharded
安装 NFS 服务器的说明。
我有三个 Centos 8 虚拟机。 k8s 集群上的一个 NFS 服务器(假设是 1.1.1.1),两个 k8s 节点(假设是 8.8.8.8 和 9.9.9.9),我正在使用 RKE(又名 Rancher K8S 引擎)
- 我们将创建一个 NFS 服务器
- 我们会将节点绑定到 NFS 服务器
- 我们会将
nfs-subdir-external-provisioner
HELM 存储库添加到 Rancher Chart 存储库 - 我们将通过 rancher 图表安装
nfs-subdir-external-provisioner
- 我们会将
bitnami
HELM 存储库添加到 Rancher Chart 存储库 - 我们将通过 Rancher 图表安装
mongodb-sharded
- 创建 NFS 服务器
# nfs server install
dnf install nfs-utils -y
systemctl start nfs-server.service
systemctl enable nfs-server.service
systemctl status nfs-server.service
# you can verify the version
rpcinfo -p | grep nfs
# nfs deamon config: /etc/nfs.conf
# nfs mount config: /etc/nfsmount.conf
mkdir /mnt/storage
# allows creation from client
# for mongodb-sharded: /mnt/storage
chown -R nobody: /mnt/storage
chmod -R 777 /mnt/storage
# restart service again
systemctl restart nfs-utils.service
# grant access to the client
vi /etc/exports
/mnt/storage 8.8.8.8(rw,sync,no_all_squash,root_squash)
/mnt/storage 9.9.9.9(rw,sync,no_all_squash,root_squash)
# check exporting
exportfs -arv
exportfs -s
# exporting 8.8.8.8:/mnt/storage
# exporting 9.9.9.9:/mnt/storage
- 将k8s节点绑定到NFS服务器
# nfs client install
dnf install nfs-utils nfs4-acl-tools -y
# see from the client shared folder
showmount -e 1.1.1.1
# create mounting folder for client
mkdir /mnt/cstorage
# mount server folder to the client folder
mount -t nfs 1.1.1.1:/mnt/storage /mnt/cstorage
# check mounted folder vis nfs
mount | grep -i nfs
# mount persistent upon a reboot
vi /etc/fstab
# add following codes
1.1.1.1:/mnt/storage /mnt/cstorage nfs defaults 0 0
# all done
奖励:解绑节点。
# un mount and delete from client
umount -f -l /mnt/cstorage
rm -rf /mnt/cstorage
# delete added volume from fstab
vi /etc/fstab
- 添加 nfs-subdir-external-provisioner helm 存储库
Helm 存储库 URL: https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
- 牧场主 -->
- 集群资源管理器 -->
- 应用与市场
- 图表存储库 -->
- 创建 -->
- 添加url如下this ccreenshot -->
- 保存 -->
- 通过图表安装
nfs-subdir-external-provisioner
- 牧场主 -->
- 集群资源管理器 -->
- 应用与市场
- 图表 -->
- find nfs-subdir-external-provisioner chart -->
- Select -->
- 给个名字(比如nfs-pr) -->
- Select 值 YAML -->
- set path, server ip and StorageClass name(we will use this class name later) -->
- 安装 -->
- 将
bitnami
HELM 存储库添加到 Rancher Chart 存储库
Bitnami 头盔 URL: https://charts.bitnami.com/bitnami
- 牧场主 -->
- 集群资源管理器 -->
- 应用与市场
- 图表存储库 -->
- 创建 -->
- 添加url喜欢步骤3的截图-->
- 保存 -->
- 通过 Rancher Charts 安装
mongodb-sharded
牧场主-->
集群资源管理器 -->
应用与市场
图表 -->
查找
mongodb-sharded
-->Select -->
给个名字(my-db) -->
Select 值 YAML -->
Add global.storageClassname: nfs-client(我们设置这个值第5步)-->
安装