一、背景二、资源下载三、使用nfs-client实现storageclass
3.1、安装nfs服务端3.2、安装nfs客户端3.3、安装nfs插件 三、部署分布式elasticsearch7.17.0集群总结:整理不易,如果对你有帮助,可否点赞关注一下?
一、背景
Metrics Server是一个集群范围内的资源数据集和工具,同样的,metrics-server也只是显示数据,并不提供数据存储服务,主要关注的是资源度量API的实现,比如CPU、文件描述符、内存、请求延时等指标,metric-server收集数据给k8s集群内使用,如kubectl,hpa,scheduler等。
二、资源下载
三、使用nfs-client实现storageclass
当前业务系统需要对监控的数据进行持久化存储,这里使用nfs作为动态storageClass存储,对prometheus监控数据进行持久化存储。
3.1、安装nfs服务端
说明:建议找一台单独且磁盘容量足够大的服务器作为nfs-server端。
# 1、安装nfs-server端yum -y install nfs-utils rpcbindsystemctl start nfs && systemctl enable nfssystemctl start rpcbind && systemctl enable rpcbind# 3、创建共享目录mkdir -p /data/volumes/{v1,v2,v3} # 3、编辑配置文件cat > /etc/exports << EOF/data/volumes/v1 192.168.1.0/24(rw,no_root_squash,no_all_squash)/data/volumes/v2 192.168.1.0/24(rw,no_root_squash,no_all_squash)/data/volumes/v3 192.168.1.0/24(rw,no_root_squash,no_all_squash)EOF# 4、发布[root@k8s-client volumes]# exportfs -arvexporting 192.168.1.0/24:/data/volumes/v1exporting 192.168.1.0/24:/data/volumes/v2exporting 192.168.1.0/24:/data/volumes/v3# 5、查看[root@k8s-client ~]# showmount -e 192.168.1.17Export list for 192.168.1.17:/data/volumes/v1 192.168.1.0/24/data/volumes/v2 192.168.1.0/24/data/volumes/v3 192.168.1.0/24
3.2、安装nfs客户端
说明:当前环境kubernetes集群master节点和worker节点则为nfs客户端。
# 客户端不需要创建共享目录和编辑配置文件,只安装服务就行yum -y install nfs-utils
3.3、安装nfs插件
说明:具有kubectl权限的主机。
官方测试资源下载
NFS动态存储StorageClass资源清单文件
1、修改deployment.yaml文件
2、创建账号
kubectl create -f rbac.yaml
3、创建nfs-client
kubectl create -f deployment.yaml
4、创建nfs-client kubernetes storage class
kubectl create -f class.yaml
5、设置StorageClass为默认
说明:默认的 StorageClass 将被用于动态的为没有特定 storage class 需求的PersistentVolumeClaims 配置存储:(只能有一个默认StorageClass),如果没有默认StorageClass,PVC 也没有指定storageClassName 的值,那么意味着它只能够跟 storageClassName相同的PV进行绑定。
kubectl patch storageclass managed-nfs-storage -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
如下图所示:
6、测试pvc
[root@k8s-master-227 nfs]# kubectl apply -f test-claim.yaml
问题:创建的pvc一直处于pending状态
解决方案:分别在三个master节点上,修改/etc/kubernetes/manifests/kube-apiserver.yaml 文件,添加添加–feature-gates=RemoveSelflink=false,当前kubernetes集群是使用kubeadm部署的,修改kube-apiserver.yaml 文件会自动重启apiserver服务,不用手动重启,如下图所示:
如下图所示,则表明pvc创建成功
7、测试pod
[root@k8s-master-227 nfs]# kubectl apply -f test-pod.yaml
如下图所示,则表示pod运行成功
查看nfs-server主机上共享目录/data/volumes/v1/,下面有SUCCESS文件
三、部署分布式elasticsearch7.17.0集群
总结:整理不易,如果对你有帮助,可否点赞关注一下?
更多详细内容请参考:企业级K8s集群运维实战