1、测试使用NFS文件
查询有无安装上这两个,没有就装上
rpm -qa nfs-utils rpcbind
[root@V71 nfs_test]# cat /etc/exports #/nfs_test 192.168.0.0/16(rw,no_root_squash,no_all_squash,sync) /nfs_test 192.168.0.0/16(rw,sync,all_squash)
为了方便测试放开权限
chown -R nfsnobody /nfs_test/
chmod 777 -R /nfs_test/
确实服务正常并且测试可以被客户端挂载,NFS默认使用2049端口,跨网段确认端口转发无误
[root@V71 nfs_test]# service rpcbind status Redirecting to /bin/systemctl status rpcbind.service ● rpcbind.service - RPC bind service Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; disabled; vendor preset: enabled) Active: active (running) since 三 2019-05-22 16:21:46 CST; 1h 43min ago Process: 2978 ExecStart=/sbin/rpcbind -w $RPCBIND_ARGS (code=exited, status=0/SUCCESS) Main PID: 2983 (rpcbind) CGroup: /system.slice/rpcbind.service └─2983 /sbin/rpcbind -w
5月 22 16:21:46 V71 systemd[1]: Starting RPC bind service... 5月 22 16:21:46 V71 systemd[1]: Started RPC bind service. [root@V71 nfs_test]# service nfs status Redirecting to /bin/systemctl status nfs.service ● nfs-server.service - NFS server and services Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled) Drop-In: /run/systemd/generator/nfs-server.service.d └─order-with-mounts.conf Active: active (exited) since 三 2019-05-22 16:27:20 CST; 1h 38min ago Process: 3577 ExecStopPost=/usr/sbin/exportfs -f (code=exited, status=0/SUCCESS) Process: 3574 ExecStopPost=/usr/sbin/exportfs -au (code=exited, status=0/SUCCESS) Process: 3573 ExecStop=/usr/sbin/rpc.nfsd 0 (code=exited, status=0/SUCCESS) Process: 3591 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS) Process: 3586 ExecStartPre=/bin/sh -c /bin/kill -HUP `cat /run/gssproxy.pid` (code=exited, status=0/SUCCESS) Process: 3585 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS) Main PID: 3591 (code=exited, status=0/SUCCESS) CGroup: /system.slice/nfs-server.service
5月 22 16:27:20 V71 systemd[1]: Starting NFS server and services... 5月 22 16:27:20 V71 systemd[1]: Started NFS server and services.
[root@k8s1 ~]# mount -t nfs 192.168.137.1:/nfs_test /nfsclient/
2、创建PV,PVC
[root@k8s1 pv]# cat pv1.yml apiVersion: v1 kind: PersistentVolume metadata: name: pv1 spec: capacity: storage: 2Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Recycle nfs: path: /nfs_test server: 192.168.137.1 [root@k8s1 pv]# cat pvc1.yml kind: PersistentVolumeClaim apiVersion: v1 metadata: name: pvc1 spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi
[root@k8s1 pv]# kubectl create -f pv1.yml persistentvolume "pv1" created
[root@k8s1 pv]# kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE pv1 2Gi RWO Recycle Available 30s
[root@k8s1 pv]# kubectl create -f pvc1.yml persistentvolumeclaim "pvc1" created [root@k8s1 pv]# kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE pv1 2Gi RWO Recycle Bound default/pvc1 6m
[root@k8s1 pv]# cat war.yml apiVersion: apps/v1 kind: Deployment metadata: name: tomcatwars spec: selector: matchLabels: app: tomcatwar replicas: 2 template: metadata: labels: app: tomcatwar spec: imagePullSecrets: - name: registry-key containers: - name: tomcatwar image: re.bcdgptv.com.cn/war:v1 volumeMounts: - mountPath: "/usr/local/tomcat/logs" name: mpvc1 ports: - containerPort: 8080 volumes: - name: mpvc1 persistentVolumeClaim: claimName: pvc1
[root@k8s1 pv]# cat warservice.yml kind: Service apiVersion: v1 metadata: name: warservice labels: app: tomcatwar spec: type: NodePort ports: - port: 8080 protocol: TCP nodePort: 8899 selector: app: tomcatwar
创建Deployment及Service
[root@k8s1 pv]# kubectl create -f war.yml deployment.apps "tomcatwars" created
[root@k8s1 pv]# kubectl create -f warservice.yml
3、测试访问,war.yml文件将tomcat的日志文件挂载到了pvc,此时访问项目,日志文件被写入到了nfs共享的路径
访问日志及路径: [root@V71 nfs_test]# pwd /nfs_test [root@V71 nfs_test]# ls 1.txt catalina.2019-05-22.log host-manager.2019-05-22.log localhost.2019-05-22.log localhost_access_log.2019-05-22.txt manager.2019-05-22.log [root@V71 nfs_test]# cat localhost_access_log.2019-05-22.txt 172.30.26.0 - - [22/May/2019:09:56:38 +0000] "GET /war1.war/login.jsp HTTP/1.1" 200 12313 172.30.26.0 - - [22/May/2019:09:56:39 +0000] "GET /war1.war/dwr/interface/loginService.js HTTP/1.1" 200 540 172.30.26.0 - - [22/May/2019:09:56:39 +0000] "GET /war1.war/dwr/engine.js HTTP/1.1" 200 44180 172.30.26.0 - - [22/May/2019:09:56:39 +0000] "GET /war1.war/dwr/util.js HTTP/1.1" 200 46250 172.30.26.0 - - [22/May/2019:09:56:39 +0000] "GET /war1.war/img/loading.gif HTTP/1.1" 304 - 172.30.26.0 - - [22/May/2019:09:56:39 +0000] "GET /war1.war/img/luck.gif HTTP/1.1" 304 - 172.30.26.0 - - [22/May/2019:09:56:39 +0000] "GET /war1.war/img/login-wel.gif HTTP/1.1" 304 - 172.30.26.0 - - [22/May/2019:09:56:39 +0000] "GET /war1.war/img/login-top-bg.gif HTTP/1.1" 304 - 172.30.26.0 - - [22/May/2019:09:56:39 +0000] "GET /war1.war/img/login_bg.jpg HTTP/1.1" 304 - 172.30.26.0 - - [22/May/2019:09:56:39 +0000] "GET /war1.war/img/login-content-bg.gif HTTP/1.1" 304 - 172.30.26.0 - - [22/May/2019:09:57:45 +0000] "GET /war1.war/login.jsp HTTP/1.1" 200 12313 172.30.26.0 - - [22/May/2019:09:57:46 +0000] "GET /war1.war/dwr/interface/loginService.js HTTP/1.1" 200 540 172.30.26.0 - - [22/May/2019:09:57:46 +0000] "GET /war1.war/img/loading.gif HTTP/1.1" 200 2377 172.30.26.0 - - [22/May/2019:09:57:46 +0000] "GET /war1.war/img/luck.gif HTTP/1.1" 200 429 172.30.26.0 - - [22/May/2019:09:57:46 +0000] "GET /war1.war/img/login-wel.gif HTTP/1.1" 200 8844 172.30.26.0 - - [22/May/2019:09:57:46 +0000] "GET /war1.war/dwr/engine.js HTTP/1.1" 200 44180 172.30.26.0 - - [22/May/2019:09:57:46 +0000] "GET /war1.war/dwr/util.js HTTP/1.1" 200 46250 172.30.26.0 - - [22/May/2019:09:57:46 +0000] "GET /war1.war/img/login-top-bg.gif HTTP/1.1" 200 174 172.30.26.0 - - [22/May/2019:09:57:46 +0000] "GET /war1.war/img/login_bg.jpg HTTP/1.1" 200 20754 172.30.26.0 - - [22/May/2019:09:57:46 +0000] "GET /war1.war/img/login-content-bg.gif HTTP/1.1" 200 20202 172.30.26.0 - - [22/May/2019:09:57:46 +0000] "GET /favicon.ico HTTP/1.1" 200 21630 172.30.26.0 - - [22/May/2019:10:14:02 +0000] "GET /war1.war/dwr/engine.js HTTP/1.1" 200 44180 30.26.1 - - [22/May/2019:10:14:02 +0000] "GET /war1.war/dwr/interface/loginService.js HTTP/1.1" 200 540 172.30.26.1 - - [22/May/2019:10:14:02 +0000] "GET /war1.war/dwr/util.js HTTP/1.1" 200 46250 172.30.26.1 - - [22/May/2019:10:14:09 +0000] "GET /war1.war/login.jsp HTTP/1.1" 200 12313 172.30.26.1 - - [22/May/2019:10:14:09 +0000] "GET /war1.war/dwr/interface/loginService.js HTTP/1.1" 200 540 172.30.26.1 - - [22/May/2019:10:14:09 +0000] "GET /favicon.ico HTTP/1.1" 200 21630 172.30.26.1 - - [22/May/2019:10:14:28 +0000] "GET /war1.war/login.jsp HTTP/1.1" 200 12313 172.30.26.1 - - [22/May/2019:10:14:28 +0000] "GET /war1.war/dwr/interface/loginService.js HTTP/1.1" 200 540 172.30.26.1 - - [22/May/2019:10:14:28 +0000] "GET /favicon.ico HTTP/1.1" 200 21630