1 下载MySQL、PHP以及Nginx镜像
docker pull mysql:5.7docker pull richarvey/nginx-php-fpm
2 将下载到的镜像push到harbor
docker tag mysql:5.7 harbor.yuankeedu.com/aminglinux/mysql:5.7docker push harbor.yuankeedu.com/aminglinux/mysql:5.7docker tag aming-nginx-php harbor.yuankeedu.com/aminglinux/nginx-phpdocker push harbor.yuankeedu.com/aminglinux/nginx-php
3 搭建NFS服务
yum install nfs-utilsvim /etc/exportfs/data/k8s/ 172.7.5.0/24(sync,rw,no_root_squash)systemctl start nfssystemctl enable nfsmkdir -p ?/data/k8s/discuz/{db,web}
4 搭建MySQL服务
1)创建secretkubectl create secret generic mysql-pass --from-literal=password=DzPasswd123
2)创建pv
vim mysql-pv.yaml ?//内容如下apiVersion: v1kind: PersistentVolumemetadata: ?name: mysql-pvspec: ?capacity: ???storage: 10Gi ?accessModes: ???- ReadWriteMany ?nfs: ???path: /data/k8s/discuz/db ???server: 172.7.5.113kubectl create -f mysql-pv.yaml
3)创建pvc
vim ?mysql-pvc.yaml //内容如下apiVersion: v1kind: PersistentVolumeClaimmetadata: ?name: mysql-claim ?labels: ???app: discuzspec: ?accessModes: ???- ReadWriteMany ?resources: ???requests: ?????storage: 10Gikubectl create -f mysql-pvc.yaml
4)创建deployment
vim mysql-dp.yaml ?//内容如下apiVersion: apps/v1kind: Deploymentmetadata: ?name: dz-mysql ?labels: ???app: discuzspec: ?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-claimkubectl create -f mysql-dp.yaml
5)创建service
vim mysql-svc.yamlapiVersion: v1kind: Servicemetadata: ?name: dz-mysql ?labels: ???app: discuzspec: ?ports: ???- port: 3306 ?selector: ???app: discuz ???tier: mysqlkubectl create -f mysql-svc.yaml
5 搭建nginx+php-fpm服务
1)创建pv
vim web-pv.yaml ?//内容如下apiVersion: v1kind: PersistentVolumemetadata: ?name: web-pvspec: ?capacity: ???storage: 10Gi ?accessModes: ???- ReadWriteMany ?nfs: ???path: /data/k8s/discuz/web ???server: 172.7.5.113kubectl create -f web-pv.yaml
2)创建pvc
vim ?web-pvc.yaml //内容如下apiVersion: v1kind: PersistentVolumeClaimmetadata: ?name: web-claim ?labels: ???app: discuzspec: ?accessModes: ???- ReadWriteMany ?resources: ???requests: ?????storage: 10Gikubectl create -f web-pvc.yaml
3)创建deployment
vim web-dp.yaml ?//内容如下apiVersion: apps/v1kind: Deploymentmetadata: ?name: dz-web ?labels: ???app: discuzspec: ?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-claimkubectl create -f web-dp.yaml
4)创建service
vim web-svc.yamlapiVersion: v1kind: Servicemetadata: ?name: dz-web ?labels: ???app: discuzspec: ?ports: ???- port: 9000 ?selector: ???app: discuz ???tier: nginx-phpkubectl create -f web-svc.yaml
在kubernetes集群中搭建LNMP并运行discuz
原文地址:http://blog.51cto.com/aminglinux/2177558