kubernetes nfs-client-provisioner外部存储控制器
介绍:
nfs-client-provisione是一个专门用于NFS外部目录挂载的控制器,当多个副本创建时,他们的命名方式如下:
- pv provisioned as ${namespace}-${pvcName}-${pvName} 表示正在使用的
- pv recycled as archieved-${namespace}-${pvcName}-${pvName} POD delete操作后之前使用的PV目录名称前面会多出一个archieved-用于区分
现在测试:
1.安装NFS
NFS测试环境:腾讯云NFS文件存储(自建NFS也可以)
首先登陆腾讯云平台打开文件存储服务,新建一个服务,注意地址选择何K8S同一网络环境
这里我的NFS服务端地址是192.168.100.74~至此NFS已经创建完成
2.部署nfs-client-provisioner
下面用到的测试文件均是从官方文档种获取的
地址:https://github.com/kubernetes-incubator/external-storage/tree/master/nfs-client
我的K8S版本是1.10
kubectl create -f deployment.yaml
这里只需要修改你的NFS地址即可 /ifs/kubernetes 是你远程端NFS需要创建的目录记得提前创建,否则会报错创建PVC的时候会提示你让你手动创建目录
kind: Deployment
apiVersion: extensions/v1beta1
metadata:
name: nfs-client-provisioner
.....
image: registry.cn-hangzhou.aliyuncs.com/lisong/nfs-client-provisioner:latest #地址默认是谷歌的,如果你没有翻墙请改成这个
.....
kubectl create -f class.yaml
##千万注意上面第一个操作不要使用deployment去执行~否则你会发现POD无法创建
上面2部执行完成之后我们需要作RBAC认证,文件也在官方文档种有,目录是deploy/auth
kubectl create -f serviceaccount.yaml
kubectl create -f clusterrole.yaml
kubectl create -f clusterrolebinding.yaml
上述操作做完之后测试是否能够正常挂载
kubectl create -f test-clai.yaml # 声明,指定使用哪一个外部控制器以及对控制器资源的请求容量
kubectl create -f test-pod.yaml #创建测试POD
kind: Pod
apiVersion: v1
metadata:
name: test-pod
spec:
containers:
- name: test-pod
image: busybox:1.24 #官方的busybox地址是谷歌的,如果你没有翻墙请改成这个
command:
- "/bin/sh"
args:
- "-c"
- "touch /mnt/SUCCESS && exit 0 || exit 1"
volumeMounts:
- name: nfs-pvc
mountPath: "/mnt"
restartPolicy: "Never"
volumes:
- name: nfs-pvc
persistentVolumeClaim:
claimName: test-claim
查看PO
现在我们请查看我们的NFS服务~因为NFS是使用的腾讯云的,所以我们找个地方挂载我们的根目录/
mount -t nfs -o vers=4 192.168.100.74:/ /testnfs/
~请记住
/testnfs/就是你的NFS根目录,不要搞混了~在POD上创建的挂在目录都是NFS上面的目录
完成,目录已创建~看一下是否创建了文件
文件也创建成功
NFS挂在还有2种方式
第一种:
第二种:
第二种和我提到的外部控制器原理是一样的~只是第一个PV将不需要由我们请创建和维护了~
具体就是 创建PV 包含了NFS的IP地址,NFS版本,模式,指定PV的大小 #NFS目录需要提前创建好,否则在创建PVC时候等提示,等待VLOUME创建,需要管理员请创建这个目录~
在然后就一样了,创建StorageClass,创建PVC,
如何使用:
跟test-pod.yaml使用方法一样。
kubernetes nfs-client-provisioner外部存储控制器的更多相关文章
- Rancher 2:添加 NFS client provisioner 动态提供 Kubernetes 后端存储卷
一.前提说明 1.说明: NFS client provisioner 利用 NFS Server 给 Kubernetes 作为持久存储的后端,并且动态提供PV. 默认 rancher 2 的存储类 ...
- kubernetes/k8s CSI分析-容器存储接口分析
更多 k8s CSI 的分析,可以查看这篇博客kubernetes ceph-csi分析,以 ceph-csi 为例,做了详细的源码分析. 概述 kubernetes的设计初衷是支持可插拔架构,从而利 ...
- Longhorn,Kubernetes 云原生分布式块存储
Longhorn 是用于 Kubernetes 的轻量级.可靠且功能强大的分布式块存储系统. Longhorn 使用容器(containers)和微服务(microservices)实现分布式块存储. ...
- s3c2440存储控制器和地址以及启动的理解
转自:http://blog.sina.com.cn/s/blog_5ddb672b0100fkcf.html 1.首先应该先了解Flash ROM的种类 NOR FLASH地址线和数据线分开,来了地 ...
- JZ2440开发笔记(6)——存储控制器
存储控制器与CPU及其它外设的关系 我们看到cpu上集成了一个存储管理器,外围的存储设备都接在这个存储管理器上.cpu负责发出命令,其它的一切工作都交给了存储管理器.那么存储管理器是如何来管理这些外设 ...
- Kubernetes的三种外部访问方式:NodePort、LoadBalancer和Ingress(转发)
原文 http://cloud.51cto.com/art/201804/570386.htm Kubernetes的三种外部访问方式:NodePort.LoadBalancer和Ingress 最近 ...
- u-boot移植(七)---代码修改---存储控制器
一.CPU访问芯片的条件 CPU通过访问存储控制器,来读取外部设备的数据. CPU想访问一个芯片,需要如下条件(配置信息): 地址线 数据线:8位/16位/32位数据宽度 时钟/频率 其他芯片相关的特 ...
- JZ2440 裸机驱动 第6章 存储控制器
本章目标: 了解S3C2410/S3C2440地址空间的布局 掌握如何通过总线形式访问扩展的外设,比如内存.NOR Flash.网卡等 ························ ...
- 存储控制器和SDRAM 实验
S3C2440 存储控制器(memory controller)提供了訪问外部设备所需的信号,这是一种通过总线形式来訪问扩展的外设. S3C2440 的存储器控制器有下面的特性: 支持小字节序.大字 ...
随机推荐
- C语言函数指针 和 OC-Block
C语言函数指针 和 OC-Block 一. C语言函数指针 关于函数指针的知识详细可参考:http://www.cnblogs.com/mjios/archive/2013/03/19/2967037 ...
- Linux命令总结(转)
1.ls [选项] [目录名 | 列出相关目录下的所有目录和文件 -a 列出包括.a开头的隐藏文件的所有文件 -A 通-a,但不列出"."和".." -l 列出 ...
- 【Dubbo源码阅读系列】之远程服务调用(上)
今天打算来讲一讲 Dubbo 服务远程调用.笔者在开始看 Dubbo 远程服务相关源码的时候,看的有点迷糊.后来慢慢明白 Dubbo 远程服务的调用的本质就是动态代理模式的一种实现.本地消费者无须知道 ...
- java核心技术-多线程之引导概念
前两篇文章分别讲了,Java线程相关基础概念以及线程的内存模型,本节作为后续章节的引导,个人认为对于学习后面的只是还是比较重要.好了,既然说了多线程,那么首先要弄清以下几个问题: 1. 什么是多线程? ...
- python 基础 切片 迭代 列表生成式
对list 进行切片 如列表 L = ['Adam', 'Lisa', 'Bart', 'Paul'] L[0:3] ['Adam', 'Lisa', 'Bart'] L[0:3]表示,从索引0开始取 ...
- ABAP术语-V1 Module
V1 Module 原文;http://www.cnblogs.com/qiangsheng/archive/2008/03/21/1115707.html Function module creat ...
- 记一次MacBook Pro无法连接wifi网络修复
解决方案: https://blog.csdn.net/kimbing/article/details/79321001 真的哭了 原因是插入了我的USB3.0拓展坞影响了wifi信号 不知道原理是啥 ...
- 修复支付宝后台报错session IP change to many
在项目的web.xml 中添加: <init-param> <param-name>sessionStatEnable</param-name> <param ...
- 一个数据仓库时代开始--Hive
一.什么是 Apache Hive? Apache Hive 是一个基于 Hadoop Haused 构建的开源数据仓库系统,我们使用它来查询和分析存储在 Hadoop 文件中的大型数据集.此外,通过 ...
- oracle相关操作,存储、临时表空间、用户操作、启动过程
表空间:此空间是用来进行数据存储的(表.function.存储过程等),所以是实际物理存储区域.临时表空间:主要用途是在数据库进行排序运算[如创建索引.order by及group by.distin ...