Docker 部分
您可以使用tomcat docker官方图片
在你刚刚复制你的war文件在目录中:Dockerfile
/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>
Kubernetes part
1) 这是一个简单的 kubernetes 部署你的 tomcat 镜像
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(因为您的 war 被称为app.war
)
3) 如果您有入口控制器,则可以创建入口资源以在集群外部公开应用程序:
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 访问应用程序