概述
通过PAI工具进行远端 Kubernetes 中的应用进行部署,执行过程为:
- 根据项目名称拉取代码
- 执行Maven对代码进行编译打包成Jar包
- 根据项目源代码中的Dockerfile对项目进行打包生成Docker镜像
- 把Docker镜像推送到Harbor仓库
- 通过项目源代码中的
Deployment.yaml
及Service.yaml
进行应用、服务部署
6.1 通过指定命名空间部署除了会指定K8S命名空间还会覆盖nacos的注册发现命名空间,但不会覆盖nacos配置的命名空间
6.2 如果部署服务指定了命名空间,删除服务时也须指定命名空间,请谨慎执行
6.3 如果未指定命名空间将根据工程文件配置部署和删除
6.4 指定的命名空间必须是已经在K8S和nacos创建的命名空间
Deployment.yaml
apiVersion: apps/v1 //接口版本
kind: Deployment //接口类型
metadata:
name: pai-example //Deployment名称
labels:
app: pai-example //标签
namespace: tt //命名空间
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: tt
labels:
app: pai-example
ingress: service //主要决定在k8s上的入口
spec:
type: NodePort //配置NodePort,外部流量可访问看k8s中的服务
ports:
- port: 8080 //服务访问端口
targetPort: 8080 //容器端口
selector:
app: pai-example
部署代码
操作示例
1.将工程部署到Kubernetes
在这里我们以后端工程为例,利用PAI工具进行部署。利用 pai deploy service -n pai-demo
命令部署。
注意:
1.通过PAI工具创建的工程不需要指定git地址,只有外部项目才需要指定git地址。
2.部署工程不需要切换到工程所在目录。
语法:
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 service -n pai-demo -N 命名空间
部署前端工程
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仓库用户名
pai deploy front -n pai-demo -N 命名空间
上传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仓库用户名
pai deploy data -n pai-demo -N 命名空间
部署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 docker -n pai-demo -N 命名空间
部署物联协议工程
pai deploy protocol -n pai-demo -i 132039413923
发布微应用
pai deploy microapp #根据当前目录的pages.json发布
2. 查询Kubernetes应用列表
语法:
pai pods [参数]
参数:
-h,--help 使用帮助
-N,--namespace <arg> 命名空间
-l,--app-label <arg> 标签名称(metadata.labels.app的值)
示例:
pai pods -N demo
pai pods -N demo -l pai-demo
3. 查询Kubernetes服务列表
语法:
pai services [参数]
参数:
-h,--help 使用帮助
-N,--namespace <arg> 命名空间
-l,--app-label <arg> 标签名称(metadata.labels.app的值)
示例:
pai services -N demo
pai services -N demo -l pai-demo
4. 读取Kubernetes应用日志
语法:
pai logs [参数]
参数:
-h,--help 使用帮助
-p,--pod <arg> Pod应用名称
-N,--namespace <arg> 命名空间
5. 将工程从Kubernetes删除
语法:
pai delete [参数]
参数:
-h,--help 使用帮助
-n,--name <arg> 工程名称
-r,--repository <arg> Git仓库URL
-u,--username <arg> Git仓库账号
-p,--password <arg> Git仓库密码
-m,--module <arg> Git仓库子模块(用于前后端在同一个工程中指定实际子目录)
--clean 清除历史代码
示例:
pai delete -n pai-demo
pai delete -n pai-demo -m pai-demo/demo-web
pai delete -n pai-demo -r Git仓库地址 -u Git仓库用户名
pai delete -n pai-demo -N 命名空间
文档更新时间: 2021-11-02 18:32 作者:伍润源