在CentOS上部署Kubernetes时,可通过以下常见存储方案进行配置,以下是具体步骤及对应配置示例:
# 安装NFS软件包
sudo yum install -y nfs-utils
# 创建共享目录并设置权限
sudo mkdir -p /mnt/nfs
sudo groupadd nogroup
sudo chown -R nobody:nogroup /mnt/nfs
# 编辑/etc/exports配置共享
echo "/mnt/nfs *(rw,sync,no_subtree_check)" | sudo tee /etc/exports
# 启动NFS服务并配置防火墙
sudo systemctl start nfs-server
sudo systemctl enable nfs-server
sudo firewall-cmd --permanent --add-service=nfs --add-service=mountd --add-service=rpc-bind
sudo firewall-cmd --reload
apiVersion: v1
kind: PersistentVolume
metadata:
name: nfs-pv
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteMany
nfs:
path: /mnt/nfs
server: <NFS服务器IP>
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-pvc
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 5Gi
kubectl apply -f nfs-pv.yaml -f nfs-pvc.yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
spec:
containers:
- name: nginx
image: nginx
volumeMounts:
- mountPath: "/usr/share/nginx/html"
name: nfs-volume
volumes:
- name: nfs-volume
persistentVolumeClaim:
claimName: nfs-pvc
kubectl apply -f nginx-pod.yaml
helm repo add rook-release https://charts.rook.io/release
helm install rook-ceph rook-release/rook-ceph --namespace rook-ceph
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: rook-ceph-block
provisioner: rook-ceph.rbd.csi.ceph.com
parameters:
clusterID: rook-ceph
pool: replicapool
imageFormat: "2"
imageFeatures: layering
csi.storage.k8s.io/provisioner-secret-name: rook-csi-rbd-provisioner
csi.storage.k8s.io/provisioner-secret-namespace: rook-ceph
kubectl apply -f ceph-storageclass.yaml
mkdir -p /data/k8s-storage
apiVersion: v1
kind: PersistentVolume
metadata:
name: hostpath-pv
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: /data/k8s-storage
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: hostpath-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
kubectl apply -f hostpath-pv.yaml -f hostpath-pvc.yaml
存储类型选择:
动态存储(StorageClass):
验证存储:
kubectl get pv,pvc
kubectl exec -it <pod-name> -- ls /挂载路径