环境准备:

ip 服务
192.168.2.10(server1) docker、k8s
192.168.2.20(server2) docker、k8s
192.168.2.30(server3) docker、k8s

k8s集群如何搭建

如果是刚开机的k8s集群的主机开机后启动服务(集群还是ready)

[root@server1 ~]# systemctl enable kubelet.service && systemctl start kubelet.service
[root@server1 ~]#  systemctl stop firewalld && systemctl start docker.service

开始我把防火墙都关了不然端口太多

systemctl stop firewalld

server1:pull所需要的mysql镜像

[root@server1 ~]# docker pull mysql:5.7
5.7: Pulling from library/mysql
8559a31e96f4: Pull complete
d51ce1c2e575: Pull complete
c2344adc4858: Pull complete
fcf3ceff18fc: Pull complete
16da0c38dc5b: Pull complete
b905d1797e97: Pull complete
4b50d1c6b05c: Pull complete
d85174a87144: Pull complete
a4ad33703fa8: Pull complete
f7a5433ce20d: Pull complete
3dcd2a278b4a: Pull complete
Digest: sha256:32f9d9a069f7a735e28fd44ea944d53c61f990ba71460c5c183e610854ca4854
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7

server1:pull所需要的nginx和php的整合镜像

[root@server1 ~]# docker pull richarvey/nginx-php-fpm
Using default tag: latest
latest: Pulling from richarvey/nginx-php-fpm
aad63a933944: Pulling fs layer
b61c449d5d91: Pulling fs layer
3fde16e1397a: Pulling fs layer
b1096698ab2a: Pulling fs layer
96de990b7ad3: Pulling fs layer
c280bfe25221: Pulling fs layer
02be9679a029: Pulling fs layer
01973f657634: Pulling fs layer
75924d0578e0: Pulling fs layer
7545938f30ed: Pull complete
267be130ac8a: Pull complete
5b9ce6473ee0: Pull complete
0cb267b5005b: Pull complete
0bbcede612f0: Pull complete
6f23dfb3d18c: Pull complete
363732275cc7: Pull complete
679aa7f9f360: Pull complete
d47507c4f094: Pull complete
17ba4fac2074: Pull complete
b16f52630a15: Pull complete
e8c7df728273: Pull complete
3b3bc6c69299: Pull complete
d0f1d1b1ad30: Pull complete
b8af2e53bd85: Pull complete
7e439df1bb98: Pull complete
f28361c951da: Pull complete
126a49c3e514: Pull complete
39838375a23b: Pull complete
1ca506cbf594: Pull complete
Digest: sha256:8b7c47b940fd79b5764ec12fdfbc7a1a198889316347963c9e9bd1aa78eec098
Status: Downloaded newer image for richarvey/nginx-php-fpm:latest
docker.io/richarvey/nginx-php-fpm:latest

NFS

server2下载nfs

[root@server1 ~]# yum -y install nfs-utils
[root@server2 ~]# mkdir -p /data/k8s/{web,db}
[root@server2 ~]# vim /etc/exports
[root@server2 ~]# cat /etc/exports
/data/k8s 192.168.2.0/24(rw,sync,no_root_squash)
[root@server2 ~]# exportfs -rv
exporting 192.168.2.0/24:/data/k8s
[root@server2 ~]# systemctl start nfs
[root@server2 ~]# systemctl enable nfs
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.

server1:

