文档整理 https://coding.net/u/aminglinux/p/k8s_discuz/git/tree/master

1 下载MySQL、PHP以及Nginx镜像

docker pull mysql:5.7 docker pull richarvey/nginx-php-fpm 

2 将下载到的镜像push到harbor

docker tag mysql:5.7 harbor.yuankeedu.com/aminglinux/mysql:5.7 docker push harbor.yuankeedu.com/aminglinux/mysql:5.7 docker tag aming-nginx-php harbor.yuankeedu.com/aminglinux/nginx-php docker push harbor.yuankeedu.com/aminglinux/nginx-php 

3 搭建NFS服务

yum install nfs-utils vim /etc/exportfs /data/k8s/ 172.7.5.0/24(sync,rw,no_root_squash) systemctl start nfs systemctl enable nfs mkdir -p /data/k8s/discuz/{db,web} 

4 搭建MySQL服务 1)创建secret kubectl create secret generic mysql-pass --from-literal=password=DzPasswd123

2)创建pv

vim mysql-pv.yaml //内容如下 apiVersion: v1 kind: PersistentVolume metadata: name: mysql-pv spec: capacity: storage: 10Gi accessModes: - ReadWriteMany nfs: path: /data/k8s/discuz/db server: 172.7.5.113 kubectl create -f mysql-pv.yaml 

3)创建pvc

vim mysql-pvc.yaml //内容如下 apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mysql-claim labels: app: discuz spec: accessModes: - ReadWriteMany resources: requests: storage: 10Gi kubectl create -f mysql-pvc.yaml 

4)创建deployment

vim mysql-dp.yaml //内容如下 apiVersion: apps/v1 kind: Deployment metadata: name: dz-mysql labels: app: discuz spec: replicas: 2 selector: matchLabels: app: discuz tier: mysql strategy: type: Recreate template: metadata: labels: app: discuz tier: mysql spec: containers: - image: harbor.yuankeedu.com/aminglinux/mysql:5.7 imagePullSecrets: - name: my-secret name: dz-mysql env: - name: MYSQL_ROOT_PASSWORD valueFrom: secretKeyRef: name: mysql-pass key: password ports: - containerPort: 3306 name: dz-mysql volumeMounts: - name: mysql-persistent-storage mountPath: /var/lib/mysql volumes: - name: mysql-persistent-storage persistentVolumeClaim: claimName: mysql-claim kubectl create -f mysql-dp.yaml 

5)创建service

vim mysql-svc.yaml apiVersion: v1 kind: Service metadata: name: dz-mysql labels: app: discuz spec: ports: - port: 3306 selector: app: discuz tier: mysql kubectl create -f mysql-svc.yaml 

5 搭建nginx+php-fpm服务 1)创建pv

vim web-pv.yaml //内容如下 apiVersion: v1 kind: PersistentVolume metadata: name: web-pv spec: capacity: storage: 10Gi accessModes: - ReadWriteMany nfs: path: /data/k8s/discuz/web server: 172.7.5.113 kubectl create -f web-pv.yaml 

2)创建pvc

vim web-pvc.yaml //内容如下 apiVersion: v1 kind: PersistentVolumeClaim metadata: name: web-claim labels: app: discuz spec: accessModes: - ReadWriteMany resources: requests: storage: 10Gi kubectl create -f web-pvc.yaml 

3)创建deployment

vim web-dp.yaml //内容如下 apiVersion: apps/v1 kind: Deployment metadata: name: dz-web labels: app: discuz spec: replicas: 1 selector: matchLabels: app: discuz tier: nginx-php template: metadata: labels: app: discuz tier: nginx-php spec: containers: - image: harbor.yuankeedu.com/aminglinux/nginx-php name: dz-web ports: - containerPort: 9000 - containerPort: 80 name: dz-web volumeMounts: - name: mysql-persistent-storage mountPath: /var/www/html/ imagePullSecrets: - name: my-secret volumes: - name: mysql-persistent-storage persistentVolumeClaim: claimName: web-claim kubectl create -f web-dp.yaml 

4)创建service

vim web-svc.yaml apiVersion: v1 kind: Service metadata: name: dz-web labels: app: discuz spec: ports: - port: 9000 selector: app: discuz tier: nginx-php kubectl create -f web-svc.yaml