Kubernetes集群安装、配置glusterfs文件系统

2024-09-07 13:58

本文主要是介绍Kubernetes集群安装、配置glusterfs文件系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

环境介绍:

3台Centos 7.4系统节点,已经部署好Kubernetes,同时复用这3台机器作为gluster存储节点:

hostIPK8s role

g1-nasp

12.12.10.11master + node
g3-nasp12.12.10.13node
g4-nasp12.12.10.14node

安装、配置glusterfs:

在物理主机上采用yum安装的方式,步骤如下:

1 在每台物理机上分别安装gluster源及相关组件:

$ sudo yum install -y centos-release-gluster
$ sudo yum install -y glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma

2 在每台物理机上分别启动gluster服务,并设置开机启动:

$ sudo systemctl start glusterd.service
$ sudo systemctl enable glusterd.service

3 在任意一台物理机上(如g1-nasp)配置,将3个节点加入到集群中:

$ sudo gluster peer probe g1-nasp
peer probe: success. Probe on localhost not needed
$ sudo gluster peer probe g3-nasp
peer probe: success.
$ sudo gluster peer probe g4-nasp
peer probe: success.

可以看到3个节点结果都显示peer probe:success。

4 在任意一个节点(如g4-nasp)查看集群状态:

$ sudo gluster peer status

在g4-nasp上可以观察到两个peer。

5 在3个节点分别创建数据存储目录,以home目录下的glusterfs/data为例:

$ mkdir -p ~/glusterfs/data

6 创建glusterfs磁盘(只需要在一个节点上执行即可),以创建striped模式的磁盘为例,其他模式请参考:CentOS 7 安装 GlusterFS

sudo gluster volume create k8s-volume stripe 3 g1-nasp:/home/shuai/glusterfs/data g3-nasp:/home/shuai/glusterfs/data g4-nasp:/home/shuai/glusterfs/data force

