服务端
yum install -y nfs-utils rpcbind
mkdir -p /wp/{data,code}
echo "/wp/data 192.168.3.0/24(rw,async,no_root_squash,no_all_squash) ">>/etc/exports \
&& echo "/wp/code 192.168.3.0/24(rw,async,no_root_squash,no_all_squash) ">>/etc/exports
systemctl restart rpcbind nfs
systemctl enable rpcbind nfs
客户端
yum install -y nfs-utils
showmount -e 192.168.3.220
Master:
docker pull wordpress
docker pull mysql:5.7
docker tag mysql:5.7 192.168.3.220:5000/wp/wordpress:latest
docker pull 192.168.3.220:5000/wp/mysql:5.7
docker tag wordpress:latest 192.168.3.220:5000/wp/wordpress:latest
docker pull 192.168.3.220:5000/wp/wordpress:latest
启动顺序PV-->PVC-->RCmysql(mysql.查ip)-->SVCmysql-->RCweb-->SVCweb
[root@220 nfs]# ls 1pvdata.yml 2pvcdata.yml 3rcmysqlwp.yml 4svcmysqlwp.yml downmysql 1pvweb.yml 2pvcweb.yml 3rcwebwp.yml 4svcwebwp.yml upmysql.sh

[root@220 nfs]# cat 1pvdata.yml apiVersion: v1 kind: PersistentVolume metadata: name: pv0001 spec: capacity: storage: 10Gi accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Recycle nfs: path: '/wp/data' server: 192.168.3.220 readOnly: false

[root@220 nfs]# cat 1pvweb.yml apiVersion: v1 kind: PersistentVolume metadata: name: pv0002 spec: capacity: storage: 10Gi accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Recycle nfs: path: '/wp/code' server: 192.168.3.220 readOnly: false

[root@220 nfs]# cat 2pvcdata.yml kind: PersistentVolumeClaim apiVersion: v1 metadata: name: pv0001 spec: accessModes: - ReadWriteMany resources: requests: storage: 1Gi [root@220 nfs]#

[root@220 nfs]# cat 2pvcweb.yml kind: PersistentVolumeClaim apiVersion: v1 metadata: name: pv0002 spec: accessModes: - ReadWriteMany resources: requests: storage: 1Gi

[root@220 nfs]# cat 3rcmysqlwp.yml apiVersion: v1 kind: ReplicationController metadata: name: mysql spec: replicas: 1 selector: app: mysql template: metadata: labels: app: mysql spec: containers: - name: mysql image: 192.168.3.220:5000/wp/mysql:5.7 ports: - containerPort: 3306 volumeMounts: - name: nfs-vol mountPath: /var/lib/mysql env: - name: MYSQL_ROOT_PASSWORD value: "123qwe" - name: MYSQL_DATABASE value: "wp" - name: MYSQL_USER value: "w" - name: MYSQL_PASSWORD value: "123123" volumes: - name: nfs-vol persistentVolumeClaim: claimName: pv0001

[root@220 nfs]# cat 3rcwebwp.yml apiVersion: v1 kind: ReplicationController metadata: name: myweb spec: replicas: 3 selector: app: myweb template: metadata: labels: app: myweb spec: containers: - name: mysql image: 192.168.3.220:5000/wp/wordpress:latest ports: - containerPort: 80 volumeMounts: - name: nfs-vol mountPath: /var/www/html env: - name: WORDPRESS_DB_HOST value: "待变更" - name: WORDPRESS_DB_NAME value: "wp" - name: WORDPRESS_DB_USER value: "w" - name: WORDPRESS_DB_PASSWORD value: "123123" volumes: - name: nfs-vol persistentVolumeClaim: claimName: pv0002

[root@220 nfs]# cat 4svcmysqlwp.yml apiVersion: v1 kind: Service metadata: name: mysql spec: ports: - port: 3306 selector: app: mysql

[root@220 nfs]# cat 4svcwebwp.yml apiVersion: v1 kind: Service metadata: name: myweb spec: type: NodePort ports: - port: 80 nodePort: 30008 selector: app: myweb
-------------------------------------------------------------------------------------------------------------------------------------------
shell
[root@220 nfs]# cat downmysql.sh kubectl delete -f 4svcwebwp.yml kubectl delete -f 4svcmysqlwp.yml kubectl delete -f 3rcmysqlwp.yml kubectl delete -f 3rcwebwp.yml kubectl delete -f 2pvcdata.yml kubectl delete -f 2pvcweb.yml kubectl delete -f 1pvdata.yml kubectl delete -f 1pvweb.yml
[root@220 nfs]# cat upmysql.sh kubectl create -f 1pvdata.yml kubectl create -f 1pvweb.yml kubectl create -f 2pvcdata.yml kubectl create -f 2pvcweb.yml kubectl create -f 3rcmysqlwp.yml kubectl create -f 4svcmysqlwp.yml kubectl get pods -o wide |grep mysql|awk '{print $6}'
explain