kubernetes集群部署mall-swarm开源微服务商城(一)

一、下载源码

项目地址:https://gitee.com/macrozheng/mall

参考文章:

  1. mall学习教程 - WorldLink资源网
  2. mall-swarm项目后端开发环境搭建 | mall-swarm学习教程
  3. 在kubernetes上部署mall-swarm微服务项目 - 麦子稻草
  4. https://github.com/mairoot/kubernetes/tree/main

二、准备环境

1、主机

OSVersionComment
CentOs Linux7.9/20094核4g
CentOs Linux7.9/20094核4g
CentOs Linux7.9/20094核4g

   为了测试部署,这里去掉了ELK架构

2、基础服务

    mysql 结构化数据库

    redis  键值对缓存存储

    mongodb 非结构化文件存储

    nfs服务

三、mall-swarm架构

四、基础服务部署

 使用nfs作为持久卷

1.k8s内部安装nfs驱动

https://github.com/kubernetes-csi/csi-driver-nfs

1.解压
2.替换加速器地址
[csi-driver-nfs-4.9.0]#sed -i 's#registry.k8s.io#k8s.m.daocloud.io#g' deploy/v4.9.0/*.yaml
3.安装
[csi-driver-nfs-4.9.0]#./deploy/install-driver.sh v4.9.0 local

4.查看nf控制器状态
# kubectl -n kube-system get pod -o wide -l app=csi-nfs-controller
# kubectl -n kube-system get pod -o wide -l app=csi-nfs-node

5.mster上部署nfs服务
# yum install -y nfs-utils rpcbi
# mkdir -p /data/nfs
# chown -R nfsnobody:nfsnobody /data/nfs/
# vim /etc/exports
/data/nfs *(rw,no_subtree_check,sync)
# systemctl enable --now rpcbind
# exportfs -v

6.创建存储类型sc
# vim nfs-sc.yaml
kind: StorageClass
metadata:
  name: nfs-sc   # 此处指定了csidrivers的名称
provisioner: nfs.csi.k8s.io
parameters:
  # NFS的Server
  server: 192.168.200.2
  # NFS的存储路径
  share: /data/nfs
reclaimPolicy: Delete
volumeBindingMode: Immediate
mountOptions:
  - nfsvers=4.1

# kubectl apply -f nfs-sc.yaml

7.创建pvc
# vim nfs-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfs-pvc
  namespace: dev
spec:
  accessModes:
    - ReadWriteMany
  storageClassName: nfs-cs
  resources:
    requests:
      storage: 1Gi

# kubectl apply -f nfs-pvc.yaml
# kubectl -n dev get pvc
# ls /data/nfs/

8.修改nginx configmap,使用nfs存储站点数据
# vim nginx-configmap.yaml
apiVersion: v1
kind: Namespace
metadata:
  name: dev

---

apiVersion: v1
kind: ConfigMap
metadata:
  name: nginx-conf
  namespace: dev
data:
  nginx.conf: |
    server {
        listen 8080;
        listen 443 ssl;

        server_name www.web01.com;
        ssl_certificate /etc/nginx/tls/tls.crt;
        ssl_certificate_key /etc/nginx/tls/tls.key;

        port_in_redirect off;

        location /hostpath {
            alias /usr/share/nginx/html;
            index index.html index.htm;
        }

        location /localpv {
            alias /usr/share/nginx/localpv;
            index index.html index.htm;
        }

        location /nfspv {
            alias /usr/share/nginx/nfspv;
            index index.html index.htm;
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
            root /usr/share/nginx/html;
        }
    }

# kubectl apply -f nginx-configmap.yaml

mysql服务

需要修改限制资源(自行修改)

将sql放入存储的pvc路径里

进入pod并导入数据库

redis服务

限制资源

mongodb服务

containers:
      - name: mongodb
        image: mongo:4.2.1
        command:
        - sh
        - -c
        - "exec mongod -f /mongodb/conf/mongodb.conf"
        imagePullPolicy: IfNotPresent
        resources:
          limits:
            cpu: "500m"
            memory: "128Mi"
          requests:
            cpu: "100m"
            memory: "128Mi"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值