kubernetes 部署 lnmp+discuz

###在kubernetes中搭建LNMP环境,并安装Discuzx

本实验,需要已经搭建好kubernetes集群和harbor服务。

首先克隆本项目:git clone https://github.com/donxan/k8s_lnmp_discuzx.git

下载镜像
docker pull mysql:5.7
docker pull richarvey/nginx-php-fpm
用dockerfile重建nginx-php-fpm镜像
cd k8s_discuz/dz_web_dockerfile/
docker build -t nginx-php .
将镜像push到harbor
##登录harbor,并push新的镜像
docker login harbor.abcgogo.com  //输入正确的用户名和密码,如果之前已创建secret,就可以免输入密码
docker tag nginx-php  harbor.abcgogo.com/lnmp/nginx-php
docker push harbor.abcgogo.com/lnmp/nginx-php
docker tag mysql:5.7 harbor.abcgogo.com/lnmp/mysql:5.7
docker push harbor.abcgogo.com/lnmp/mysql:5.7
搭建NFS

可以参考以下:

假设kubernetes集群网段为192.168.2.0/24,本机IP为192.168.2.10

  • 安装包
    yum install nfs-utils
  • 编辑配置文件
    vim /etc/exportfs  //内容如下
    /data/k8s/ 192.168.2.0/24(sync,rw,no_root_squash)
  • 启动服务
    systemctl start nfs
    systemctl enable nfs
  • 创建目录
    mkdir -p  /data/k8s/discuz/{db,web}

    注意db,web的属主,db999,web 100.

搭建MySQL服务
  • 创建secret (设定mysql的root密码)
    kubectl create secret generic mysql-pass --from-literal=password=DzPasswd1
  • 创建pv
    cd ../../k8s_discuz/mysql
    kubectl apply -f mysql-pv.yaml
  • 创建pvc
    kubectl apply -f mysql-pvc.yaml
  • 创建deployment
    kubectl apply -f mysql-dp.yaml 
  • 创建service
    kubectl apply -f mysql-svc.yaml
搭建Nginx+php-fpm服务

注意搭建步骤,在部署mysql时,不能deploy,svc一起执行,需要一步一步来操作。

  • 搭建pv
    cd ../../k8s_discuz/nginx_php
    kubectl apply -f web-pv.yaml
  • 创建pvc
    kubectl apply -f web-pvc.yaml
  • 创建deployment
    kubectl apply -f web-dp.yaml 
  • 创建service
    kubectl apply -f web-svc.yaml
    安装Discuz
  • 下载dz代码 (到NFS服务器上)
    cd /tmp/
    git clone https://gitee.com/ComsenzDiscuz/DiscuzX.git
    cd /data/k8s/discuz/web/
    mv /tmp/DiscuzX/upload/* .
    chown -R 100 data uc_server/data/ uc_client/data/ config/
  • 设置MySQL普通用户

    kubectl get svc dz-mysql //查看service的cluster-ip,我的是10.68.122.120
    mysql -uroot -h10.68.122.120 -pDzPasswd1  //这里的密码是在上面步骤中设置的那个密码
    > create database dz;
    > grant all on dz.* to 'dz'@'%' identified by 'dz-passwd-123';
    部署traefik ingress
    cd ../../k8s_discuz/nginx_php
    kubectl apply -f web-ingress.yaml

    kubernetes 部署 lnmp+discuz
    如果没有部署ingress,可以使用安装nginx,配置nginx反向代理。
    参考如下。

  • 设置Nginx代理

    
    注意:目前nginx服务是运行在kubernetes集群里,node节点以及master节点上是可以通过cluster-ip访问到,但是外部的客户端就不能访问了。
      所以,可以在任意一台node或者master上建一个nginx反向代理即可访问到集群内的nginx。
    kubectl get svc dz-web //查看cluster-ip,我的ip是10.68.190.99
    nginx代理配置文件内容如下:
    server {
            listen 80;
            server_name dz.abcgogo.com;
    
            location / {
                proxy_pass      http://10.68.190.99:80;
                proxy_set_header Host   $host;
                proxy_set_header X-Real-IP      $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }

做完Nginx代理,就可以通过node的IP来访问discuz了。



#### 安装Discuz

按照提示配置即可。
![](https://s1.51cto.com/images/blog/201901/20/c7474ceeaca14303513c3d953aa1b295.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

转载于:https://blog.51cto.com/m51cto/2344819

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
部署LNMP Redis 是一种常见的配置,在以下的点上,我将提供一个简单的指南来帮助部署LNMP Redis。 首先,确保您已经安装了Linux操作系统。您可以选择Ubuntu、CentOS等。 其次,安装Nginx(N)是部署LNMP堆栈的第一步。您可以通过运行适应您操作系统的命令来安装Nginx。例如,在Ubuntu上,您可以使用以下命令: ``` sudo apt-get update sudo apt-get install nginx ``` 然后,您需要安装MySQL(M)来处理数据库请求。您可以使用以下命令在Ubuntu上安装MySQL: ``` sudo apt-get install mysql-server ``` 接下来是PHP(P)的安装。LNMPPHP是用于处理后端逻辑的脚本语言。在Ubuntu上,您可以使用以下命令来安装PHP: ``` sudo apt-get install php-fpm php-mysql ``` 现在,您已经安装了LNMP堆栈所需的所有组件。 接下来,我们需要安装Redis。Redis是内存数据库,用于高效地处理数据读写。您可以通过以下命令在Ubuntu上安装Redis: ``` sudo apt-get install redis-server ``` 安装完Redis后,您可以通过编辑配置文件来进行必要的更改。配置文件的位置可能会有所不同,但通常在 `/etc/redis/redis.conf` 。 确保在配置文件设置了适当的权限和安全性设置,例如允许远程连接、设置密码等。 完成以上步骤后,您需要重新启动相应的服务,使更改生效。您可以使用以下命令: ``` sudo service nginx restart sudo service mysql restart sudo service php-fpm restart sudo service redis-server restart ``` 然后,您可以通过访问nginx默认的HTML页面,确保Nginx和PHP已经正确安装。 总结:部署LNMP Redis可以通过依次安装Nginx、MySQL、PHP和Redis来实现。确保适当配置和启动相应的服务后,您可以通过访问网页来检查是否成功部署
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值