Akh*_*ati 8 java tomcat docker kubernetes
我需要创建一个Multibranch Jenkins作业来在Tomcat中部署一个应该在Kubernetes上运行的.war文件.基本上,我需要以下内容:
我需要利用它Dockerfile来实现这一目标.
PS:我对Kubernetes和Docker的东西很新,也需要基本的细节.我试过找到教程,却找不到任何令人满意的文章.
任何帮助将受到高度赞赏.
Nic*_*ter 14
你可以使用tomcat docker官方图片
在您Dockerfile刚刚复制/usr/local/tomcat/webapps/目录中的war文件:
FROM tomcat
COPY app.war /usr/local/tomcat/webapps/
Run Code Online (Sandbox Code Playgroud)
建立它:
docker build --no-cache -t <REGISTRY>/<IMAGE>:<TAG> .
构建映像后,将其推送到您选择的Docker注册表中.
docker push <REGISTRY>/<IMAGE>:<TAG>
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
Run Code Online (Sandbox Code Playgroud)
此部署定义将基于您的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
Run Code Online (Sandbox Code Playgroud)
您现在可以使用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
Run Code Online (Sandbox Code Playgroud)
现在使用http:// ingress-controller-ip/app访问应用程序
| 归档时间: |
|
| 查看次数: |
5992 次 |
| 最近记录: |