安装
#所有机器安装yum install -y nfs-utils
ren
#nfs主节点echo "/nfs/data/ *(insecure,rw,sync,no_root_squash)" > /etc/exportsmkdir -p /nfs/datasystemctl enable rpcbind --nowsystemctl enable nfs-server --now#配置生效exportfs -r#查询exportfs
yan/bai
检查挂载点
showmount -e 1.15.230.38
创建对应目录
mkdir -p /nfs/data
挂载
mount -t nfs 1.15.230.38:/nfs/data /nfs/data
验证
echo "hello nfs server" > /nfs/data/test.txt
nginx挂载
ren
创建对应目录(否则会报错)
mkdir -p /nfs/data/nginx-pv
apiVersion: apps/v1kind: Deploymentmetadata:labels:app: nginx-pv-demoname: nginx-pv-demospec:replicas: 2selector:matchLabels:app: nginx-pv-demotemplate:metadata:labels:app: nginx-pv-demospec:containers:- image: nginxname: nginxvolumeMounts:- name: htmlmountPath: /usr/share/nginx/htmlvolumes:- name: htmlnfs:server: 1.15.230.38path: /nfs/data/nginx-pv
pv
创建pv
ren
创建相应目录
#nfs主节点mkdir -p /nfs/data/01mkdir -p /nfs/data/02mkdir -p /nfs/data/03
apiVersion: v1kind: PersistentVolumemetadata:name: pv01-10mspec:capacity:storage: 10MaccessModes:- ReadWriteManystorageClassName: nfsnfs:path: /nfs/data/01server: 1.15.230.38---apiVersion: v1kind: PersistentVolumemetadata:name: pv02-1gispec:capacity:storage: 1GiaccessModes:- ReadWriteManystorageClassName: nfsnfs:path: /nfs/data/02server: 1.15.230.38---apiVersion: v1kind: PersistentVolumemetadata:name: pv03-3gispec:capacity:storage: 3GiaccessModes:- ReadWriteManystorageClassName: nfsnfs:path: /nfs/data/03server: 1.15.230.38
查询pv
kubectl get PersistentVolume#或kubectl get pv
pvc
创建pvc
ren
kind: PersistentVolumeClaimapiVersion: v1metadata:name: nginx-pvcspec:accessModes:- ReadWriteManyresources:requests:storage: 200MistorageClassName: nfs
查询pvnc
kubectl get pvc
pod绑定pvc
apiVersion: apps/v1kind: Deploymentmetadata:labels:app: nginx-deploy-pvcname: nginx-deploy-pvcspec:replicas: 2selector:matchLabels:app: nginx-deploy-pvctemplate:metadata:labels:app: nginx-deploy-pvcspec:containers:- image: nginxname: nginxvolumeMounts:- name: htmlmountPath: /usr/share/nginx/htmlvolumes:- name: htmlpersistentVolumeClaim:claimName: nginx-pvc
ConfigMap
redis
echo 'appendonly yesrequirepass 123456789' >> /root/redis.conf
创建配置集(configmap,简称cm)
# 创建配置,redis保存到k8s的etcd;kubectl create cm redis-conf --from-file=/root/redis.conf
apiVersion: v1data: #data是所有真正的数据,key:默认是文件名 value:配置文件的内容redis.conf: |+appendonly yesrequirepass 123456789kind: ConfigMapmetadata:name: redis-confnamespace: default
查询配置集
#查询全部kubectl get cm#查询指定kubectl get cm redis-conf -oyaml

创建之后就可以删除本地文件了,因为已经保存到etcd rm -rf /root/redis.conf
修改配置集
kubectl edit cm redis-conf
创建pod,引用配置集
apiVersion: v1kind: Podmetadata:name: redisspec:containers:- name: redisimage: rediscommand:- redis-server- "/redis-master/redis.conf" #指的是redis容器内部的位置ports:- containerPort: 6379volumeMounts:- mountPath: /dataname: data- mountPath: /redis-mastername: configvolumes:- name: dataemptyDir: {}- name: configconfigMap:name: redis-confitems:- key: redis.confpath: redis.conf