此时,文件将会切分为3块,分别存储到各个节点。示意图如下(图片来源:http://www.cnblogs.com/jicki/p/5801712.html)



如上图,一个名为k8s-volume的volume就创建成功了!

7 启动k8s-volume,同样在一个节点执行:

$ sudo gluster volume start k8s-volume

8 查看volume状态:

$ sudo gluster volume info


9 glusterfs性能调优请参考:Glusterfs调优

至此,glusterfs文件系统就安装、配置完成了。如果在物理主机访问,需要在客户端安装glusterfs和glusters-fuse,并且挂载到物理主机的文件系统。

$ sudo yum install -y glusterfs glusterfs-fuse
$ sudo mkdir -p /opt/gfsmnt
$ sudo mount -t glusterfs g1-nasp:k8s-volume /opt/gfsmnt/

df查看挂载状态:

$ sudo df -h



Kubernetes配置使用glusterfs:

官方文档对配置过程进行了介绍:https://github.com/kubernetes/examples/blob/master/staging/volumes/glusterfs/README.md

以下过程可以在kubernetes集群中任意一个可以执行kubectl的节点操作!

1 配置endpoints:

$ curl -O https://raw.githubusercontent.com/kubernetes/kubernetes/master/examples/volumes/glusterfs/glusterfs-endpoints.json

注意修改其中的ip为集群的实际ip,port任意,不冲突即可。

$ kubectl create -f glusterfs-endpoints.json

查看endpoints:

$ kubectl get ep


2 配置PersistentVolume:

有关pv和pvc可以参考:Kubernetes的的 Persistent Volumes

创建glusterfs-pv.yaml文件,指定storage容量和读写属性,如:

apiVersion: v1
kind: PersistentVolume
metadata:name: pv001
spec:capacity:storage: 20GiaccessModes:- ReadWriteManyglusterfs:endpoints: "glusterfs-cluster"path: "k8s-volume"readOnly: false

然后执行:

$ kubectl create -f glusterfs-pv.yaml

可以查看pv:

$ kubectl get pv


3 配置PersistentVolumeClaim:

创建glusterfs-pvc.yaml文件,指定请求资源大小,如:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: pvc001
spec:accessModes:- ReadWriteManyresources:requests:storage: 8Gi

然后执行:

$ kubectl create -f glusterfs-pvc.yaml

4 在deployment中挂载pvc:

以创建nginx,把pvc挂载到容器内的/usr/share/nginx/html文件夹为例:

nginx_deployment.yaml文件如下

apiVersion: extensions/v1beta1 
kind: Deployment 
metadata: name: nginx-dm
spec: replicas: 1template: metadata: labels: name: nginx spec: containers: - name: nginx image: nginxports: - containerPort: 80volumeMounts:- name: storage001mountPath: "/usr/share/nginx/html"volumes:- name: storage001persistentVolumeClaim:claimName: pvc001

然后执行:

$ kubectl create -f nginx_deployment.yaml

接下来,可以查看是否挂载成功。

首先查看deployment

$ kubectl get pods |grep nginx-dm

查看挂载:

$ kubectl exec -it nginx-dm-1224537537-r26sp -- df -h |grep k8s-volume

创建文件:

$ kubectl exec -it nginx-dm-1224537537-r26sp -- touch /usr/share/nginx/html/123.txt

查看文件属性:

$ kubectl exec -it nginx-dm-1224537537-r26sp -- ls -lt  /usr/share/nginx/html/123.txt 
-rw-r--r-- 1 root root 0 Mar 28 10:49 /usr/share/nginx/html/123.txt
此时在3台物理主机上都可以看到123.txt文件。



参考:

1. http://www.cnblogs.com/jicki/p/5801712.html

2. https://jimmysong.io/kubernetes-handbook/practice/using-glusterfs-for-persistent-storage.html

这篇关于Kubernetes集群安装、配置glusterfs文件系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1145256

相关文章

关于Maven中pom.xml文件配置详解

《关于Maven中pom.xml文件配置详解》pom.xml是Maven项目的核心配置文件,它描述了项目的结构、依赖关系、构建配置等信息,通过合理配置pom.xml,可以提高项目的可维护性和构建效率... 目录1. POM文件的基本结构1.1 项目基本信息2. 项目属性2.1 引用属性3. 项目依赖4. 构

龙蜥操作系统Anolis OS-23.x安装配置图解教程(保姆级)

《龙蜥操作系统AnolisOS-23.x安装配置图解教程(保姆级)》:本文主要介绍了安装和配置AnolisOS23.2系统,包括分区、软件选择、设置root密码、网络配置、主机名设置和禁用SELinux的步骤,详细内容请阅读本文,希望能对你有所帮助... ‌AnolisOS‌是由阿里云推出的开源操作系统,旨

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

mysql-8.0.30压缩包版安装和配置MySQL环境过程

《mysql-8.0.30压缩包版安装和配置MySQL环境过程》该文章介绍了如何在Windows系统中下载、安装和配置MySQL数据库,包括下载地址、解压文件、创建和配置my.ini文件、设置环境变量... 目录压缩包安装配置下载配置环境变量下载和初始化总结压缩包安装配置下载下载地址:https://d

LinuxMint怎么安装? Linux Mint22下载安装图文教程

《LinuxMint怎么安装?LinuxMint22下载安装图文教程》LinuxMint22发布以后,有很多新功能,很多朋友想要下载并安装,该怎么操作呢?下面我们就来看看详细安装指南... linux Mint 是一款基于 Ubuntu 的流行发行版,凭借其现代、精致、易于使用的特性,深受小伙伴们所喜爱。对

Linux(Centos7)安装Mysql/Redis/MinIO方式

《Linux(Centos7)安装Mysql/Redis/MinIO方式》文章总结:介绍了如何安装MySQL和Redis,以及如何配置它们为开机自启,还详细讲解了如何安装MinIO,包括配置Syste... 目录安装mysql安装Redis安装MinIO总结安装Mysql安装Redis搜索Red

python安装完成后可以进行的后续步骤和注意事项小结

《python安装完成后可以进行的后续步骤和注意事项小结》本文详细介绍了安装Python3后的后续步骤,包括验证安装、配置环境、安装包、创建和运行脚本,以及使用虚拟环境,还强调了注意事项,如系统更新、... 目录验证安装配置环境(可选)安装python包创建和运行Python脚本虚拟环境(可选)注意事项安装

gradle安装和环境配置全过程

《gradle安装和环境配置全过程》本文介绍了如何安装和配置Gradle环境,包括下载Gradle、配置环境变量、测试Gradle以及在IntelliJIDEA中配置Gradle... 目录gradle安装和环境配置1 下载GRADLE2 环境变量配置3 测试gradle4 设置gradle初始化文件5 i

SpringCloud配置动态更新原理解析

《SpringCloud配置动态更新原理解析》在微服务架构的浩瀚星海中,服务配置的动态更新如同魔法一般,能够让应用在不重启的情况下,实时响应配置的变更,SpringCloud作为微服务架构中的佼佼者,... 目录一、SpringBoot、Cloud配置的读取二、SpringCloud配置动态刷新三、更新@R

MySQL中my.ini文件的基础配置和优化配置方式

《MySQL中my.ini文件的基础配置和优化配置方式》文章讨论了数据库异步同步的优化思路,包括三个主要方面:幂等性、时序和延迟,作者还分享了MySQL配置文件的优化经验,并鼓励读者提供支持... 目录mysql my.ini文件的配置和优化配置优化思路MySQL配置文件优化总结MySQL my.ini文件