部署工程

一、应用部署

通过pai进行远端 Kubernetes 中的应用进行部署,执行过程为:

  1. 根据项目名称拉取代码
  2. 执行Maven对代码进行编译打包成Jar包
  3. 根据项目源代码中的Dockerfile对项目进行打包生成Docker镜像
  4. 把Docker镜像推送到Harbor仓库
  5. 通过项目源代码中的Deployment.yamlService.yaml进行应用、服务部署

Deployment.yaml

apiVersion: apps/v1  //接口版本
kind: Deployment    //接口类型
metadata:
  name: pai-example    //Deployment名称
  labels:
    app: pai-example  //标签
  namespace: test     //命名空间
spec:
  replicas: 1
  selector:        //选择器
    matchLabels:
      app: pai-example //匹配 pod标签
  template:    //pod模板
    metadata:  //pod元数据
      labels:
        app: pai-example  //pod模板名称标签,必填
    spec:    //定义容器模板,该模板可以包含多个容器
      containers:
        - name: pai-example
          image: //镜像地址
          args:
            - --spring.profiles.active=test
          imagePullPolicy: Always
          ports:
            - containerPort: 8080 //对service暴露端口
      imagePullSecrets:
        - name: login

Service.yaml

apiVersion: v1
kind: Service
metadata:
  name: pai-example
  namespace: test
  labels:
    app: pai-example
    ingress: service //主要决定在K8S上的入口,service: http://pai.flyrise.cn/工程名-api
spec:
  type: NodePort //配置NodePort,外部流量可访问k8s中的服务
  ports:
    - port: 8080   //服务访问端口
      targetPort: 8080  //容器端口
  selector:
    app: pai-example

二、如何部署

首先我们需要将工程 pushgit上,才能进行对工程的部署S。部署工程是通过pai将工程部署到Kubernetes上。

1、通过pai查询部署帮助

D:\home\pai-example>pai deploy -h

Found D:\pai\pai-cli\.pai\wrapper\pai-wrapper.jar

将工程部署到Kubernetes
  外部工程可通过Git相关参数进行下载,将不根据工程名称去找相应资源下载,但要需注工程名称将被视为Docker镜像名称
  需先登录开发者账号

语法:
pai deploy <命令> [参数]

命令:
 service            部署后端工程
 front              部署前端工程
 micro              上传APP小程序
 data               部署数据中台工程
 docker             部署Docker工程
 protocol           部署物联协议工程
 microapp           发布微应用

参数:
 -h,--help   使用帮助

示例:
部署后端工程
 pai deploy service -n pai-demo
 pai deploy service -n pai-demo --restart
 pai deploy service -n pai-demo -m pai-demo/pai-demo-ui {}
 pai deploy service -n pai-demo -r Git仓库地址 -u Git仓库用户名

部署前端工程
 pai deploy front -n pai-demo
 pai deploy front -n pai-demo --restart
 pai deploy front -n pai-demo -m pai-demo/pai-demo-ui {}
 pai deploy front -n pai-demo -r Git仓库地址 -u Git仓库用户名

上传APP小程序
 pai deploy micro -n pai-demo -t d:\work\__UNI__3D0884F.wgt -v 1.0.0

部署数据中台工程
 pai deploy data -n pai-demo
 pai deploy data -n pai-demo --restart
 pai deploy data -n pai-demo -m pai-demo/pai-demo-ui {}
 pai deploy data -n pai-demo -r Git仓库地址 -u Git仓库用户名

部署Docker工程
 pai deploy docker -n pai-demo
 pai deploy docker -n pai-demo --restart
 pai deploy docker -n pai-demo -m pai-demo/pai-demo-ui {}
 pai deploy docker -n pai-demo -r Git仓库地址 -u Git仓库用户名

部署物联协议工程
 pai deploy protocol -n pai-demo -i 132039413923

发布微应用
 pai deploy microapp  #根据当前目录的pages.json发布

2、部署后端项目

D:\home\pai-example>pai deploy -n pai-example
小π 正在努力中,请耐心等待哦......

pai-uims应用已部署到Kubernetes(Deployment + Service)

3、查询部署后的Kubernetes中的应用列表

