k8s部署wordpress

服务端

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
View Code
[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
View Code
[root@220 nfs]# cat 2pvcdata.yml 
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: pv0001
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 1Gi
[root@220 nfs]# 
View Code
[root@220 nfs]# cat 2pvcweb.yml 
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: pv0002
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 1Gi
View Code
[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
View Code
[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
View Code
[root@220 nfs]# cat 4svcmysqlwp.yml 
apiVersion: v1
kind: Service
metadata:
  name: mysql
spec:
  ports:
    - port: 3306
  selector: 
    app: mysql
View Code
[root@220 nfs]# cat 4svcwebwp.yml 
apiVersion: v1
kind: Service
metadata:
  name: myweb
spec:
  type: NodePort
  ports:
    - port: 80
      nodePort: 30008
  selector: 
    app: myweb
View Code

-------------------------------------------------------------------------------------------------------------------------------------------

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

原文地址:https://www.cnblogs.com/Leaders543/p/12665894.html