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>
Kubernetes部分
1)这是您的tomcat映像的简单kubernetes
部署
apiVersion: apps/v1kind: Deploymentmetadata: name: tomcat-deployment labels: app: tomcatspec: 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: v1metadata: name: tomcat-servicespec: 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: Ingressmetadata: 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访问该应用程序



