您现在的位置是:首页 >其他 >部署环境从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: nexus
name: nexus
namespace: nexus
spec:
type: NodePort
ports:
- port: 8081
targetPort: 8081
nodePort: 30003
selector:
k8s-app: nexus
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
k8s-app: nexus
name: nexus
namespace: nexus
spec:
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
k8s-app: nexus
template:
metadata:
labels:
k8s-app: nexus
spec:
nodeName: ltwwapp01
containers:
- name: nexus
image: sonatype/nexus3
imagePullPolicy: Always
ports:
- containerPort: 8081
protocol: TCP
env:
# 冒号后面必须加空格
- name: TZ
value: "Asia/Shanghai"
注意这里加了环境变量, 是必须加空格的, 不然读取失败.
然后惯例,把oracle的jar包手动上传. 不赘述,怎么用之前的文章也说过
第二步,把要验证的项目deploy到nexus
然后把workbench里的项目 git clone到自己本地, 然后修改maven的setting.xml,主要是如下几处,之前应该也说过
然后执行 mvn deploy
,jar就发布到远程库了
第三步 删掉原来的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-nexus
name: kie-server-nexus
namespace: kie-server-nexus
spec:
type: NodePort
ports:
- port: 8080
targetPort: 8080
nodePort: 30002
selector:
k8s-app: kie-server-nexus
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
k8s-app: kie-server-nexus
name: kie-server-nexus
namespace: kie-server-nexus
spec:
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
k8s-app: kie-server-nexus
template:
metadata:
labels:
k8s-app: kie-server-nexus
spec:
nodeName: ltwwapp01
containers:
- name: kie-server-nexus
image: quay.io/kiegroup/kie-server-showcase:latest
imagePullPolicy: Always
ports:
- containerPort: 8080
protocol: TCP
env:
- name: KIE_MAVEN_REPO
value: "http://172.16.251.151:30003/repository/maven-public/"
- name: KIE_MAVEN_REPO_USER
value: "admin"
- name: KIE_MAVEN_REPO_PASSWORD
value: "123456789admin"
- name: TZ
value: "Asia/Shanghai"
然后进入这个全新的ks ,仅把ks xx.xml改了, 然后重启wildfly,
然后postman验证
完美.
这样就很好了,少掉维护volume, 所有pod统一使用nexus,后续的发布流程只需要正常的开发, mvn deploy自动把项目成果打包到nexus, 测试环境需要发布什么项目, 只需要进入到pod里修改xml, 重启下就ok了, 最后一步看似也不太好, 但其实集群发布这应该是最好的方式了, 因为如果发送put命令来发布, 哪个pod处理请求是个很难处理的事情, 特别是k8s和containerd不支持暂停 停止的概念.
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。