centos k8s部署如何进行存储配置
在CentOS上部署Kubernetes时,可通过以下常见存储方案进行配置,以下是具体步骤及对应配置示例:
一、NFS存储配置
1. 安装NFS服务器
# 安装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
2. 在Kubernetes中创建PV和PVC
- PV配置(nfs-pv.yaml):
apiVersion: v1
kind: PersistentVolume
metadata:
name: nfs-pv
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteMany
nfs:
path: /mnt/nfs
server:
- PVC配置(nfs-pvc.yaml):
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
3. 在Pod中使用PVC
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
- 应用Pod配置:
kubectl apply -f nginx-pod.yaml
二、Ceph存储配置(需提前部署Ceph集群)
1. 部署Ceph集群(简化步骤)
- 安装Ceph Operator:
helm repo add rook-release https://charts.rook.io/release
helm install rook-ceph rook-release/rook-ceph --namespace rook-ceph
- 创建Ceph存储类(RBD类型):
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
三、HostPath存储(仅适用于单节点测试)
1. 创建本地目录并配置PV
- 在节点上创建目录:
mkdir -p /data/k8s-storage
- PV配置(hostpath-pv.yaml):
apiVersion: v1
kind: PersistentVolume
metadata:
name: hostpath-pv
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: /data/k8s-storage
- PVC配置(hostpath-pvc.yaml):
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
四、关键说明
-
存储类型选择:
- NFS:适合中小规模集群,支持多节点共享,需手动配置NFS服务器。
- Ceph:适合大规模集群,支持块存储、对象存储,需提前部署Ceph集群。
- HostPath:仅适用于开发测试,数据存储在节点本地,不具备高可用性。
-
动态存储(StorageClass):
- 通过StorageClass可实现按需分配存储,避免手动创建PV。
- NFS和Ceph均支持通过StorageClass动态创建PVC。
-
验证存储:
- 查看PV和PVC状态:
kubectl get pv,pvc
- 进入Pod验证数据是否持久化:
kubectl exec -it
-- ls /挂载路径
- 查看PV和PVC状态:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权请联系我们,一经查实立即删除!