在CentOS上配置Kubernetes存储可以通过多种方式实现,以下是几种常见的方法:
安装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
创建 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:
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依赖包:
sudo yum install -y ceph-deploy
初始化Ceph集群:
sudo ceph-deploy new my-cluster
创建 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存储的几种常见方法,具体选择哪种方法取决于你的需求和环境。