centos k8s安装存储设置
导读:CentOS环境下Kubernetes存储设置指南 在CentOS上为Kubernetes配置存储需完成基础环境准备、存储解决方案部署、持久化资源定义及Pod集成四大步骤,以下是具体操作流程: 一、基础环境准备 1. 安装Kubernete...
CentOS环境下Kubernetes存储设置指南
在CentOS上为Kubernetes配置存储需完成基础环境准备、存储解决方案部署、持久化资源定义及Pod集成四大步骤,以下是具体操作流程:
一、基础环境准备
1. 安装Kubernetes集群
使用kubeadm工具快速部署Kubernetes集群:
# 安装必要组件
sudo yum install -y kubeadm kubelet kubectl --disable-gpg-check
sudo systemctl enable kubelet
sudo systemctl start kubelet
# 初始化集群(以10.244.0.0/16为Pod网络CIDR为例)
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
# 配置kubectl(按初始化提示执行)
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
2. 安装网络插件
为保证Pod间通信,需安装网络插件(以Calico为例):
kubectl apply -f https://docs.projectcalico.org/v3.25/manifests/calico.yaml
二、存储解决方案部署
Kubernetes支持多种存储类型,以下是NFS(简单共享存储)和Ceph(分布式块存储)的具体配置:
1. NFS存储配置(适用于单节点或多节点共享)
(1)部署NFS服务器
在CentOS节点上安装并配置NFS服务:
# 安装NFS软件包
sudo yum install -y nfs-utils
# 创建共享目录并设置权限
sudo mkdir -p /mnt/nfs
sudo groupadd nogroup
sudo chown -R nobody:nogroup /mnt/nfs
# 配置共享规则(允许所有客户端读写)
echo "/mnt/nfs *(rw,sync,no_subtree_check)" | sudo tee /etc/exports
# 启动服务并配置防火墙
sudo systemctl start nfs-server
sudo systemctl enable nfs-server
sudo firewall-cmd --permanent --add-service=nfs --add-service=mountd --add-service=rpc-bind
sudo firewall-cmd --reload
(2)Kubernetes中创建PV/PVC
通过YAML文件定义PersistentVolume(PV)和PersistentVolumeClaim(PVC):
-
PV配置(nfs-pv.yaml):
apiVersion: v1 kind: PersistentVolume metadata: name: nfs-pv spec: capacity: storage: 5Gi accessModes: - ReadWriteMany # 支持多节点挂载 nfs: path: /mnt/nfs server: < NFS服务器IP> # 替换为实际IP persistentVolumeReclaimPolicy: Retain # 删除PVC后保留PV数据 -
PVC配置(nfs-pvc.yaml):
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: nfs-pvc spec: accessModes: - ReadWriteMany resources: requests: storage: 5Gi # 申请5Gi存储空间
应用配置:
kubectl apply -f nfs-pv.yaml -f nfs-pvc.yaml
2. Ceph存储配置(适用于分布式高可用场景)
(1)部署Ceph Operator
使用Rook项目简化Ceph集群部署:
# 添加Rook Helm仓库
helm repo add rook-release https://charts.rook.io/release
helm repo update
# 创建rook-ceph命名空间并安装Operator
kubectl create namespace rook-ceph
helm install rook-ceph rook-release/rook-ceph --namespace rook-ceph
(2)配置Ceph集群
通过YAML文件定义CephCluster资源:
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
应用配置并验证集群状态:
kubectl apply -f ceph-cluster.yaml
kubectl -n rook-ceph get cephcluster # 查看集群状态(需等待STATUS变为"Ready")
(3)创建Ceph存储类
定义StorageClass以实现动态存储分配(以RBD块存储为例):
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: rook-ceph-block
provisioner: rook-ceph.rbd.csi.ceph.com
parameters:
clusterID: rook-ceph # 与CephCluster名称一致
pool: replicapool # 存储池名称(需与Ceph集群配置一致)
imageFormat: "2" # RBD镜像格式(推荐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-node
csi.storage.k8s.io/node-stage-secret-namespace: rook-ceph
reclaimPolicy: Delete # 删除PVC后自动删除PV
allowVolumeExpansion: true # 支持在线扩容
volumeBindingMode: Immediate # 立即绑定PVC与PV
应用配置:
kubectl apply -f ceph-storageclass.yaml
三、在Pod中使用存储
通过PVC将存储挂载到Pod中(以Nginx为例):
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
spec:
containers:
- name: nginx
image: nginx
volumeMounts:
- mountPath: "/usr/share/nginx/html" # 容器内挂载路径
name: nfs-volume # 卷名称
volumes:
- name: nfs-volume
persistentVolumeClaim:
claimName: nfs-pvc # 关联之前创建的PVC
应用配置并验证:
kubectl apply -f nginx-pod.yaml
kubectl exec -it nginx-pod -- ls /usr/share/nginx/html # 查看挂载目录
注意事项
- NFS权限:确保NFS共享目录权限设置为
nobody:nogroup,避免Pod无法访问。 - Ceph设备清理:使用
/dev/sdb前需彻底清理磁盘(wipefs -a /dev/sdb),防止数据残留。 - StorageClass选择:动态存储分配需依赖StorageClass,静态PV需手动创建PV并与PVC匹配。
- 存储插件兼容性:不同存储插件(如Longhorn、Portworx)需参考其官方文档调整配置。
以上步骤覆盖了CentOS环境下Kubernetes存储配置的核心流程,可根据业务需求选择合适的存储方案。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos k8s安装存储设置
本文地址: https://pptw.com/jishu/745955.html
