k8s使用glusterfs做存储
一、安装glusterfs
https://www.cnblogs.com/zhangb8042/p/7801181.html
环境介绍;
centos 7
[root@k8s-m ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.31.250.144 k8s-m
172.31.250.145 node
配置好信任池
[root@k8s-m ~]# gluster peer status
Number of Peers: Hostname: node
Uuid: 550bc83e-e15b-40da-9f63-b468d6c7bdb9
State: Peer in Cluster (Connected) 、创建目录
mkdir /data 、创建glusterfs的复制卷
[root@node yum.repos.d]# gluster volume create gv0 replica k8s-m:/data node:/data force
volume create: gv0: success: please start the volume to access data 、启动卷
[root@node yum.repos.d]# gluster volume start gv0
volume start: gv0: success 、查看
[root@k8s-m ~]# gluster volume status gv0
Status of volume: gv0
Gluster process TCP Port RDMA Port Online Pid
------------------------------------------------------------------------------
Brick k8s-m:/data Y
Brick node:/data Y
Self-heal Daemon on localhost N/A N/A Y
Self-heal Daemon on node N/A N/A Y Task Status of Volume gv0
------------------------------------------------------------------------------
There are no active volume tasks
二、k8s配置
1、配置 endpoints
[root@k8s-m ~]# cat glusterfs-endpoints.json
{
"kind": "Endpoints",
"apiVersion": "v1",
"metadata": {
"name": "glusterfs-cluster"
},
"subsets": [
{
"addresses": [
{
"ip": "172.31.250.144"
}
],
"ports": [
{
"port": 1000
}
]
},
{
"addresses": [
{
"ip": "172.31.250.145"
}
],
"ports": [
{
"port": 1000
}
]
}
]
} #导入
kubectl apply -f glusterfs-endpoints.json
#查看
[root@k8s-m ~]# kubectl get ep
NAME ENDPOINTS AGE
glusterfs-cluster 172.31.250.144:1000,172.31.250.145:1000 17m
kubernetes 172.31.250.144:6443 24m
2、配置 service
[root@k8s-m ~]# cat glusterfs-service.json
{
"kind": "Service",
"apiVersion": "v1",
"metadata": {
"name": "glusterfs-cluster"
},
"spec": {
"ports": [
{"port": }
]
}
} #导入
kubectl apply -f glusterfs-service.json
#查看
[root@k8s-m ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
glusterfs-cluster ClusterIP 10.105.177.109 <none> /TCP 17m
kubernetes ClusterIP 10.96.0.1 <none> /TCP 24m
3、创建测试 pod
[root@k8s-m ~]# cat glusterfs-pod.json
{
"apiVersion": "v1",
"kind": "Pod",
"metadata": {
"name": "glusterfs"
},
"spec": {
"containers": [
{
"name": "glusterfs",
"image": "nginx",
"volumeMounts": [
{
"mountPath": "/mnt/glusterfs",
"name": "glusterfsvol"
}
]
}
],
"volumes": [
{
"name": "glusterfsvol",
"glusterfs": {
"endpoints": "glusterfs-cluster",
"path": "gv0", #之前创建的glusterfs卷名
"readOnly": true
}
}
]
}
} #导入
kubectl apply -f glusterfs-pod.json
#查看
kubectl get pod
4、创建pv
[root@k8s-m ~]# cat glusterfs-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: gluster-dev-volume
spec:
capacity:
storage: 8Gi
accessModes:
- ReadWriteMany
glusterfs:
endpoints: "glusterfs-cluster"
path: "gv0"
readOnly: false #导入
kubectl apply -f glusterfs-pv.yaml
#查看
kubectl get pv
5、创建pvc
[root@k8s-m ~]# cat glusterfs-pvc.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: glusterfs-nginx
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 8Gi #导入
kubectl apply -f glusterfs-pvc.yaml #查看
[root@k8s-m ~]# kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
glusterfs-nginx Bound gluster-dev-volume 8Gi RWX 11m
6、创建挂载卷测试
[root@k8s-m ~]# cat nginx-deployment.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx-dm
spec:
replicas:
template:
metadata:
labels:
name: nginx
spec:
containers:
- name: nginx
image: nginx:alpine
imagePullPolicy: IfNotPresent
ports:
- containerPort:
volumeMounts:
- name: gluster-dev-volume
mountPath: "/usr/share/nginx/html"
volumes:
- name: gluster-dev-volume
persistentVolumeClaim:
claimName: glusterfs-nginx #导入
kubectl apply -f nginx-deployment.yaml
#查看
[root@k8s-m ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
glusterfs / Running 15m
nginx-dm-8df56c754-57kpp / Running 12m
nginx-dm-8df56c754-kgsbf / Running 12m #进入一个pod测试
[root@k8s-m ~]# kubectl exec -it nginx-dm-8df56c754-kgsbf -- /bin/sh
/ # ls /usr/share/nginx/html/
/ # cd /usr/share/nginx/html/
/usr/share/nginx/html # touch .txt
/usr/share/nginx/html # ls
.txt #在node节点查看/data目录
[root@node ~]# ll /data/
total
-rw-r--r-- root root Jan : .txt
k8s使用glusterfs做存储的更多相关文章
- 14-使用glusterfs做持久化存储
使用glusterfs做持久化存储 我们复用kubernetes的三台主机做glusterfs存储. 以下步骤参考自:https://www.xf80.com/2017/04/21/kubernete ...
- [转帖]14-使用glusterfs做持久化存储
14-使用glusterfs做持久化存储 https://www.cnblogs.com/guigujun/p/8366558.html 使用glusterfs做持久化存储 我们复用kubernete ...
- k8s通过ceph-csi接入存储的概要分析
kubernetes ceph-csi分析目录导航 概述 下面的分析是k8s通过ceph-csi(csi plugin)接入ceph存储(csi相关组件的分析以rbd为例进行分析),对csi系统结构. ...
- kubernetes/k8s CSI分析-容器存储接口分析
更多 k8s CSI 的分析,可以查看这篇博客kubernetes ceph-csi分析,以 ceph-csi 为例,做了详细的源码分析. 概述 kubernetes的设计初衷是支持可插拔架构,从而利 ...
- 烂泥:NFS做存储与KVM集成
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 以前有关NFS的文章,我们介绍的都是NFS的使用挂载等等.这篇文章我们介绍有关NFS作为存储使用. 既然本篇文章的主题是有关NFS的,我们还是先把NFS ...
- k8s使用Glusterfs动态生成pv
一.环境介绍 [root@k8s-m ~]# cat /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4 ...
- io型和有状态的应用不放入k8s,而是做服务映射
io型和有状态的应用不放入k8s,而是做服务映射 待办 在实际应用中,一般不会把mysql这种重IO.有状态的应用直接放入k8s中,而是使用专用的服务器来独立部署.而像web这种无状态应用依然会运行在 ...
- 4.深入k8s:容器持久化存储
从一个例子入手PV.PVC Kubernetes 项目引入了一组叫作 Persistent Volume Claim(PVC)和 Persistent Volume(PV)的 API 对象用于管理存储 ...
- [k8s]k8s配置nfs做后端存储&配置多nginx共享存储&&statefulset配置
所有节点安装nfs yum install nfs-utils rpcbind -y mkdir -p /ifs/kubernetes echo "/ifs/kubernetes 192.1 ...
随机推荐
- 【移动端】icon中ng-cordova使用
cordova介绍 Cordova提供了一组设备相关的API,通过这组API,移动应用能够以JavaScript访问原生的设备功能,如摄像头.麦克风等. Cordova支持如下7种移动操作系统:iOS ...
- IDEA+Maven+web项目
用IDEA创建一个简单的Maven web项目:https://blog.csdn.net/sinat_34596644/article/details/52891274
- <网络编程>套接字介绍
1.端口:IANA(Internet Assigned Numbers Authority)维护着一个端口号分配状况的清单. 众所周知的端口(0-1023):由IANA分配和控制,可能的话,相同的端口 ...
- JavaEE学习之JAXB
一.前言 JAXB——Java Architecture for XML Binding,是一项可以根据XML Schema产生Java类的技术.JAXB提供将XML实例文档反向生成Java对象树的方 ...
- Spark官方调优文档翻译(转载)
Spark调优 由于大部分Spark计算都是在内存中完成的,所以Spark程序的瓶颈可能由集群中任意一种资源导致,如:CPU.网络带宽.或者内存等.最常见的情况是,数据能装进内存,而瓶颈是网络带宽:当 ...
- Project Tungsten:让Spark将硬件性能压榨到极限(转载)
在之前的博文中,我们回顾和总结了2014年Spark在性能提升上所做的努力.本篇博文中,我们将为你介绍性能提升的下一阶段——Tungsten.在2014年,我们目睹了Spark缔造大规模排序的新世界纪 ...
- Git 使用vi或vim命令打开、关闭、保存文件
1 vi & vim 有两种工作模式: (1)命令模式:接受.执行 vi & vim 操作命令的模式,打开文件后的默认模式: (2)编辑模式:对打开的文件内容进行 增.删.改 操作模式 ...
- flink1.7 checkpoint源码分析
初始化state类 //org.apache.flink.streaming.runtime.tasks.StreamTask#initializeState initializeState(); p ...
- 朱晔和你聊Spring系列S1E7:简单好用的Spring Boot Actuator
阅读PDF版本 本文会来看一下Spring Boot Actuator提供给我们的监控端点Endpoint.健康检查Health和打点指标Metrics等所谓的Production-ready(生产环 ...
- 微信小程序web-view页面安卓下显示空白的解决办法!!!
web-view页面在你向地址拼接参数展示页面时,在安卓上有时会显示空白 解决方案: A: 普通不需要参数的话可以直接把地址写在src里,不要去在onLoad里获取你的全局变量后再赋值. B: 如果需 ...