kubernetes 数据持久化之Glusterfs
1、GlusterFS 部署过程请参考上篇文章
2、配置endpoints
[root@manager ~]# cat glusterfs-endpoints.json
{
"kind": "Endpoints",
"apiVersion": "v1",
"metadata": {
"name": "glusterfs-cluster"
},
"subsets": [
{
"addresses": [
{
"ip": "192.168.10.223"
}
],
"ports": [
{
"port":
}
]
},
{
"addresses": [
{
"ip": "192.168.10.224"
}
],
"ports": [
{
"port":
}
]
},
{
"addresses": [
{
"ip": "192.168.10.225"
}
],
"ports": [
{
"port":
}
]
}
]
}
[root@manager ~]# kubectl create -f glusterfs-endpoints.json
endpoints "glusterfs-cluster" created
[root@manager ~]#
[root@manager ~]# kubectl get ep
NAME ENDPOINTS AGE
glusterfs-cluster 192.168.10.223:1,192.168.10.224:1,192.168.10.225:1 6s
kubernetes 192.168.10.220:6443 5d

3、创建service
[root@manager ~]# cat glusterfs-service.yaml
{
"kind": "Service",
"apiVersion": "v1",
"metadata": {
"name": "glusterfs-cluster"
},
"spec": {
"ports": [
{"port": }
]
}
}
[root@manager ~]#
[root@manager ~]#
[root@manager ~]# kubectl create -f glusterfs-service.yaml
service "glusterfs-cluster" created
[root@manager ~]#
[root@manager ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
glusterfs-cluster ClusterIP 10.10.10.194 <none> /TCP 7s
kubernetes ClusterIP 10.10.10.1 <none> /TCP 5d

4、创建测试pod
[root@manager ~]# cat glusterfs-pod.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas:
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
volumeMounts:
- name: glusterfsvol
mountPath: /usr/share/nginx/html
ports:
- containerPort:
volumes:
- name: glusterfsvol
glusterfs:
endpoints: glusterfs-cluster
path: gv0
readOnly: false --- apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- name: http
port:
protocol: TCP
targetPort:
type: NodePort
[root@manager ~]# kubectl create -f glusterfs-pod.yaml
deployment "nginx-deployment" created
service "nginx-service" created
[root@manager ~]# kubectl describe pod nginx-deployment-6f6f9646c4-84bbr
Name: nginx-deployment-6f6f9646c4-84bbr
Namespace: default
Node: 192.168.10.221/192.168.10.221
Start Time: Mon, 05 Feb 2018 14:31:54 +0800
Labels: app=nginx
pod-template-hash=2929520270
Annotations: kubernetes.io/created-by={"kind":"SerializedReference","apiVersion":"v1","reference":{"kind":"ReplicaSet","namespace":"default","name":"nginx-deployment-6f6f9646c4","uid":"41758808-0a3e-11e8-af8c-5254...
Status: Running
IP: 10.0.91.5
Created By: ReplicaSet/nginx-deployment-6f6f9646c4
Controlled By: ReplicaSet/nginx-deployment-6f6f9646c4
Containers:
nginx:
Container ID: docker://d7714c067d2c1ac115336715eb66235ee9153632eab2019c174b0384c0b04e8f
Image: nginx
Image ID: docker-pullable://nginx@sha256:285b49d42c703fdf257d1e2422765c4ba9d3e37768d6ea83d7fe2043dad6e63d
Port: 80/TCP
State: Running
Started: Mon, 05 Feb 2018 14:32:34 +0800
Ready: True
Restart Count: 0
Environment: <none>
Mounts:
/usr/share/nginx/html from glusterfsvol (rw)
Conditions:
Type Status
Initialized True
Ready True
PodScheduled True
Volumes:
glusterfsvol:
Type: Glusterfs (a Glusterfs mount on the host that shares a pod's lifetime)
EndpointsName: glusterfs-cluster
Path: gv0
ReadOnly: false
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: <none>
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 42s default-scheduler Successfully assigned nginx-deployment-6f6f9646c4-84bbr to 192.168.10.221
Normal SuccessfulMountVolume 41s kubelet, 192.168.10.221 MountVolume.SetUp succeeded for volume "glusterfsvol"
Normal Pulling 40s kubelet, 192.168.10.221 pulling image "nginx"
Normal Pulled 2s kubelet, 192.168.10.221 Successfully pulled image "nginx"
Normal Created 2s kubelet, 192.168.10.221 Created container
Normal Started 2s kubelet, 192.168.10.221 Started container
[root@manager ~]# kubectl exec nginx-deployment-6f6f9646c4-84bbr mount|grep gluster
192.168.10.223:gv0 on /usr/share/nginx/html type fuse.glusterfs (rw,relatime,user_id=0,group_id=0,default_permissions,allow_other,max_read=131072)



root@nginx-deployment-6f6f9646c4-84bbr:/usr/share/nginx/html# echo abc > 2.txt
[root@glusterfs1 brick1]# cat 2.txt
abc
[root@glusterfs1 brick1]# echo 33333 > 3.txt

5、注意事项:
5.1、k8s集群配置glusterfs集群主机名接卸

5.2、k8s集群配置glusterfs 客户端挂载工具
[root@node1 ~]# yum install centos-release-gluster -y
[root@node1 ~]# yum install glusterfs-fuse -y
kubernetes 数据持久化之Glusterfs的更多相关文章
- K8S学习笔记之Kubernetes数据持久化方案
在开始介绍k8s持久化存储前,我们有必要了解一下k8s的emptydir和hostpath.configmap以及secret的机制和用途. 0x00 Emptydir EmptyDir是一个空目录, ...
- kubernetes 数据持久化
pod本身是无状态,所以很多有状态的应用,就需要将数据进行持久化. 1:将数据挂在到宿主机.但是pod重启之后有可能到另外一个节点,这样数据虽然不会丢但是还是有可能会找不到 apiVersion: v ...
- kubernetes的应用数据持久化
1.无状态应用与有状态应用 应用的有状态和无状态是根据应用是否有持久化保存数据的需求而言的,即持久化保存数据的应用为有状态的应用,反之则为无状态的应用.常见的系统往往是有状态的应用,比如对于微博和微信 ...
- openshift 容器云从入门到崩溃之七《数据持久化》
数据持久化常用的有两种: hostPath 挂载容器宿主机的本地文件夹,直接修改pod的配置 volumes: - hostPath: path: /data/logging-es type: '' ...
- Kubernetes 学习(十)Kubernetes 容器持久化存储
0. 前言 最近在学习张磊老师的 深入剖析Kubernetes 系列课程,最近学到了 Kubernetes 容器持久化存储部分 现对这一部分的相关学习和体会做一下整理,内容参考 深入剖析Kuberne ...
- k8s集群,使用pvc方式实现数据持久化存储
环境: 系统 华为openEulerOS(CentOS7) k8s版本 1.17.3 master 192.168.1.244 node1 192.168.1.245 介绍: 在Kubernetes中 ...
- k8s部署mysql数据持久化
在这里我部署mysql的目的是为了后面将上一篇博客docker打包的el-admin镜像部署到k8s上,所以本文主要是部署mysql并实现持久化. 1.将我们的应用都部署到 el-admin 这个命名 ...
- Redis学习总结(1)——数据持久化
以前研究Redis的时候,很多东西都不太明白,理解得也不太深,现在有时间重新拾起来看看,将一些心得记录下来,希望和大家一起探讨. 一.简介 Redis是一个单线程高可用的Key-Value存储系统,和 ...
- iOS之数据持久化方案
概论 所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据.在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方案: plist文件(属性列表) ...
随机推荐
- nginx入门学习步骤(linux)
一.nginx下载(nginx-1.9.9) http://nginx.org/download/ 二.解压到指定文件夹 tar -zxvf 解压缩文件 三.设置配置信息 在nignx解压文件夹内执行 ...
- iOS 闭包传值 和 代理传值
let vc = ViewController() let navc = UINavigationController(rootViewController: vc) window = UIWindo ...
- 螺旋矩阵,两步进阶,从暴力到o(1)
题目描述 一个 n 行 n 列的螺旋矩阵可由如下方法生成: 从矩阵的左上角(第 1 行第 1 列)出发,初始时向右移动:如果前方是未曾经过的格子,则继续前进,否则右转:重复上述操作直至经过矩阵中所有格 ...
- Vue入门之v-if的使用
在vue中一些常用的指令都是v-这样的,v-if是vue的一个内部指令,常用于html中 代码 <!DOCTYPE html> html lang="en"> & ...
- EasyUI取消树节点选中
$('#organTree').find('.tree-node-selected').removeClass('tree-node-selected'); 取消树的节点选中
- vs对某些网络错误的拦截
在编写代码的过程中发现如果在写好网页中的文本框内写入js代码(以<script>1</script>输入为例) vs会自动拦截并报错,如图(密码中我也输入了<script ...
- SQL Server字符串聚合拼接办法
数据范例如下: 要得到的结果目标,获取type相同的所有names拼接在一起的字符串: SqlServer并没有一个直接拼接字符串的函数,下面所提到的方法,只是日常的开发中自己个人用到的一些思路,仅供 ...
- oop 单例模式
- spark入门: wordcount-java
wordcount-java: pom.xml文件如下: <dependencies> <dependency> <groupId>junit</groupI ...
- Python知识点进阶——细节问题
int()强制转换浮点数 在int()的强制转换浮点数时候,不管是正数还是负数,只取整数部分. 注意:这里不是向上或者向下取整,也不是四舍五入. 无限递归 递归是为了将问题简化为更小规模的同类型问题, ...