在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存儲的幾種常見方法,具體選擇哪種方法取決于你的需求和環境。