在CentOS上部署Kubernetes(k8s)集群时,选择合适的存储解决方案至关重要。根据搜索结果,以下是几种常见的存储类型及其特点,以帮助您做出选择:
NFS(Network File System)
# 安装NFS服务器和客户端软件包
sudo yum install -y nfs-utils rpcbind
# 创建共享存储文件夹并配置NFS
sudo mkdir /nfs
sudo vi /etc/exports
# 启动并启用NFS服务
sudo systemctl start nfs-server
sudo systemctl enable nfs-server
# 在Kubernetes中创建PersistentVolume和PersistentVolumeClaim
apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-pv
spec:
  capacity:
    storage: 1Gi
  accessModes:
    - ReadWriteMany
  nfs:
    path: /nfs
    server: <NFS_SERVER_IP>
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfs-pvc
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 1Gi
Ceph
# 安装Ceph软件包
sudo yum install -y ceph ceph-common ceph-fuse ceph-mds ceph-mgr ceph-mon ceph-osd ceph-radosgw
# 初始化Ceph集群并添加节点
# 配置Ceph存储类(StorageClass)、PersistentVolume和PersistentVolumeClaim,并将其绑定到Pod
GlusterFS
# 安装GlusterFS软件包
# 初始化GlusterFS集群
# 配置GlusterFS类型的PersistentVolume和PersistentVolumeClaim,并将其绑定到Pod
EmptyDir
apiVersion: v1
kind: Pod
metadata:
  name: emptydir-nginx
spec:
  containers:
  - name: emptydir-nginx
    image: nginx
    volumeMounts:
    - mountPath: /data/
      name: emptydir-name
  volumes:
  - name: emptydir-name
    emptyDir:
      sizeLimit: 1G
HostPath
apiVersion: v1
kind: Pod
metadata:
  name: pod-with-hostpath
spec:
  containers:
  - name: redis
    image: redis:7-alpine
    volumeMounts:
    - name: redis-storage
      mountPath: /data
  volumes:
  - name: redis-storage
    hostPath:
      path: /mnt/redis
选择合适的存储解决方案需要根据具体的应用场景和需求来决定,例如数据的持久性要求、存储性能、扩展性以及运维能力等因素都是需要考虑的。