下载公共镜像
1 | # 下载nginx-php-fpm镜像 |
安装NFS(测试使用的NFS,生产中建议使用ceph等存储)
创建web和DB目录
1
2# 有单独的服务器或者安装在master上
mkdir -p /data/k8s/{web,db}安装nfs
1
yum -y install nfs-utils
设置共享目录
1
2vim /etc/exports
/data/k8s 192.168.100.0/24(sync,rw,no_root_squash)客户端挂载
1
2
3
4
5# node节点上
yum install nfs-utils -y
mount -t nfs 192.168.100.11:/data/k8s /mnt
# 建议加入开机自启
echo "192.168.100.11:/data/k8s /mnt nfs defaults 0 0" >>/etc/fstab启动服务
1
2
3# nfs服务端
systemctl start nfs
systemctl enable nfs
安装mysql
创建yaml文件目录
1
mkdir -p /data/k8s-yaml/lnmp
创建secret,存储mysql密码
1
2
3
4kubectl create secret generic mysql-pass --from-literal=password=xxzx@789
# 使用base64加解密
echo -n xxzx@789 |base64
echo eHh6eEA3ODk= | base64 -d创建mysql pv,pvc
1 | # mysql-pv.yaml |
- 查看pv,pvc信息
1
kubectl get pv,pvc

创建mysql-deploy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41# mysql-deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: dz-mysql
labels:
app: discuz
spec:
selector:
matchLabels:
app: discuz
tier: mysql
strategy:
type: Recreate
template:
metadata:
labels:
app: discuz
tier: mysql
spec:
imagePullSecrets:
- name: my-secret
containers:
- image: mysql:5.7 ##此处指定你的harbor需要拉取的镜像
name: mysql
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-pass ##此模块是调用secret中存放的mysql密码
key: password
ports:
- containerPort: 3306
name: dz-mysql
volumeMounts:
- name: mysql-persistent-storage
mountPath: /var/lib/mysql
volumes:
- name: mysql-persistent-storage
persistentVolumeClaim: ##此模块参数调用定义创建的pvc名称
claimName: mysql-claim创建mysql-service
1
2
3
4
5
6
7
8
9
10
11
12
13# mysql-service.yaml
apiVersion: v1
kind: Service
metadata:
name: dz-mysql
labels:
app: discuz
spec:
ports:
- port: 3306
selector:
app: discuz
tier: mysql
安装nginx
- 创建nginx-pv,nginx-pvc
1 | # nginx-pv.yaml |
创建nginx-deploy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35# nginx-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:
imagePullSecrets:
- name: my-secret
containers:
- image: richarvey/nginx-php-fpm:latest
name: dz-web
ports:
- containerPort: 9000
- containerPort: 80
name: dz-web
volumeMounts:
- name: mysql-persistent-storage
mountPath: /var/www/html/
volumes:
- name: mysql-persistent-storage
persistentVolumeClaim:
claimName: web-claim创建nginx-service
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15# nginx-svc.yaml
apiVersion: v1
kind: Service
metadata:
name: dz-web
labels:
app: discuz
spec:
type: NodePort
ports:
- port: 80
nodePort: 30001
selector:
app: discuz
tier: nginx-php
安装Discuz
下载discuz
1
2
3
4
5
6# NFS服务器上操作
cd /data/k8s
git clone https://gitee.com/ComsenzDiscuz/DiscuzX.git
cp -a DiscuzX/upload/* web/
cd web/
chmod 774 data uc_server/data uc_client/data configmysql上创建dz库并授权用户
1
2
3kubectl exec -it dz-mysql-xxx -- mysql -uroot -p
create database dz default character set utf8;
grant all on dz.* to 'dz'@'%' identified by 'abc123';浏览器访问安装
1
x.x.x.x:30001
