在Kubernetes上的Tomcat中部署WAR
我需要创建一个Multibranch Jenkins作业,以在Tomcat上部署一个应在Kubernetes上运行的.war文件。基本上,我需要以下内容:
- 一种在Kubernetes平台上安装Tomcat的方法。
- 在这个新安装的Tomcat上部署我的war文件。
我需要利用Dockerfile
这一点。
PS:我对Kubernetes和Docker知识还很陌生,也需要基本的细节。我尝试查找教程,但未获得满意的文章。
任何帮助将受到高度赞赏。
回答:
回答:
您可以使用tomcat docker官方映像
在您Dockerfile
只需将war文件复制到/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>
回答:
1)这是您的tomcat映像的简单kubernetes
部署
apiVersion: apps/v1kind: 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: ServiceapiVersion: 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/v1beta1kind: 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