如何在CentOS上配置Kubernetes的存储

961
2025/3/24 0:32:30
栏目: 云计算
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在CentOS上配置Kubernetes的存储可以通过多种方式实现,以下是使用NFS和Ceph的两种常见方法:

使用NFS配置Kubernetes存储

  1. 在CentOS上安装NFS服务器
  • 安装NFS服务器软件包:
    sudo yum install -y nfs-utils
    
  • 配置NFS共享目录:
    sudo mkdir -p /mnt/nfssudo groupadd nogroupsudo chown -R nobody:nogroup /mnt/nfs
    
  • 配置NFS导出文件: 编辑 /etc/exports 文件,添加共享目录:
    /mnt/nfs *(rw,sync,no_subtree_check)
    
  • 启动并启用NFS服务:
    sudo systemctl start nfs-serversudo systemctl enable nfs-server
    
  • 导出共享目录:
    sudo exportfs -a
    
  • 配置防火墙:
    sudo firewall-cmd --permanent --add-service=nfssudo firewall-cmd --permanent --add-service=mountdsudo firewall-cmd --permanent --add-service=rpc-bindsudo firewall-cmd --reload
    
  • 检查NFS状态:
    sudo systemctl status nfs-server
    
  1. 在CentOS上安装NFS客户端
  • 安装NFS客户端软件包:
    sudo yum install -y nfs-utils
    
  • 挂载NFS共享:
    sudo mount 192.168.56.115:/mnt/nfs /mnt/nfs-client
    
  • 配置自动挂载: 将挂载信息添加到 /etc/fstab 文件中:
    192.168.56.115:/mnt/nfs /mnt/nfs-client nfs defaults 0 0
    
  • 给所有用户读写权限:
    sudo chmod 777 /mnt/nfs
    
  1. 在Kubernetes中使用NFS存储
  • 创建PersistentVolume (PV):

    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.56.115
    
  • 创建PersistentVolumeClaim (PVC):

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: nfs-pvc
    spec:
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 5Gi
    

使用Ceph配置Kubernetes存储

  1. 准备工作
  • 确保Kubernetes集群版本为1.22+,至少3个节点。
  • Ceph存储节点:每个节点至少4GB内存和20GB存储。
  • 操作系统:CentOS 7+。
  • 安装必要工具:
    kubectl
    helm
    
  1. 部署Ceph Operator
  • 添加Rook的Helm仓库:
    helm repo add rook-release https://charts.rook.io/release
    helm repo update
    
  • 部署Ceph Operator:
    kubectl create namespace rook-ceph
    helm install rook-ceph rook-release/rook-ceph --namespace rook-ceph
    
  • 验证Operator状态:
    kubectl get pods -n rook-ceph
    
  1. 配置Ceph集群
  • 创建存储节点配置:
    kubectl apply -f - <<EOF
    apiVersion: ceph.rook.io/v1
    kind: CephCluster
    metadata:
      name: rook-ceph
      namespace: rook-ceph
    spec:
      cephVersion: image: ceph/ceph:v16.2.6
      allowUnsupported: false
      dataDirHostPath: /var/lib/rook
      useAllNodes: true
      useAllDevices: false
      devices:
        - name: /dev/sdb
          network: hostNetwork: false
    EOF
    
  • 验证Ceph集群状态:
    kubectl -n rook-ceph get cephcluster
    
  1. 创建存储类
  • 配置RBD存储类:
    kubectl apply -f - <<EOF
    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
      csi.storage.k8s.io/node-stage-secret-name: rook-csi-rbd-n
    EOF
    

以上步骤涵盖了在CentOS上配置Kubernetes存储的基本流程,具体操作时请根据实际情况进行调整。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: MongoDB配置中的安全选项有哪些