[root@server1 ~]# mkdir -p /home/k8s/lnmp/mysql
[root@server1 ~]# cd /home/k8s/lnmp/mysql
[root@server1 mysql]# kubectl create secret generic mysql-pass --from-literal=password=123.com
secret/mysql-pass created
[root@server1 mysql]# vim mysql-pv.yml
#内容:
apiVersion: v1
kind: PersistentVolume
metadata:name: mysql-pv
spec:capacity:storage: 10GiaccessModes:- ReadWriteManynfs:path: /data/k8s/dbserver: 192.168.2.20
[root@server1 mysql]# kubectl apply -f mysql-pv.yml
persistentvolume/mysql-pv created
[root@server1 mysql]# vim mysql-pvc.yml
#内容:apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: mysql-claimlabels:app: discuz
spec:accessModes:- ReadWriteManyresources:requests:storage: 10Gi[root@server1 mysql]# kubectl apply -f mysql-pvc.yml
persistentvolumeclaim/mysql-claim created
[root@server1 mysql]# vim mysql-dp.yml
#内容:
apiVersion: apps/v1
kind: Deployment
metadata:name: dz-mysqllabels:app: discuz
spec:selector:matchLabels:app: discuztier: mysqlstrategy:type: Recreatetemplate:metadata:labels:app: discuztier: mysqlspec:imagePullSecrets:- name: my-secretcontainers:- image: mysql:5.7name: mysqlenv:- name: MYSQL_ROOT_PASSWORDvalueFrom:secretKeyRef:name: mysql-passkey: passwordports:- containerPort: 3306name: dz-mysqlvolumeMounts:- name: mysql-persistent-storagemountPath: /var/lib/mysqlvolumes:- name: mysql-persistent-storagepersistentVolumeClaim:claimName: mysql-claim[root@server1 mysql]# kubectl apply -f mysql-dp.yml
deployment.apps/dz-mysql created
[root@server1 mysql]# vim mysql-svc.yml
#内容:
apiVersion: v1
kind: Service
metadata:name: dz-mysqllabels:app: discuz
spec:ports:- port: 3306selector:app: discuztier: mysql[root@server1 mysql]# kubectl apply -f mysql-svc.yml
service/dz-mysql created[root@server1 mysql]# kubectl get pv,pvc
NAME                        CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                 STORAGECLASS   REASON   AGE
persistentvolume/mysql-pv   10Gi       RWX            Retain           Bound    default/mysql-claim                           17mNAME                                STATUS   VOLUME     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
persistentvolumeclaim/mysql-claim   Bound    mysql-pv   10Gi       RWX                           8m6s
[root@server1 mysql]# vim web-pv.yml
#内容:
apiVersion: v1
kind: PersistentVolume
metadata:name: web-pv
spec:capacity:storage: 10GiaccessModes:- ReadWriteManynfs:path: /data/k8s/web server: 192.168.2.20[root@server1 mysql]# kubectl apply -f web-pv.yml
persistentvolume/web-pv created
[root@server1 mysql]# vim web-pvc.yml
#内容:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: web-claimlabels:app: discuz
spec:accessModes:- ReadWriteManyresources:requests:storage: 10Gi[root@server1 mysql]# kubectl apply -f web-pvc.yml
persistentvolumeclaim/web-claim created[root@server1 mysql]# vim web-dp.yml
#内容:
apiVersion: apps/v1
kind: Deployment
metadata:name: dz-weblabels:app: discuz
spec:replicas: 1selector:matchLabels:app: discuztier: nginx-phptemplate:metadata:labels:app: discuztier: nginx-phpspec:imagePullSecrets:- name: my-secretcontainers:- image: richarvey/nginx-php-fpmname: dz-webports:- containerPort: 9000- containerPort: 80name: dz-webvolumeMounts:- name: mysql-persistent-storagemountPath: /var/www/htmlvolumes:- name: mysql-persistent-storagepersistentVolumeClaim:claimName: web-claim
[root@server1 mysql]# kubectl apply -f web-dp.yml
deployment.apps/dz-web created[root@server1 mysql]# vim web-svc.yml
#内容:
apiVersion: v1
kind: Service
metadata:name: dz-weblabels:app: discuz
spec:type: NodePortports:- port: 80nodePort: 30001selector:app: discuztier: nginx-php
[root@server1 mysql]# kubectl apply -f web-svc.yml
service/dz-web created#如果下一步操作显示0/1别着急先往下做(等3-5分钟即可)
[root@server1 mysql]# kubectl get pod -o wide
NAME                        READY   STATUS             RESTARTS   AGE     IP            NODE      NOMINATED NODE   READINESS GATES
dz-mysql-5dcd86b5c8-qgqbm   1/1     Running            0          22m     10.244.1.24   server2   <none>           <none>
dz-web-68959dc478-879qr     1/1     Running            0          6m43s   10.244.2.28   server3   <none>           <none>[root@server1 mysql]# kubectl get pv,pvc
NAME                        CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                 STORAGECLASS   REASON   AGE
persistentvolume/mysql-pv   10Gi       RWX            Retain           Bound    default/mysql-claim                           33m
persistentvolume/web-pv     10Gi       RWX            Retain           Bound    default/web-claim                             11mNAME                                STATUS   VOLUME     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
persistentvolumeclaim/mysql-claim   Bound    mysql-pv   10Gi       RWX                           23m
persistentvolumeclaim/web-claim     Bound    web-pv     10Gi       RWX                           5m22s

server2:

[root@server2 data]#  git clone https://gitee.com/ComsenzDiscuz/DiscuzX.git
[root@server2 data]# mv DiscuzX/upload/* k8s/web/
[root@server2 data]# ls
DiscuzX  k8s
[root@server2 data]# cd k8s/web
[root@server2 web]# ls
admin.php        data         m           source
api              favicon.ico  member.php  static
api.php          forum.php    misc.php    template
archiver         group.php    plugin.php  uc_client
config           home.php     portal.php  uc_server
connect.php      index.php    robots.txt
crossdomain.xml  install      search.php
[root@server2 web]# chmod -R 777 /data/k8s/web/

server1:

[root@server1 mysql]# kubectl get pod -o wide
NAME                        READY   STATUS             RESTARTS   AGE   IP            NODE      NOMINATED NODE   READINESS GATES
dz-mysql-5dcd86b5c8-qgqbm   1/1     Running            0          40m   10.244.1.24   server2   <none>           <none>
dz-web-68959dc478-879qr     1/1     Running            0          24m   10.244.2.28   server3   <none>           <none>
[root@server1 mysql]# kubectl exec -it dz-mysql-5dcd86b5c8-qgqbm -- mysql -uroot -p123.com
mysql> create database hy;
Query OK, 1 row affected (0.00 sec)mysql> grant all on hy.* to 'hy'@'%' identified by '123.com';
Query OK, 0 rows affected, 1 warning (0.01 sec)mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)mysql> exit
Bye

