在Kubernetes上的Tomcat中部署WAR

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

  1. 一种在Kubernetes平台上安装Tomcat的方法。
  2. 在这个新安装的Tomcat上部署我的war文件。

我需要利用Dockerfile这一点。

PS:我对Kubernetes和Docker知识还很陌生,也需要基本的细节。我尝试查找教程,但未获得满意的文章。

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

回答:

回答:

您可以使用tomcat docker官方映像

在您Dockerfile只需将war文件复制到/usr/local/tomcat/webapps/目录中:

FROM tomcat

COPY app.war /usr/local/tomcat/webapps/

建立它:

docker build --no-cache -t <REGISTRY>/<IMAGE>:<TAG> .

构建映像后,将其推送到您选择的Docker注册表中。

docker push <REGISTRY>/<IMAGE>:<TAG>

回答:

1)这是您的tomcat映像的简单kubernetes

部署

apiVersion: apps/v1

kind: Deployment

metadata:

name: tomcat-deployment

labels:

app: tomcat

spec:

replicas: 1

selector:

matchLabels:

app: tomcat

template:

metadata:

labels:

app: tomcat

spec:

containers:

- name: tomcat

image: <REGISTRY>/<IMAGE>:<TAG>

ports:

- containerPort: 8080

此部署定义将基于您的tomcat映像创建一个pod。

将其放在yml文件中并执行kubectl create -f yourfile.yml以创建它。

2)创建服务:

kind: Service

apiVersion: v1

metadata:

name: tomcat-service

spec:

selector:

app: tomcat

ports:

- protocol: TCP

port: 80

targetPort: 8080

您现在可以使用http://tomcat-service.your-namespace/app访问集群中的Pod(因为您的战争称为app.war

3)如果您具有Ingress控制器,则可以创建一个Ingress资源,以将应用程序公开到集群之外:

apiVersion: extensions/v1beta1

kind: Ingress

metadata:

name: tomcat-ingress

annotations:

nginx.ingress.kubernetes.io/rewrite-target: /

spec:

rules:

- http:

paths:

- path: /app

backend:

serviceName: tomcat-service

servicePort: 80

现在使用http:// ingress-controller-ip / app访问该应用程序

以上是 在Kubernetes上的Tomcat中部署WAR 的全部内容, 来源链接: utcz.com/qa/430722.html

回到顶部