在 Kubernetes 上的 Tomcat 中部署 WAR

我需要创建一个 Multibranch Jenkins 作业来在 Tomcat 中部署一个应该在 Kubernetes 上运行的 .war 文件。基本上,我需要以下内容:

  1. 一种在 Kubernetes 平台上安装 Tomcat 的方法。

  2. 在这个新安装的 Tomcat 上部署我的 war 文件。

我需要利用Dockerfile来实现这一点。

PS:我对 Kubernetes 和 Docker 的东西很陌生,也需要基本的细节。我尝试寻找教程,但找不到任何令人满意的文章。

任何帮助都将受到高度赞赏。


qq_遁去的一_1
浏览 158回答 1
1回答

紫衣仙女

码头工人部分可以使用tomcat docker官方镜像在您Dockerfile只需将您的战争文件复制到/usr/local/tomcat/webapps/目录中:FROM tomcatCOPY app.war /usr/local/tomcat/webapps/构建它:docker build --no-cache -t <REGISTRY>/<IMAGE>:<TAG> .构建映像后,将其推送到您选择的 Docker 注册表中。docker push <REGISTRY>/<IMAGE>:<TAG>Kubernetes 部分1)这是一个用于您的 Tomcat 映像的简单 kubernetes部署apiVersion: apps/v1kind: Deploymentmetadata:&nbsp; name: tomcat-deployment&nbsp; labels:&nbsp; &nbsp; app: tomcatspec:&nbsp; replicas: 1&nbsp; selector:&nbsp; &nbsp; matchLabels:&nbsp; &nbsp; &nbsp; app: tomcat&nbsp; template:&nbsp; &nbsp; metadata:&nbsp; &nbsp; &nbsp; labels:&nbsp; &nbsp; &nbsp; &nbsp; app: tomcat&nbsp; &nbsp; spec:&nbsp; &nbsp; &nbsp; containers:&nbsp; &nbsp; &nbsp; - name: tomcat&nbsp; &nbsp; &nbsp; &nbsp; image: <REGISTRY>/<IMAGE>:<TAG>&nbsp; &nbsp; &nbsp; &nbsp; ports:&nbsp; &nbsp; &nbsp; &nbsp; - containerPort: 8080此部署定义将基于您的 tomcat 映像创建一个 pod。将其放入 yml 文件并执行kubectl create -f yourfile.yml创建它。2)创建服务:kind: ServiceapiVersion: v1metadata:&nbsp; name: tomcat-servicespec:&nbsp; selector:&nbsp; &nbsp; app: tomcat&nbsp; ports:&nbsp; - protocol: TCP&nbsp; &nbsp; port: 80&nbsp; &nbsp; targetPort: 8080您现在可以使用http://tomcat-service.your-namespace/app访问集群内的 pod (因为您的 war 被调用app.war)3)如果你有Ingress 控制器,你可以创建一个Ingress 资源来将应用程序暴露在集群之外:apiVersion: extensions/v1beta1kind: Ingressmetadata:&nbsp; name: tomcat-ingress&nbsp; annotations:&nbsp; &nbsp; nginx.ingress.kubernetes.io/rewrite-target: /spec:&nbsp; rules:&nbsp; - http:&nbsp; &nbsp; &nbsp; paths:&nbsp; &nbsp; &nbsp; - path: /app&nbsp; &nbsp; &nbsp; &nbsp; backend:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; serviceName: tomcat-service&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; servicePort: 80现在使用http://ingress-controller-ip/app访问应用程序
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java