验证:IP:30001
下面的步骤跟着走就行了!







docker部署Discuz论坛相关推荐

  1. 部署LAMP动静分离以及部署Discuz论坛

    通过LAMP平台部署及应用 已经可以部署出LAMP平台,来面对客户端的请求,但是由于这些组件都是在一台服务器上进行安装,如果出现问题,将导致LAMP平台的瘫痪.在实际环境中,不可能将LAMP平台都部署 ...

  2. 部署(Discuz!论坛系统) 建论坛库

    1.配置 IP 地址 步骤命令:虚拟机操作     2.init 5     3.nm-c     4.192.168.4.50    5.nmc conn up eth0    6.IDE磁盘连接小 ...

  3. 运维之道 | 基于 LAMP 环境部署 Discuz 论坛

    基于 LAMP 环境部署 Discuz 论坛 LAMP环境部署 一.基于VMware虚拟机部署Centos系统 [root@localhost ~]# cat /etc/redhat-release ...

  4. 三:LAMP平台部署Discuz 论坛

    一:部署Discuz  论坛信息 <1>:rz    #上传    注:安装包自己下载吧. <2>:unzip ComsenzDiscuz-DiscuzX-master.zip ...

  5. 部署discuz论坛

    部署discuz论坛 1.动态站点所需的网站架构LAMP LAMP Linux + Apache + MySQL + PHP Linux:提供系统服务 Apache:提供服务器程序 MySQL:提供数 ...

  6. 简单部署discuz论坛和phpwind论坛

    简单部署discuz论坛和phpwind论坛 前言 操作步骤 一.下载phpstudy 二.下载discuz和phpwind 三.部署到phpstudy 总结 前言 最近在学习loadrunner和j ...

  7. Linux云计算架构-使用LNMP架构部署Discuz论坛

    文章目录 Linux云计算架构-使用LNMP架构部署Discuz论坛 1. 配置LNMP环境 2. 安装Discuz_X3.4 Linux云计算架构-使用LNMP架构部署Discuz论坛 1. 配置L ...

  8. 用docker搭建discuz论坛

    使用Discuz和数据库容器搭建论坛服务. [root@zzz ~]# docker search discuz #查找有无discuz镜像 NAME DESCRIPTION STARS OFFICI ...

  9. LAMP平台--部署Discuz论坛

    环境:为了推广公司的产品并为客户服务提供一个交流平台,公司购买了一套Discuz论坛系统,要求安装到现有的LAMP服务器中,并简单划分论坛版块. 需求:部署论坛服务器,安装Discuz论坛系统 添加新 ...

最新文章

  1. 梯度中心化,一行代码加速训练并提升泛化能力
  2. 单链表的插入和删除_从0开始的编程之梦——数据结构之单链表的基本运算
  3. 傲腾内存 可以用ghost系统_玩机小贴士:Intel傲腾内存你用过没有?
  4. 程序员远程办公需要面临哪些挑战?
  5. Undefined control sequence. \makecover
  6. java lang jar_在运行时,Java jar返回java.lang.NoClassDefFoundError
  7. mysql主从复制同步实验_db.mysql.主从同步实验
  8. 【数据结构笔记18】堆中的路径与C实现(堆元素到根的路)径)
  9. C3P0与DBCP数据库连接池的区别,阿里的Druid数据源配置入门
  10. ASP.NET 性能监控工具和优化技巧
  11. 《推荐系统实践》算法纯享(附代码链接)(三)—— 冷启动篇
  12. centos7安装snort的九九八十一难!
  13. 最全教程:微信小程序开发入门详解
  14. L2-029 特立独行的幸福 (递归) 有代码详细解析
  15. LeetCode 0799. 香槟塔
  16. 数据挖掘➡谈谈为什么学?
  17. html静态页面兼职,兼职.html · teayork/master - Gitee.com
  18. 剑指offe面试题19——正则表达式匹配
  19. 百度云视频 在线倍速播放
  20. 几种常见的通信系统抗衰落技术

热门文章

  1. 机电一体化T6113电气控制系统的设计(论文+DWG图纸)
  2. 一文搞懂各种架构(业务架构、应用架构、数据架构...
  3. 市场的结构,各种投资方法的此消彼长,没有所谓圣杯
  4. Spring报错 conflicts with existing, non-compatible bean definition of same name and class
  5. PHP5.4 如何连接MS Sql Server
  6. oracle下载,windows版本的oracle数据库下载
  7. centos7下jenkins部署应用程序
  8. split-horizon产生的路由欺骗
  9. 瑞泰口腔黄远亮院长应邀出席第十二次全国口腔种植学术大会
  10. 思科模拟器CISCO/华为模拟器ENSP配置一个完整的校园网(网络安全、数据冗余)