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 ...
随机推荐
- P2068 统计和(树状数组模板)
这是一道树状数组题 #include<iostream> using namespace std; ; int tree[maxn], n, m; char h; int x, y; vo ...
- RabbitMQ的六种工作模式
一.基于erlang语言: 是一种支持高并发的语言 RabbitMQ的六种工作模式: 1.1 simple简单模式 消息产生着§将消息放入队列 消息的消费者(consumer) 监听(while) 消 ...
- JDK动态代理(2)--------反射Method的作用
Person类做例子 package com.spring.aop.proxy; public class Preson { Preson() { System.out.println("t ...
- Python脱产8期 Day12 2019/4/26
一 函数默认值的细节 1.如果函数的默认参数的默认值为变量,在所属函数定义阶段一执行就被确定为当时变量存放的值 例: a = 100def fn(num=a): print(num) # 100a = ...
- linux内存源码分析 - 内存回收(整体流程)
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 概述 当linux系统内存压力就大时,就会对系统的每个压力大的zone进程内存回收,内存回收主要是针对匿名页和文 ...
- face detection[PyramidBox]
本文来自<PyramidBox: A Context-assisted Single Shot Face Detector>,是来自百度的作品,时间线为2018年8月. 0 引言 最近基于 ...
- nova系列二:kvm介绍
一 什么是kvm KVM 全称 Kernel-Based Virtual Machine.也就是说 KVM 是基于 Linux 内核实现的,这就使得linux内核本身就相当于一个Hypervisor. ...
- vue 中给组建绑定原生事件@click.native=""
<template> <div class="div"> //组建使用 <v-header @click.native=& ...
- java redis 分页查询数据
package com.liying.tiger.test; import java.util.List; import org.springframework.context.Application ...
- 开源工具 DotnetRSA 快速生成和转换RSA秘钥
一.简介 DotnetRSA 是一个利用 .NET Core 2.1 开发的 .NET Global Tool,是可以想npm全局安装一样,安装在你的系统中,只需敲一行命令便可以快速生成RSA加密算法 ...