K8S 使用NFS 创建PV和PVC的例子 学习From https://blog.csdn.net/xts_huangxin/article/details/51494472
1. 获取资料 网址: https://blog.csdn.net/xts_huangxin/article/details/51494472 感谢原作者 这里面 按照自己的机器情况进行了学习模仿 并且mark一下.
2. 下载yaml 文件:
https://github.com/FlyingShit-XinHuang/my-doc/blob/master/k8s/pv%26pvc/nfs.zip
3. 解压缩文件,然后根据实际情况进行修改.
4. 创建NFS
mkdir -p /nfs/k8s
创建目录
chmod -R /nfs
修改权限
vim /etc/exports
增加内容
/nfs/k8s *(rw,insecure,sync,no_subtree_check,no_root_squash)
保存.
exportfs -r
让文件生效
systemctl enable nfs
systemctl enable rpcbind
systemctl restart nfs
systemctl restart rpcbind
启动服务
5. 创建PV 用到的yaml文件进行修改后的为:
spec 里面定义相关的内容. nfs 里面对应的 server 制定 以及 path 下面 写好了nfs的目录
创建语句为
kubectl create -f nfs-pv.yaml
yaml文件为
apiVersion: v1
kind: PersistentVolume
metadata:
name: nfs
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteMany
nfs:
server: 10.24.103.1
path: "/nfs/k8s"
6. 创建PVC
据说 capacity 里面的存储大小应该保持一致 ,避免出现问题
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: nfs
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
7. 进行测试验证, github 里面是定义了 一个 busybox 来写入 文件 nginx 来读取 当前目录的index.html的值
首先 busybox 相关的内容为
apiVersion: v1
kind: ReplicationController
metadata:
name: nfs-busybox
spec:
replicas:
selector:
name: nfs-busybox
template:
metadata:
labels:
name: nfs-busybox
spec:
containers:
- image:busybox
command:
- sh
- -c
- 'while true; do date > /mnt/index.html; hostname >> /mnt/index.html; sleep $(($RANDOM % 5 + 5)); done'
imagePullPolicy: IfNotPresent
name: busybox
volumeMounts:
# name must match the volume name below
- name: nfs
mountPath: "/mnt"
volumes:
- name: nfs
persistentVolumeClaim:
claimName: nfs
创建 nginx 前段网页
apiVersion: v1
kind: ReplicationController
metadata:
name: nfs-web
spec:
replicas:
selector:
role: web-frontend
template:
metadata:
labels:
role: web-frontend
spec:
containers:
- name: web
image: nginx
ports:
- name: web
containerPort:
volumeMounts:
# name must match the volume name below
- name: nfs
mountPath: "/usr/share/nginx/html"
volumes:
- name: nfs
persistentVolumeClaim:
claimName: nfs
创建services
kind: Service
apiVersion: v1
metadata:
name: nfs-web
spec:
ports:
- port:
selector:
role: web-frontend
然后
kubectl get service
获取信息 [root@k8smaster01 ~]# kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
frontend NodePort 10.100.8.215 <none> :/TCP 35d
kubernetes ClusterIP 10.96.0.1 <none> /TCP 37d
nfs-web ClusterIP 10.103.125.236 <none> /TCP 1h
redis-master ClusterIP 10.111.216.233 <none> /TCP 35d
redis-slave ClusterIP 10.107.12.137 <none> /TCP 35d
然后测试验证
命令 :curl 10.103.125.236
显示结果:
[root@k8smaster01 ~]# curl 10.103.125.236
Mon Jun :: UTC
nfs-busybox-l596c
[root@k8smaster01 ~]#
7. 学习用到的其他命令
kubectl create -f *.yaml
创建资源
kubectl delete pv pvname
kubectl delete pvc pvcname
删除pv和pvc 但是如果 有 pod 在引用他们的话无法删除需要删除rc 才可以
kubectl delete pod podname
删除pod k8s 会瞬间再启动一个起来. 如果没有images 重新pull一下 用这种方式很快就能从containercreating 变成 running状态. kubectl delete rc rcname
能够删除rc定义 保证pv也被完整性的删除 kubectl get service
kubectl get pod
kubectl get nodes
kubectl get rc
kubectl get rc -n kube-system (选择显示namespace)
K8S 使用NFS 创建PV和PVC的例子 学习From https://blog.csdn.net/xts_huangxin/article/details/51494472的更多相关文章
- git创建使用1https://blog.csdn.net/Hanani_Jia/article/details/77950594
这篇文章是我自己写的关于GitHub的内容,从我刚听到这个直到设置成功每一步都有详细的步骤来解释,其中有一些截图或者代码来自于网上. 首先,我先对GitHub来一个简单的介绍,GitHub有一个很强大 ...
- 怎样创建.NET Web Service http://blog.csdn.net/xiaoxiaohai123/article/details/1546941
为什么需要Web Service 在通过internet网购买商品后,你可能对配送方式感到迷惑不解.经常的情况是因配送问题找配送公司而消耗你的大量时间,对于配送公司而言这也不是一项增值服务. 为了解决 ...
- linux进程监控和简单的重启&服务的创建 参考自http://blog.csdn.net/lockheed_hong/article/details/73549837
脚本文件 该脚本实现了一个检测进程是否存在,不存在的情况下重启进程并且记录日志. #! /bin/sh proc_name="console/queue/gift.php" # 进 ...
- k8s数据持久化,pv和pvc
k8s中为什么使用存储: k8s中的副本控制器保证了pod的始终存储,却保证不了pod中的数据.只有启动一个新pod的,之前pod中的数据会随着容器的删掉而丢失! pv和pvc的概念: Persist ...
- K8s存储卷、pv和pvc的使用
emptyDIR 临时目录 hostPath :使用主机的路径 网络存储: 传统的设备存储:NAS,SAN 分布式存储:glusterfs,rbd,cephfs 云存储:EBS,Azure,阿里云的 ...
- kubernetes存储类与PV与PVC关系及实践
StorageClass & PV & PVC关系图 Volumes是最基础的存储抽象,其支持多种类型,包括本地存储.NFS.FC以及众多的云存储,我们也可以编写自己的存储插件来支持特 ...
- pv绑定pvc
创建pvapiVersion: v1kind: PersistentVolumemetadata: name: pv003 labels: app: vnc003 namespace: vnc-spa ...
- [k8s]k8s配置nfs做后端存储&配置多nginx共享存储&&statefulset配置
所有节点安装nfs yum install nfs-utils rpcbind -y mkdir -p /ifs/kubernetes echo "/ifs/kubernetes 192.1 ...
- kubernetes创建资源对象yaml文件例子--pod详解
apiVersion: v1 #指定api版本,此值必须在kubectl apiversion中 kind: Pod #指定创建资源的角色/类型 metadata: #资源的元数据/属性 name: ...
随机推荐
- 写出js内存泄漏的问题?
回答一: (1)IE7/8 DOM对象或者Active对象循环引用导致内存泄漏 a.多个对象循环引用 b.循环的DOM泄漏 (2)基础的DOM泄漏 当原有的DOM被移除时,子节点引用没有被移除则无法回 ...
- webservice 客户端调用
/** * 通过webserevice下发工单 * @param url * @param method * @param requestMap * @return * @throws Service ...
- Arthas开源项目
本文主要围绕着Arthas是什么.能做什么.安装和使用等三个方面内容来讲解,希望对初学者和对此有兴趣的朋友有帮助. 一. Arthas是什么 文档地址: https://alibaba.github. ...
- input全选与单选(把相应的value放入隐藏域去)
框架是Jquery 需求是: 页面上有很多复选框,1.当我选择一项复选框时候 把对应的值放入到隐藏域去 2.当我反选的时候 把隐藏域对应的值删掉.3.当我全选的时候 页面上所有的选择框的值一起放到隐藏 ...
- JAVA框架 Spring 依赖注入
一:介绍 情景:我们在给程序分层的时候:web层.业务层.持久层,各个层之间会有依赖.比如说:业务层和持久层,业务层的代码在调用持久层的时候,传统方式:new 持久层类. 进而进行调用,这种方式会导致 ...
- 多模匹配算法之Aho-Corasick
除剔除那些含有敏感词的文本,由于有大量的敏感词,所以通过简单的正则表达式和字符串查找的方式效率太低,每次都有遍历一次字符串.而AC算法的核心思想就是避免不必要的回溯使搜索一直沿着向前的方向,最大可能的 ...
- Linux中的do{...} while(0)
摘抄自: <<Linux设备驱动开发详解(第二版)>> 在 Linux 内核中,经常会看到do{} while(0)这样的语句,许多人开始都会疑惑,认为do{} while(0 ...
- AbelSu区块链应用场景收集
1.基于智能合约的众筹 众筹项目的资金通常由一个中心化不可变更且开放的数据库来控制,这个数据库可以追踪所有出资人. 虽然如此,我们可以用一种去中心化的方式来实现,而且只要创建一个代币就可以追踪资金.一 ...
- 降阶法计算行列式方法有个地方有Bug(原文也已更正,此为更正后部分)
今天用此函数做方程求解时发现有误,特此更正: /// <summary> /// 降阶法计算行列式 /// </summary> /// <param name=&quo ...
- Feeling_2018_5_22
“我打你,你会走吗?” “不会!!” “我骂你,你会走吗?” “不会!!” “那我不爱你了,你会走吗?” “会.”