kubernetes-部署LNMP环境运行Discuz
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了kubernetes-部署LNMP环境运行Discuz,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含11897字,纯文字阅读大概需要17分钟。
内容图文
![kubernetes-部署LNMP环境运行Discuz](/upload/InfoBanner/zyjiaocheng/1187/9fe2b9d599c74861a793c43916ab76aa.jpg)
1 [root@master ~]# docker pull mysql:5.7 25.7: Pulling from library/mysql 3d599a449871e: Pull complete 4f287049d3170: Pull complete 508947732a1b0: Pull complete 696f3056887f2: Pull complete 7871f7f65f017: Pull complete 81dd50c4b99cb: Pull complete 95bcbdf508448: Pull complete 1002a97db830bd: Pull complete 11c09912a99bce: Pull complete 1208a981fc6a89: Pull complete 13818a84239152: Pull complete 14Digest: sha256:5779c71a4730da36f013a23a437b5831198e68e634575f487d37a0639470e3a8 15 Status: Downloaded newer image for mysql:5.7
1 [root@master ~]# docker pull richarvey/nginx-php-fpm 2Using default tag: latest 3 latest: Pulling from richarvey/nginx-php-fpm 49d48c3bd43c5: Pull complete 54bf02c0a37c8: Pull complete 69ce49f939c6f: Pull complete 72fa33c09831c: Pull complete 864d703475f7c: Pull complete 9687e14517432: Pull complete 105d8ec717fece: Pull complete 119fe12d3f6add: Pull complete 12e860070fe546: Pull complete 1336baa049bdfe: Pull complete 144073f665d7d8: Pull complete 1542a3d0ae6c56: Pull complete 16682e06ece949: Pull complete 173c3d9faab7c5: Pull complete 18258d52d772e4: Pull complete 1941336c37b6cd: Pull complete 209ef84aa1b775: Pull complete 2194c642e23a42: Pull complete 22f601338f6a53: Pull complete 230c5f20947667: Pull complete 2450f6eb03fd0b: Pull complete 2575174a25ab08: Pull complete 268e16258eb3ba: Pull complete 27447fabc9be1b: Pull complete 28a485db129518: Pull complete 29de30cb0b9f89: Pull complete 305724050c9b48: Pull complete 31c20deb9ffa63: Pull complete 3252031a5fa502: Pull complete 336aea67ff4e17: Pull complete 34Digest: sha256:f8109029deb401ee83c4fcd1e737cc496f42aca6a6e8f445f8501ea977be6784 35 Status: Downloaded newer image for richarvey/nginx-php-fpm:latest
1 [root@master ~]# docker tag mysql:5.7 harbor.ghs.com/lnmp/mysql:5.7 2 [root@master ~]# docker push harbor.ghs.com/lnmp/mysql:5.7 3 The push refers to repository [harbor.ghs.com/lnmp/mysql] 494a471180601: Pushed 5934de0c0816e: Pushed 6fc12e028de3b: Pushed 7398ef8a407f7: Pushed 87055b7f82e4c: Pushed 92a9aab74013a: Pushed 10414373ffccb4: Pushed 116599033b2ab2: Pushed 1251734435c93c: Pushed 135a8a245abd1c: Pushed 1499b5261d397c: Pushed 155.7: digest: sha256:9e02c7c9a87d363588e85c87b8c6f637254c5c67b915b1666482f54121bb0926 size: 2622
1 [root@master ~]# docker tag richarvey/nginx-php-fpm harbor.ghs.com/lnmp/nginx-php-fpm:latest 2 [root@master ~]# docker push harbor.ghs.com/lnmp/nginx-php-fpm:latest 3 The push refers to repository [harbor.ghs.com/lnmp/nginx-php-fpm] 42624e7202e4b: Pushed 5eb30cdb90ca1: Pushed 6ae93c067c849: Pushed 79801a5392a22: Pushed 87b2d66211161: Pushed 99d4627716f06: Pushed 10d3cf99377a74: Pushed 11f647f7714c77: Pushed 128ed73ab2d11b: Pushed 13525bffddcce1: Pushed 14d93022710c58: Pushed 1528e868b9a611: Pushed 16ebbffb8bead8: Pushed 17c4ffba011c55: Pushed 189ac09047b17d: Pushed 193fefc401e422: Pushed 203b73d52fb480: Pushed 2173f0a2737684: Pushed 22bb46af78e4a5: Pushed 235d02268e182d: Pushed 2484bd64e5da78: Pushed 2514d91eeebaab: Pushed 2667ee9b354071: Pushed 27d822f3d53ee3: Pushed 28a0c85631af8f: Pushed 297c1ad7fa7002: Pushed 3003ecc22184eb: Pushed 311581c77670a3: Pushed 3214ee8729351c: Pushed 3303901b4a2ea8: Pushed 34 latest: digest: sha256:f8109029deb401ee83c4fcd1e737cc496f42aca6a6e8f445f8501ea977be6784 size: 6576
1 [root@master mysql]# vim mysql-pv.yaml 2apiVersion: v1 3kind: PersistentVolume 4metadata: 5 name: mysql-pv 6spec: 7 capacity: 8 storage: 10Gi 9 accessModes: 10 - ReadWriteMany 11 nfs: 12 path: /data/k8s/db ##该参数指定你的NFS端的共享目录 13 server: 192.168.1.201 ##指定nfs端的IP 14 [root@master mysql]# kubectl create -f mysql-pv.yaml 15 persistentvolume/mysql-pv created
4:创建mysql-pvc
1 [root@master mysql]# vim mysql-pvc.yaml 2apiVersion: v1 3kind: PersistentVolumeClaim 4metadata: 5 name: mysql-claim 6 labels: 7 app: discuz 8spec: 9 accessModes: 10 - ReadWriteMany 11 resources: 12 requests: 13 storage: 10Gi 14 [root@master mysql]# kubectl create -f mysql-pvc.yaml 15 persistentvolumeclaim/mysql-claim created
1[root@master mysql]# kubectl get pv,pvc 2NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE 3 persistentvolume/mysql-pv 10Gi RWX Retain Bound default/mysql-claim 71s 45NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE 6 persistentvolumeclaim/mysql-claim Bound mysql-pv 10Gi RWX 15s
6:创建mysql-deploy
1 [root@master mysql]# vim mysql-dp.yaml 2 apiVersion: apps/v1 3kind: Deployment 4metadata: 5 name: dz-mysql 6 labels: 7 app: discuz 8spec: 9 selector: 10 matchLabels: 11 app: discuz 12 tier: mysql 13 strategy: 14 type: Recreate 15 template: 16 metadata: 17 labels: 18 app: discuz 19 tier: mysql 20 spec: 21 imagePullSecrets: 22 - name: my-secret 23 containers: 24 - image: harbor.ghs.com/lnmp/mysql:5.7 ##此处指定你的harbor需要拉取的镜像 25 name: mysql 26env: 27 - name: MYSQL_ROOT_PASSWORD 28 valueFrom: 29 secretKeyRef: 30 name: mysql-pass ##此模块是调用secret中存放的mysql密码 31 key: password 32 ports: 33 - containerPort: 330634 name: dz-mysql 35 volumeMounts: 36 - name: mysql-persistent-storage 37 mountPath: /var/lib/mysql 38 volumes: 39 - name: mysql-persistent-storage 40 persistentVolumeClaim: ##此模块参数调用定义创建的pvc名称 41 claimName: mysql-claim 42 [root@master mysql]# kubectl create -f mysql-dp.yaml 43 deployment.apps/dz-mysql created
1 [root@master mysql]# vim mysql-svc.yaml 2apiVersion: v1 3kind: Service 4metadata: 5 name: dz-mysql 6 labels: 7 app: discuz 8spec: 9 ports: 10 - port: 330611 selector: 12 app: discuz 13 tier: mysql 14 [root@master mysql]# kubectl create -f mysql-svc.yaml 15 service/dz-mysql created
8:查看mysql服务的pod和svc信息
##下面信息可以看出,dz-mysql状态Running(运行)正常,分配的cluster-ip=10.68.235.35,该IP在集群中可以访问,外部无法访问该IP
1[root@master mysql]# kubectl get pod,svc 2NAME READY STATUS RESTARTS AGE 3 pod/dz-mysql-787586b8d6-9kl5b 1/1 Running 0 5m35s 4 pod/nginx-7c45b84548-4998z 1/1 Running 2 20d 56 NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE 7 service/dz-mysql ClusterIP 10.68.235.35 <none> 3306/TCP 5m13s 8 service/kubernetes ClusterIP 10.68.0.1 <none> 443/TCP 20d 9 service/nginx ClusterIP 10.68.241.175 <none> 80/TCP 20d
1 [root@master nginx]# vim web-pv.yaml 2apiVersion: v1 3kind: PersistentVolume 4metadata: 5 name: web-pv 6spec: 7 capacity: 8 storage: 10Gi 9 accessModes: 10 - ReadWriteMany 11 nfs: 12 path: /data/k8s/web 13 server: 192.168.1.20114 [root@master nginx]# kubectl create -f web-pv.yaml 15 persistentvolume/web-pv created
2:创建nginx-pvc
1 [root@master nginx]# vim web-pvc.yaml 2apiVersion: v1 3kind: PersistentVolumeClaim 4metadata: 5 name: web-claim 6 labels: 7 app: discuz 8spec: 9 accessModes: 10 - ReadWriteMany 11 resources: 12 requests: 13 storage: 10Gi 14 [root@master nginx]# kubectl create -f web-pvc.yaml 15 persistentvolumeclaim/web-claim created
1[root@master nginx]# kubectl get pv,pvc 2NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE 3 persistentvolume/mysql-pv 10Gi RWX Retain Bound default/mysql-claim 34m 4 persistentvolume/web-pv 10Gi RWX Retain Bound default/web-claim 114s 56NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE 7 persistentvolumeclaim/mysql-claim Bound mysql-pv 10Gi RWX 33m 8 persistentvolumeclaim/web-claim Bound web-pv 10Gi RWX 108s
4:创建nginx-deploy
1 [root@master nginx]# vim web-dp.yaml 2 apiVersion: apps/v1 3kind: Deployment 4metadata: 5 name: dz-web 6 labels: 7 app: discuz 8spec: 9 replicas: 110 selector: 11 matchLabels: 12 app: discuz 13 tier: nginx-php 14 template: 15 metadata: 16 labels: 17 app: discuz 18 tier: nginx-php 19 spec: 20 imagePullSecrets: 21 - name: my-secret 22 containers: 23 - image: harbor.ghs.com/lnmp/nginx-php-fpm:latest 24 name: dz-web 25 ports: 26 - containerPort: 900027 - containerPort: 8028 name: dz-web 29 volumeMounts: 30 - name: mysql-persistent-storage 31 mountPath: /var/www/html/ 32 volumes: 33 - name: mysql-persistent-storage 34 persistentVolumeClaim: 35 claimName: web-claim 36 [root@master nginx]# kubectl create -f web-dp.yaml 37 deployment.apps/dz-web created
1 [root@master nginx]# vim web-svc.yaml 2apiVersion: v1 3kind: Service 4metadata: 5 name: dz-web 6 labels: 7 app: discuz 8spec: 9 type: NodePort 10 ports: 11 - port: 8012 nodePort: 3000113 selector: 14 app: discuz 15 tier: nginx-php 16 [root@master nginx]# kubectl create -f web-svc.yaml 17 service/dz-web created
6:查看nginx的pod,svc信息
1[root@master nginx]# kubectl get pod,svc 2NAME READY STATUS RESTARTS AGE 3 pod/dz-mysql-787586b8d6-9kl5b 1/1 Running 1 38m 4 pod/dz-web-d4968cf8d-clppp 1/1 Running 0 3m37s 5 pod/nginx-7c45b84548-4998z 1/1 Running 2 20d 6 7 NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE 8 service/dz-mysql ClusterIP 10.68.235.35 <none> 3306/TCP 38m 9 service/dz-web NodePort 10.68.53.228 <none> 80:30001/TCP 11m 10 service/kubernetes ClusterIP 10.68.0.1 <none> 443/TCP 20d 11 service/nginx ClusterIP 10.68.241.175 <none> 80/TCP 20d
1 [root@master2 ~]# cd /data/ 2 [root@master2 data]# git clone https://gitee.com/ComsenzDiscuz/DiscuzX.git3 正克隆到 ‘DiscuzX‘... 4 remote: Counting objects: 9085, done. 5 remote: Compressing objects: 100% (5400/5400), done. 6 remote: Total 9085 (delta 3895), reused 8535 (delta 3632) 7 接收对象中: 100% (9085/9085), 12.96 MiB | 166.00 KiB/s, done. 8 处理 delta 中: 100% (3895/3895), done.
2:将Discuz项目中upload目录下所有文件,放到web中
1 [root@master2 data]# mv DiscuzX/upload/* k8s/web/ 2[root@master2 data]# cd k8s/web/ 3[root@master2 web]# chmod 100 data uc_server/data uc_client/data config
1 [root@master ~]# kubectl exec -it dz-mysql-787586b8d6-9kl5b -- mysql -u root -p 2Welcome to the MySQL monitor. Commands end with ; or \g. 3 Your MySQL connection id is 4 4 Server version: 5.7.28 MySQL Community Server (GPL) 5 6 Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. 7 8 Oracle is a registered trademark of Oracle Corporation and/or its 9affiliates. Other names may be trademarks of their respective 10owners. 1112 Type ‘help;‘ or ‘\h‘for help. Type ‘\c‘ to clear the current input statement. 1314 mysql> create database dz; 15 Query OK, 1 row affected (0.19 sec) 1617 mysql> grant all on dz.* to ‘dz‘@‘%‘ identified by ‘abc123‘; 18 Query OK, 0 rows affected, 1 warning (0.11 sec
4:浏览器访问web安装页面
实验成功
5:通过设置Nginx代理供外部访问
##目前nginx服务是运行在kubernetes集群里,node节点以及master节点上是可以通过cluster-ip访问到,但是外部的客户端就不能访问了。所以,可以在任意一台node或者master上建一个nginx反向代理即可访问到集群内的nginx。 kubectl get svc dz-web //查看cluster-ip,我的ip是10.68.235.35
nginx代理配置文件内容如下:
1server { 2 listen 80; 3 server_name dz.yuankeedu.com; 4 5 location / { 6 proxy_pass http://10.68.235.35; 7 proxy_set_header Host $host; 8 proxy_set_header X-Real-IP $remote_addr; 9 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 10 } 11 }
原文:https://www.cnblogs.com/douyi/p/12099701.html
内容总结
以上是互联网集市为您收集整理的kubernetes-部署LNMP环境运行Discuz全部内容,希望文章能够帮你解决kubernetes-部署LNMP环境运行Discuz所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。