温馨提示×

如何在CentOS上配置Kubernetes存储

小樊
54
2025-04-02 21:42:02
栏目: 云计算

在CentOS上配置Kubernetes存储可以通过多种方式实现,以下是几种常见的方法:

使用NFS存储

  1. 在CentOS上安装NFS服务器
  • 安装NFS服务器软件包:

    sudo yum install -y nfs-utils
    
  • 配置NFS共享目录:

    sudo mkdir -p /mnt/nfs
    sudo groupadd nogroup
    sudo chown -R nobody:nogroup /mnt/nfs
    
  • 配置NFS导出文件:

    编辑 /etc/exports 文件,添加以下内容:

    /mnt/nfs *(rw,sync,no_subtree_check)
    
  • 启动并启用NFS服务:

    sudo systemctl start nfs-server
    sudo 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-bind
    sudo firewall-cmd --reload
    
  • 检查NFS状态:

    sudo systemctl status nfs-server
    
  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.1.100
    
  • 创建 PersistentVolumeClaim (PVC):

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

使用Docker存储

  1. 安装Docker并配置cgroup driver
  • 安装Docker:

    sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    
  • 启动Docker服务:

    sudo systemctl start docker
    
  • 设置Docker开机自启动:

    sudo systemctl enable docker
    
  • 配置Docker使用systemd作为cgroup driver:

    编辑 /etc/docker/daemon.json 文件:

    sudo tee /etc/docker/daemon.json << EOF
    {
      "exec-opts": ["native.cgroupdriver=systemd"],
      "log-driver": "json-file",
      "log-opts": {
        "max-size": "100m"
      },
      "storage-driver": "overlay2",
      "storage-opts": ["overlay2.override_kernel_check=true"]
    }
    EOF
    
  • 重启Docker服务:

    sudo systemctl restart docker
    

使用Ceph RBD存储

  1. 安装Ceph
  • 安装Ceph依赖包:

    sudo yum install -y ceph-deploy
    
  • 初始化Ceph集群:

    sudo ceph-deploy new my-cluster
    
  1. 在Kubernetes中使用Ceph RBD存储
  • 创建 PersistentVolume (PV):

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: ceph-pv
    spec:
      capacity:
        storage: 10Gi
      accessModes:
        - ReadWriteOnce
      ceph:
        monitors:
          - 192.168.1.100
          - 192.168.1.101
          - 192.168.1.102
        pool: my-ceph-pool
        image: k8s-ceph-image
        user: k8s-ceph-user
        keyring: /etc/ceph/ceph.client.k8s.keyring
    
  • 创建 PersistentVolumeClaim (PVC):

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: ceph-pvc
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 10Gi
      storageClassName: ceph
    

以上是在CentOS上配置Kubernetes存储的几种常见方法,具体选择哪种方法取决于你的需求和环境。

0