目录
介绍
WordPress是一个基于PHP和MySQL的开源内容管理系统。它旨在帮助用户轻松创建和管理网站,最初作为一个简单的博客平台,但随着时间的推移,发展成为功能强大的CMS,支持数以千计的插件和主题,用户可以根据自己的需求进行自定义,下面将用k8s部署wordpress的过程
k8s编排部署WordPress+Mysql
(1)在master节点部署NFS服务,做共享存储;
(2)为MySQL创建PVC mysql-pv-claim,绑定PV mysql-persistent-storage,PV大小:20Gi,权限:RWO,回收策略:Recycle;
(3)为wordpress创建PVC wp-pv-claim,绑定PV wordpress-persistent-storage,PV大小:20Gi,权限:RWO,回收策略:Recycle;
(4)基于镜像mysql:5.6和wordpress:latest;
(5)wordpress service名称:wordpress,以NodePort方式对外暴露端口31000。
nfs准备
root@master \~\]#yum install --y nfs-utils rpcbind \[root@master \~\]#mkdir /data-mysql /data-wordpress \[root@master \~\]#chmod 777 /data-mysql \[root@master \~\]#chmod 777 /data-wordpress \[root@master \~\]#vi /etc/exports /data-mysql \*(rw,no_root_squash,sync) /data-wordpress \*(rw,no_root_squash,sync) \[root@master \~\]#exportfs -rv \[root@master \~\]#systemctl restart nfs rpcbind \[root@node \~\]#showmount -e 192.168.20.14 建立pv与pvc后绑定 pvpvc.yaml ----------------- apiVersion: v1 kind: PersistentVolume metadata: name: mysql-persistent-storage namespace: default labels: app: wordpress spec: accessModes: - ReadWriteOnce capacity: storage: 20Gi nfs: path: /data-mysql server: master persistentVolumeReclaimPolicy: Recycle storageClassName: nfs --- apiVersion: v1 kind: PersistentVolume metadata: name: wordpress-persistent-storage namespace: default labels: app: wordpress spec: accessModes: - ReadWriteOnce capacity: storage: 20Gi nfs: path: /data-wordpress server: master persistentVolumeReclaimPolicy: Recycle storageClassName: nfs --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mysql-pv-claim namespace: default labels: app: mysql spec: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi storageClassName: nfs volumeName: mysql-persistent-storage --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: wp-pv-claim namespace: default labels: app: wordpress spec: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi storageClassName: nfs volumeName: wordpress-persistent-storage ---------------------------- 启动后查看 \[root@master k8sexam\]# kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE mysql-persistent-storage 20Gi RWO Recycle Bound default/mysql-pv-claim nfs 24m wordpress-persistent-storage 20Gi RWO Recycle Bound default/wp-pv-claim nfs 24m \[root@master k8sexam\]# kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE mysql-pv-claim Bound mysql-persistent-storage 20Gi RWO nfs 24m wp-pv-claim Bound wordpress-persistent-storage 20Gi RWO nfs 24m vi deployment.yaml -----------------------------------------------配置service与deployment及mysql------------- kind: Service apiVersion: v1 metadata: labels: app: wordpress name: wordpress-mysql spec: ports: - port: 3306 selector: app: wordpress tier: mysql clusterIP: None --- kind: Service apiVersion: v1 metadata: labels: app: wordpress name: wordpress spec: type: NodePort ports: - port: 80 nodePort: 31000 selector: app: wordpress tier: frontend --- kind: Deployment apiVersion: apps/v1 metadata: labels: app: wordpress name: wordpress-mysql spec: replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: app: wordpress template: metadata: labels: app: wordpress tier: mysql spec: containers: - name: mysql image: mysql:5.6 imagePullPolicy: IfNotPresent ports: - containerPort: 3306 name: mysql env: - name: MYSQL_ROOT_PASSWORD value: '123456' volumeMounts: - name: mysql-pv mountPath: /var/lib/mysql volumes: - name: mysql-pv persistentVolumeClaim: claimName: mysql-pv-claim --- kind: Deployment apiVersion: apps/v1 metadata: labels: app: wordpress name: wordpress spec: replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: app: wordpress template: metadata: labels: app: wordpress tier: frontend spec: containers: - name: wordpress image: wordpress:latest imagePullPolicy: IfNotPresent ports: - containerPort: 80 name: wordpress env: - name: WORDPRESS_DB_HOST value: wordpress-mysql - name: WORDPRESS_DB_PASSWORD value: '123456' volumeMounts: - name: wordpress-pv mountPath: /var/www/html volumes: - name: wordpress-pv persistentVolumeClaim: claimName: wp-pv-claim 启动比较慢 1-3分钟 kubectl logs -f wordpress-\* kubectl logs -f wordpress-mysql-\* 查看启动日志
`提示
ReadOnlyMany -- 卷可以被许多节点以只读方式挂载 只读多 (ROX)
`ReadWriteMany -- 卷可以被许多节点以读写方式挂载 读写多 (RWX)
`ReadWriteOnce -- 卷可以由单个节点以读写方式挂载 仅在一个 Node 上运行的多个 Pod可以连接到存储并进行读写操作



