> 文章列表 > 部署环境从docker swarm迁移到k8s后kie-server的发布方式变化(二)

部署环境从docker swarm迁移到k8s后kie-server的发布方式变化(二)

部署环境从docker swarm迁移到k8s后kie-server的发布方式变化(二)

正如后来的考虑, 如果外接maven私库照理说是ok的, 这样去掉volume的设计整个流程更加的自动化标准化.
开搞

第一步先部署一个nexus

yaml文件如下:

apiVersion: v1
kind: Namespace
metadata:name: nexus---apiVersion: v1
kind: Service
metadata:labels:k8s-app: nexusname: nexusnamespace: nexus
spec:type: NodePortports:- port: 8081targetPort: 8081nodePort: 30003selector:k8s-app: nexus---apiVersion: apps/v1
kind: Deployment
metadata:labels:k8s-app: nexusname: nexusnamespace: nexus
spec:replicas: 1revisionHistoryLimit: 10selector:matchLabels:k8s-app: nexustemplate:metadata:labels:k8s-app: nexusspec:nodeName: ltwwapp01containers:- name: nexusimage: sonatype/nexus3imagePullPolicy: Alwaysports:- containerPort: 8081protocol: TCPenv:# 冒号后面必须加空格- name: TZvalue: "Asia/Shanghai"

注意这里加了环境变量, 是必须加空格的, 不然读取失败.
然后惯例,把oracle的jar包手动上传. 不赘述,怎么用之前的文章也说过

第二步,把要验证的项目deploy到nexus

然后把workbench里的项目 git clone到自己本地, 然后修改maven的setting.xml,主要是如下几处,之前应该也说过
部署环境从docker swarm迁移到k8s后kie-server的发布方式变化(二)
然后执行 mvn deploy,jar就发布到远程库了
部署环境从docker swarm迁移到k8s后kie-server的发布方式变化(二)

第三步 删掉原来的ks,新弄一个连接nexus的ks

kubectl delete namespace kie-server-alone
然后新的yaml如下

apiVersion: v1
kind: Namespace
metadata:name: kie-server-nexus---apiVersion: v1
kind: Service
metadata:labels:k8s-app: kie-server-nexusname: kie-server-nexusnamespace: kie-server-nexus
spec:type: NodePortports:- port: 8080targetPort: 8080nodePort: 30002selector:k8s-app: kie-server-nexus---apiVersion: apps/v1
kind: Deployment
metadata:labels:k8s-app: kie-server-nexusname: kie-server-nexusnamespace: kie-server-nexus
spec:replicas: 1revisionHistoryLimit: 10selector:matchLabels:k8s-app: kie-server-nexustemplate:metadata:labels:k8s-app: kie-server-nexusspec:nodeName: ltwwapp01containers:- name: kie-server-nexusimage: quay.io/kiegroup/kie-server-showcase:latestimagePullPolicy: Alwaysports:- containerPort: 8080protocol: TCPenv:- name: KIE_MAVEN_REPOvalue: "http://172.16.251.151:30003/repository/maven-public/"- name: KIE_MAVEN_REPO_USERvalue: "admin"- name: KIE_MAVEN_REPO_PASSWORDvalue: "123456789admin"- name: TZ  value: "Asia/Shanghai"

然后进入这个全新的ks ,仅把ks xx.xml改了, 然后重启wildfly,
然后postman验证
部署环境从docker swarm迁移到k8s后kie-server的发布方式变化(二)
完美.

这样就很好了,少掉维护volume, 所有pod统一使用nexus,后续的发布流程只需要正常的开发, mvn deploy自动把项目成果打包到nexus, 测试环境需要发布什么项目, 只需要进入到pod里修改xml, 重启下就ok了, 最后一步看似也不太好, 但其实集群发布这应该是最好的方式了, 因为如果发送put命令来发布, 哪个pod处理请求是个很难处理的事情, 特别是k8s和containerd不支持暂停 停止的概念.