D:\home\pai-example>pai pods -N test


Found D:\pai\pai-cli\.pai\wrapper\pai-wrapper.jar
 NAME                                              READY  STATUS   RESTARTS  AGE
 pai-example-7c5476fb66-pc579                      1/1    Running  0         1天5小时34分31秒
 pai-form-generator-57b48b566d-s8l4s               1/1    Running  0         21天6小时5分16秒

我们从中pai-example-7c5476fb66-pc579 1/1 Running可以看到我们的项目已经部署成功,并且状态是正常Running中

4、访问

打开即可看到上线的项目,pai-工程名称-ui
API 文档入口为:http://pai.flyrise.cn/工程名-api/doc.html

三、查询应用日志

1、先查询应用列表

D:\home\pai-example>pai pods -N test


Found D:\pai\pai-cli\.pai\wrapper\pai-wrapper.jar
 NAME                                              READY  STATUS   RESTARTS  AGE
 pai-example-7c5476fb66-pc579                      1/1    Running  0         1天5小时34分31秒
 pai-form-generator-57b48b566d-s8l4s               1/1    Running  0         21天6小时5分16秒

2、查询日志

拿到应用列表的name值,作为查询日志的参数

D:\home\pai-example>pai logs -p  pai-example-7c5476fb66-pc579  -N test
Found D:\pai\pai-cli\.pai\wrapper\pai-wrapper.jar
小π 正在努力中,请耐心等待哦......
22:04:27.940 [com.alibaba.nacos.client.Worker.longPolling.fixed-8.129.13.162_8848-b8d5843e-c53f-4526-bfd4-9765f14f40c0] INFO  c.a.n.c.c.i.ClientWorker[0] - [run,522] - get changedGroupKeys:[]
22:04:57.444 [com.alibaba.nacos.client.Worker.longPolling.fixed-8.129.13.162_8848-b8d5843e-c53f-4526-bfd4-9765f14f40c0] INFO  c.a.n.c.c.i.ClientWorker[0] - [run,522] - get changedGroupKeys:[]
22:05:26.948 [com.alibaba.nacos.client.Worker.longPolling.fixed-8.129.13.162_8848-b8d5843e-c53f-4526-bfd4-9765f14f40c0] INFO  c.a.n.c.c.i.ClientWorker[0] - [run,522] - get changedGroupKeys:[]
22:05:56.452 [com.alibaba.nacos.client.Worker.longPolling.fixed-8.129.13.162_8848-b8d5843e-c53f-4526-bfd4-9765f14f40c0] INFO  c.a.n.c.c.i.ClientWorker[0] - [run,522] - get changedGroupKeys:[]
22:06:25.956 [com.alibaba.nacos.client.Worker.longPolling.fixed-8.129.13.162_8848-b8d5843e-c53f-4526-bfd4-9765f14f40c0] INFO  c.a.n.c.c.i.ClientWorker[0] - [run,522] - get changedGroupKeys:[]
22:06:55.460 [com.alibaba.nacos.client.Worker.longPolling.fixed-8.129.13.162_8848-b8d5843e-c53f-4526-bfd4-9765f14f40c0] INFO  c.a.n.c.c.i.ClientWorker[0] - [run,522] - get changedGroupKeys:[]
22:07:24.964 [com.alibaba.nacos.client.Worker.longPolling.fixed-8.129.13.162_8848-b8d5843e-c53f-4526-bfd4-9765f14f40c0] INFO  c.a.n.c.c.i.ClientWorker[0] - [run,522] - get changedGroupKeys:[]

日志的简要介绍

通过对每个服务节点以关键字信息筛选项目在运行时控制台所输出的信息进行收集,每次通过pai查询应用日志,都会显示其中最新的100条信息。

四、删除部署

1、删除后端工程应用

通过pai进行远端 Kubernetes 中的应用进行删除,执行过程为:

  • 根据项目名称拉取代码
  • 通过项目源代码中的Deployment.yamlService.yaml进行应用、服务删除
D:\home\pai-example>pai delete -n pai-example
pai-uims应用已从Kubernetes中删除(Deployment + Service
文档更新时间: 2024-03-25 11:23   作者:姚连洲