k8s-16-k8s基础存储
1.emptyDir
pod删除的时候,volume也就不存在了,生命周期和pod同样
apiVersion: v1 kind: Pod metadata:name: redis-pod spec:containers:- image: redisname: redisvolumeMounts:- mountPath: /cachename: cache-volumevolumes:- name: cache-volumeemptyDir: {}
2.hostpath
宿主机上面的目录,一旦宿主机宕机文件就不存在,不是分布式的
apiVersion: v1 kind: Pod metadata:name: test-host-pd spec:containers:- image: nginxname: test-containervolumeMounts:- mountPath: /tmp-testname: test-volumevolumes:- name: test-volumehostPath:path: /opt/data/type: Directory
3.nfs分布式的但是 nfs本身为单电
192.168.56.12 部署了nfsserver端 所有node节点需要安装 nfs-utils [root@k8s-node2 nginx]# cat /etc/exports /opt/nginx 192.168.56.0/24(rw,no_root_squash) [root@k8s-node2 nginx]# [root@k8s-node2 nginx]# cat /opt/nginx/index.html nginx-index
apiVersion: extensions/v1beta1 kind: Deployment metadata:name: nginx-deployment spec:replicas: 2template:metadata:labels:app: nginx-nfsspec:containers:- name: nginx-nfsimage: nginxvolumeMounts:- name: nginxdatamountPath: /usr/share/nginx/htmlports:- containerPort: 80volumes:- name: nginxdatanfs:server: 192.168.56.12path: /opt/nginx
kubectl create -f nginx.yaml kubectl expose deployment nginx-deployment --port=90 --type=NodePort --target-port=80 --name=nginx-service-nfs kubectl get svc
4.glusterfs
192.168.56.11 192.168.56.12安装glusterfs制作复制卷yum install centos-release-gluster -yyum install glusterfs-server -ysystemctl start glusterfsdsystemctl start glusterd.servicesystemctl enable glusterfsd.servicesystemctl enable glusterd.servicegluster peer probe 192.168.56.12 #在192.168.56.11上面 gluster volume create nginx-volume replica 2 192.168.56.11:/opt/data 192.168.56.12:/opt/data forceglusterfs volume start nginx-volume gluster volume info nginx-volume
[root@k8s-node2 data]# cat /opt/data/index.html glusterfs-nginx-index [root@k8s-node2 data]# 客户端安装192.168.56.10:yum install glusterfs-client -y mount -t glusterfs 192.168.56.12:/nginx-volume /mnt/glusterfs/ ##注意挂载写复制卷 Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 39G 3.4G 35G 9% / devtmpfs 478M 0 478M 0% /dev tmpfs 489M 0 489M 0% /dev/shm tmpfs 489M 50M 439M 11% /run tmpfs 489M 0 489M 0% /sys/fs/cgroup /dev/sda1 1014M 143M 872M 15% /boot /dev/mapper/centos-home 19G 33M 19G 1% /home tmpfs 98M 0 98M 0% /run/user/0 192.168.56.12:/nginx-volume 39G 3.9G 35G 11% /mnt/glusterfs [root@k8s-master glusterfs]#
创建endpoint kubectl create -f ed.yaml
{"kind": "Endpoints","apiVersion": "v1","metadata": {"name": "glusterfs-cluster"},"subsets": [{"addresses": [{"ip": "192.168.56.11"}],"ports": [{"port": 1}]},{"addresses": [{"ip": "192.168.56.12"}],"ports": [{"port": 1}]}] }
kubectl create -f service.yaml{"kind": "Service","apiVersion": "v1","metadata": {"name": "glusterfs-cluster"},"spec": {"ports": [{"port": 1}]} }
apiVersion: extensions/v1beta1 kind: Deployment metadata:name: nginx-deployment-glusterfs spec:replicas: 3template:metadata:labels:app: nginx-gfspec:containers:- name: nginx-gfimage: nginxvolumeMounts:- name: glusterfsvolmountPath: /usr/share/nginx/htmlports:- containerPort: 80volumes:- name: glusterfsvolglusterfs:endpoints: glusterfs-clusterpath: nginx-volumereadOnly: false---apiVersion: v1 kind: Service metadata:name: nginx-service-gf spec:selector:app: nginx-gfports:- name: httpport: 80protocol: TCPtargetPort: 80type: NodePort
[root@k8s-master volume]# kubectl get svc -o wide NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR glusterfs-cluster ClusterIP 10.10.10.42 <none> 1/TCP 16m <none> httpd ClusterIP 10.10.10.113 <none> 80/TCP 6d run=httpd kubernetes ClusterIP 10.10.10.1 <none> 443/TCP 14d <none> my-service ClusterIP 10.10.10.120 <none> 80/TCP,443/TCP 7d app=nginx nginx ClusterIP 10.10.10.164 <none> 80/TCP 6d run=nginx nginx-service NodePort 10.10.10.84 <none> 88:36741/TCP 14d run=nginx nginx-service-gf NodePort 10.10.10.23 <none> 80:34973/TCP 13m app=nginx-gf
https://github.com/kubernetes/kubernetes/tree/8fd414537b5143ab039cb910590237cabf4af783/examples/volumes/glusterfs
6.ceph
转载于:https://blog.51cto.com/wsxxsl/2306762
k8s-16-k8s基础存储相关推荐
- 【云原生之k8s】k8s基础详解
[云原生之k8s]k8s基础详解 前言 一.kubernetes介绍 (1)kubernetes简介 (2)应用部署方式的演变 二.kubernetes组件 (1)kubernetes架构 (2)ma ...
- K8S使用ceph-csi持久化存储之cephfs部署验证快照
一.集群和组件版本 K8S集群:1.19.4 Ceph集群:ceph version 15.2.13 (c44bc49e7a57a87d84dfff2a077a2058aa2172e2) octopu ...
- K8S使用NFS动态存储(csi-nfs-driver)
K8S使用NFS动态存储(csi-nfs-driver) 配置nfs服务器 k8s-master部署csi-nfs-driver插件 测试创建pod,使用local-storage动态创建pvc nf ...
- Kubernetes(K8s)基本概念:Volume(存储卷)、Persistent Volume
Kubernetes(K8s)基本概念:Volume(存储卷) 一.Volume(存储卷) Volume是Pod中能够被多个容器访问的共享目录. K8s中的Volume定义在Pod上,然后被一个Pod ...
- k8s(一):基础核心概念
文章目录 1. k8s概述 2. k8s特性 3. k8s集群架构组件 3.1 Master Node 3.2 Worker Node 4. k8s核心概念 5. k8s集群搭建方式 5.1 kube ...
- k8s部署-45-k8s共享存储(上)
什么最重要了,当然是存储了,不管你存储的是文件还是数据,图片还是音频,都是非常重要的,那么我们通过什么方式来避免数据的单点故障呢?如何保证存储的可靠性呢?下面我们来看看. PS:本篇为理论,下一篇为实 ...
- K8S部署分布式文件存储minio两种部署方式
一. 分布式文件存储系统有很多,比如hadoop的HDFS和FastDFS.今天部署minio文件系统. 二. 分布式文件存储minio GitHub官网和minio官网都有详细的文档 MinIO下载 ...
- 灵活、高效的云原生集群管理经验:用 K8s 管理 K8s
作者 | 淮右.临石 **导读:**单 K8s 集群为用户提供了 Namespace 级别的隔离能力,理论上支持不超过 5K Node.15W Pod.多 K8s 集群则解决了单集群的资源隔离.故障隔 ...
- Java黑皮书课后题第5章:*5.44(计算机体系结构:比特级的操作)一个short型值用16位比特存储。编写程序,提示用户输入一个short型的整数,然后显示这个整数的16比特形式,下面是运行示例
5.44(计算机体系结构:比特级的操作)一个short型值用16位比特存储.编写程序,提示用户输入一个short型的整数,然后显示这个整数的16比特形式 题目 题目概述 运行示例 资料与破题 原码反码 ...
- K8S——关于K8S控制台的yaml文件编写(基于上一章多节点K8S部署)
K8S--关于K8S控制台的yaml文件编写(基于上一章多节点K8S部署) 一.yaml文件编写流程 二.证书自签 一.yaml文件编写流程 rbac.yaml---->secret.yaml- ...
最新文章
- OpenCV(十六)边缘检测2 -- Laplace(拉普拉斯)二阶微分算子
- LeetCode - Longest Common Prefix
- 数据中心液冷技术发展分析
- 【模糊数学】编程实现文献“研究生招生中的模糊聚类分析方法”
- CSS3 Perspective
- 查看宝塔面板账号密码命令_宝塔面板升级到最新版图文教程
- 一篇文章搞懂数据仓库:常用ETL工具、方法
- 原生html冻结表头,CSS如何实现表头冻结效果
- layui根据name获取对象_python面向对象——学校学生教职工管理系统类的实例
- 620. 有趣的电影
- python中文版加密解密_python - 入门-对中英文加密解密
- mysql nlssort函数_Oracle中 nls_sort 和 nlssort 排序功能
- 笔试题目——研发工程师笔试题
- java2的n次方表达式,某个数是2的N次方
- 把 Win 8.1 升级成 Windows 2012 R2 (再续)
- 我把跨境电商当副业 ,一周赚了7000块:想给有梦想的人提个醒 !
- 响铃:互金信贷的明天,或是一场一站式金融服务的盛宴
- tomcat启动许多gc_tomcat gc问题总结
- 重庆各大学计算机专业的录取分数线,重庆各高校历年录取分数线+王牌专业汇总!填报志愿必看!...
- 西安知名IT互联网公司—为自己回西安做铺垫