在CentOS上部署Kubernetes(k8s)并实现持久化存储,可以按照以下步骤进行:
首先,你需要在CentOS上安装Kubernetes集群。可以使用kubeadm
工具来简化这个过程。
sudo yum install -y kubeadm kubelet kubectl --disable-gpg-check
sudo systemctl enable kubelet
sudo systemctl start kubelet
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
按照提示完成初始化过程,包括设置kubectl配置文件和加入工作节点。
为了使Pod之间能够通信,需要安装一个网络插件。常用的网络插件有Calico、Flannel等。
kubectl apply -f https://docs.projectcalico.org/v3.25/manifests/calico.yaml
持久化存储需要使用PersistentVolume(PV)和PersistentVolumeClaim(PVC)。
apiVersion: v1
kind: PersistentVolume
metadata:
name: my-pv
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
hostPath:
path: /mnt/data
保存为my-pv.yaml
,然后应用:
kubectl apply -f my-pv.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
保存为my-pvc.yaml
,然后应用:
kubectl apply -f my-pvc.yaml
创建一个Pod,并在其中使用PVC。
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: my-container
image: nginx
volumeMounts:
- mountPath: "/usr/share/nginx/html"
name: my-volume
volumes:
- name: my-volume
persistentVolumeClaim:
claimName: my-pvc
保存为my-pod.yaml
,然后应用:
kubectl apply -f my-pod.yaml
验证Pod是否正确挂载了PersistentVolume。
kubectl get pods
kubectl exec -it my-pod -- ls /usr/share/nginx/html
如果你不再需要这些资源,可以删除它们。
kubectl delete pod my-pod
kubectl delete pvc my-pvc
kubectl delete pv my-pv
通过以上步骤,你可以在CentOS上部署Kubernetes集群并实现持久化存储。根据实际需求,你可以调整PV和PVC的配置,例如使用不同的存储类(StorageClass)来支持动态存储分配。