# 尚医通项目上云

# 1、项目架构

img

yygh-parent
|---common                                  //通用模块
|---hospital-manage                         //医院后台				[9999]   
|---model																		//数据模型
|---server-gateway													//网关    				[80]
|---service																	//微服务层
|-------service-cmn													//公共服务				[8202]
|-------service-hosp												//医院数据服务		[8201]
|-------service-order												//预约下单服务		[8206]
|-------service-oss													//对象存储服务		[8205]
|-------service-sms													//短信服务				[8204]
|-------service-statistics									//统计服务				[8208]
|-------service-task												//定时服务				[8207]
|-------service-user												//会员服务				[8203]


====================================================================

yygh-admin																	//医院管理后台		[9528]
yygh-site																		//挂号平台				[3000]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# 2、中间件

中间件 集群内地址 外部访问地址
Nacos his-nacos.his:8848 http://139.198.165.238:30349/ (opens new window)nacos
MySQL his-mysql.his:3306 139.198.165.238 (opens new window):31840
Redis his-redis.his:6379 139.198.165.238 (opens new window):31968
Sentinel his-sentinel.his:8080 http://139.198.165.238:31523/
MongoDB mongodb.his:27017 139.198.165.238 (opens new window):32693
RabbitMQ rabbitm-yp1tx4-rabbitmq.his:5672 139.198.165.238 (opens new window):30375
ElasticSearch his-es.his:9200 139.198.165.238 (opens new window):31300

# 3、流水线

# 1、项目地址

https://gitee.com/leifengyang/yygh-parent

https://gitee.com/leifengyang/yygh-admin

https://gitee.com/leifengyang/yygh-site

# 2、项目默认规则

  • 每个微服务项目,在生产环境时,会自动获取 微服务名-prod.yml 作为自己的核心配置文件
  • 每个微服务项目,在生产环境时,默认都是使用 8080 端口

# 3、生产与开发配置隔离

# 4、deploy.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: service-cart
  name: service-cart
  namespace: his   #一定要写名称空间
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  selector:
    matchLabels:
      app: service-cart
  strategy:
    rollingUpdate:
      maxSurge: 50%
      maxUnavailable: 50%
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: service-cart
    spec:
      imagePullSecrets:
        - name: aliyun-docker-hub  #提前在项目下配置访问阿里云的账号密码
      containers:
        - image: $REGISTRY/$ALIYUNHUB_NAMESPACE/service-cart
          readinessProbe:
            httpGet:
              path: /actuator/health
              port: 8080
            timeoutSeconds: 10
            failureThreshold: 30
            periodSeconds: 5
          imagePullPolicy: Always
          name: app
          ports:
            - containerPort: 8080
              protocol: TCP
          resources:
            limits:
              cpu: 300m
              memory: 600Mi
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      terminationGracePeriodSeconds: 30
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: service-cart
  name: service-cart
  namespace: his
spec:
  ports:
    - name: http
      port: 8080
      protocol: TCP
      targetPort: 8080
  selector:
    app: service-cart
  sessionAffinity: None
  type: ClusterIP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66

# 4、devops实战

# 1、修改maven让他从阿里云下载镜像

# 2、缓存机制

已经下载过的jar包,下一次流水线的启动,不会重复下载

# 3、部署到k8s集群

  • 给每一个微服务准备一个 deploy.yaml(k8s的部署配置文件)

  • 执行以下步骤

    • img
  • 传入 deploy.yaml 的位置就能部署

    • kubectl apply -f xxxx
  • 一定在项目里面(his,不是流水线项目),找到配置--密钥,配置一个阿里云的访问账号密码

    • img

# 4、前端项目

# 1、yygh-admin

  • npm run build 会生成dist目录,放到nginx的html下,即可运行

# 2、yygh-site

  • npm install --registry=https://registry.npm.taobao.org 安装项目依赖

  • npm run build 对项目打包,

  • 打包完成后把 .nuxt ,static, nuxt.config.js, package.json 这四个关键文件复制到 node环境。先npm install再使用npm run start 即可运行

# 3、思考

  • admin的镜像和site的镜像大小为何差距那么大?

    • 如何对镜像进行瘦身?

# 5、webhook

  • 1、每个项目,都有流水线文件

  • 2、每次修改完项目,手动点击运行

  • 3、希望,每次修改完项目,代码推送,流水线能自动运行

    • 写代码并提交------> gitee ---------> 给指定的地方发请求(webhook)------> kubesphere平台感知到 -----> 自动启动流水线继续运行
    • http://139.198.165.238:30880/devops_webhook/git/?url=https://gitee.com/leifengyang/yygh-admin.git
上次更新: 2021/10/27 12:19:23