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

相关文章

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

HDFS—集群扩容及缩容

白名单:表示在白名单的主机IP地址可以,用来存储数据。 配置白名单步骤如下: 1)在NameNode节点的/opt/module/hadoop-3.1.4/etc/hadoop目录下分别创建whitelist 和blacklist文件 (1)创建白名单 [lytfly@hadoop102 hadoop]$ vim whitelist 在whitelist中添加如下主机名称,假如集群正常工作的节

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

hadoop开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 开启回收站功能参数说明 (1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。 (2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。

NameNode内存生产配置

Hadoop2.x 系列,配置 NameNode 内存 NameNode 内存默认 2000m ,如果服务器内存 4G , NameNode 内存可以配置 3g 。在 hadoop-env.sh 文件中配置如下。 HADOOP_NAMENODE_OPTS=-Xmx3072m Hadoop3.x 系列,配置 Nam

wolfSSL参数设置或配置项解释

1. wolfCrypt Only 解释:wolfCrypt是一个开源的、轻量级的、可移植的加密库,支持多种加密算法和协议。选择“wolfCrypt Only”意味着系统或应用将仅使用wolfCrypt库进行加密操作,而不依赖其他加密库。 2. DTLS Support 解释:DTLS(Datagram Transport Layer Security)是一种基于UDP的安全协议,提供类似于

Centos7安装JDK1.8保姆版

工欲善其事,必先利其器。这句话同样适用于学习Java编程。在开始Java的学习旅程之前,我们必须首先配置好适合的开发环境。 通过事先准备好这些工具和配置,我们可以避免在学习过程中遇到因环境问题导致的代码异常或错误。一个稳定、高效的开发环境能够让我们更加专注于代码的学习和编写,提升学习效率,减少不必要的困扰和挫折感。因此,在学习Java之初,投入一些时间和精力来配置好开发环境是非常值得的。这将为我