一、nfs-server服务端:
挂载一块新磁盘
1.1、格式化并挂载
parted /dev/vdb mklable xfs
parted /dev/vdb primay 0% 100%
mkfs.xfs /dev/vdb1
echo "/dev/vdb1 /nfs_share xfs defaults 0 0" >> /etc/fstab
mount -a
1.2、安装nfs服务
apt install nfs-kernel-server -y
echo "/nfs_share 172.16.88.0/24(rw,sync,no_root_squash,no_subtree_check)" >> /etc/exports
exportfs -r
二、nfs客户端
2.1、安装客户端工具
apt-get install nfs-common -y
showmount 验证是否可以查看远程主机nfs
2.2、在k8s部署redis进行测试
创建pv、pvc
root@easzlab-deploy:~/redis-cluster/redis-k8s# cat redis-pv.yaml --- apiVersion: v1 kind: PersistentVolume metadata:name: redis-datadir-pv-1 spec:capacity:storage: 10GiaccessModes:- ReadWriteOncenfs:path: /nfs_share/k8sdata/magedu/redis-datadir-1server: 172.16.88.169 root@easzlab-deploy:~/redis-cluster/redis-k8s#
root@easzlab-deploy:~/redis-cluster/redis-k8s# cat redis-pvc.yaml --- apiVersion: v1 kind: PersistentVolumeClaim metadata:name: redis-datadir-pvc-1namespace: magedu spec:volumeName: redis-datadir-pv-1accessModes:- ReadWriteOnceresources:requests:storage: 10Gi root@easzlab-deploy:~/redis-cluster/redis-k8s#
root@easzlab-deploy:~/redis-cluster/redis-k8s# kubectl create ns magedu namespace/magedu created root@easzlab-deploy:~/redis-cluster/redis-k8s# kubectl apply -f redis-pvc.yaml persistentvolumeclaim/redis-datadir-pvc-1 created root@easzlab-deploy:~/redis-cluster/redis-k8s# kubectl get pvc -A NAMESPACE NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE magedu redis-datadir-pvc-1 Bound redis-datadir-pv-1 10Gi RWO 69s root@easzlab-deploy:~/redis-cluster/redis-k8s# kubectl get pv -A NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE redis-datadir-pv-1 10Gi RWO Retain Bound magedu/redis-datadir-pvc-1 9m53s root@easzlab-deploy:~/redis-cluster/redis-k8s#
2.3、编写deplayment,部署redis
root@easzlab-deploy:~/redis-cluster/redis-k8s# cat redis-k8s-deployment.yaml kind: Deployment apiVersion: apps/v1 metadata:labels:app: devops-redisname: deploy-devops-redisnamespace: magedu spec:replicas: 1selector:matchLabels:app: devops-redistemplate:metadata:labels:app: devops-redisspec:containers:- name: redis-containerimage: harbor.magedu.net/magedu/redis:v4.0.14imagePullPolicy: AlwaysvolumeMounts:- mountPath: "/data/redis-data/"name: redis-datadirvolumes:- name: redis-datadirpersistentVolumeClaim:claimName: redis-datadir-pvc-1--- kind: Service apiVersion: v1 metadata:labels:app: devops-redisname: srv-devops-redisnamespace: magedu spec:type: NodePortports:- name: httpport: 6379targetPort: 6379nodePort: 31379selector:app: devops-redissessionAffinity: ClientIPsessionAffinityConfig:clientIP:timeoutSeconds: 10800 root@easzlab-deploy:~/redis-cluster/redis-k8s#
root@easzlab-deploy:~/redis-cluster/redis-k8s# kubectl apply -f redis-k8s-deployment.yaml deployment.apps/deploy-devops-redis unchanged service/srv-devops-redis created root@easzlab-deploy:~/redis-cluster/redis-k8s#