在CentOS上配置Kubernetes存储可以通过多种方式实现,其中NFS(Network File System)是一种常见的选择。以下是详细的步骤指南,帮助你在CentOS上配置NFS存储以供Kubernetes使用:
sudo yum install -y nfs-utils
sudo mkdir -p /mnt/nfssudo groupadd nogroupsudo chown -R nobody:nogroup /mnt/nfs
编辑 /etc/exports
文件,添加共享目录的配置:
/mnt/nfs *(rw, sync, no_subtree_check)
保存并退出文件。
sudo systemctl start nfs-serversudo systemctl enable nfs-server
使共享目录立即生效:
sudo exportfs -a
如果防火墙已启用,允许NFS相关的端口:
sudo firewall-cmd --permanent --add-servicenfssudo firewall-cmd --permanent --add-servicemountdsudo firewall-cmd --permanent --add-servicerpc-bindsudo firewall-cmd --reload
确保NFS服务器正在运行:
sudo systemctl status nfs-server
在客户端机器上安装NFS客户端工具:
sudo yum install -y nfs-utils
在客户端机器上挂载NFS共享目录。例如,假设NFS服务器的IP地址是 192.168.1.100
,共享目录是 /mnt/nfs
:
sudo mount 192.168.1.100:/mnt/nfs /mnt/nfs-client
将挂载信息添加到 /etc/fstab
文件中,以便在客户端系统启动时自动挂载NFS共享:
192.168.1.100:/mnt/nfs /mnt/nfs-client nfs defaults 0 0
给所有用户读写权限:
sudo chmod 777 /mnt/nfs
创建一个名为 nfs-pv.yaml
的文件,定义如下内容:
apiVersion: v1
kind: PersistentVolume
metadata:
name: nfs-pv
spec:
capacity:
storage: 5Gi
volumeMode: Filesystem
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
nfs:
path: /mnt/nfs
server: 192.168.1.100
mountOptions:
- nolock
应用配置:
kubectl apply -f nfs-pv.yaml
创建一个名为 nfs-pvc.yaml
的文件,定义如下内容:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-pvc
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 5Gi
storageClassName: nfs
应用配置:
kubectl apply -f nfs-pvc.yaml
创建一个Pod配置文件,例如 pod.yaml
,定义如下内容:
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: my-container
image: my-image
volumeMounts:
- mountPath: "/data"
name: my-volume
volumes:
- name: my-volume
persistentVolumeClaim:
claimName: nfs-pvc
应用配置:
kubectl apply -f pod.yaml
通过以上步骤,你可以在CentOS上配置NFS存储,并将其绑定到Kubernetes Pod中,实现持久化存储的功能。