k8s 使用tomcat官方镜像部署集群并解决访问页面404

一、集群节点配置:

master:192.168.206.138

k8s-node1:192.168.206.136

k8s-node2:192.168.206.137

二、下载一个Tomcat镜像

复制代码
docker pull tomcat
docker images | grep tomcat
docker tag docker.io/tomcat tomcat

三、根据官方镜像自己构建一个一次性就能启动的Tomcat镜像

官方镜像这里有个坑,使用kubectl启动之后,页面报错404,仔细检查发现,是因为tomcat的webapp目录下没有对应的文件,所以连初始界面都无法显示。要想显示,必须要根据官方镜像自己构建一个Dockerfile

复制代码
vim Dockerfile

FROM tomcat
ENV MYPATH /usr/local/tomcat
WORKDIR $MYPATH
RUN  cp -r webapps.dist/* webapps/
ENTRYPOINT /bin/bash $MYPATH/bin/startup.sh && tail -f $MYPATH/logs/catalina.out

docker build -t tomcat:v7 .
docker tag tomcat:v7 192.168.206.137:5000/tomcat:v7
docker push 192.168.206.137:5000/tomcat:v7

这里需要将镜像上传到自己搭建的registry,并配置nodes节点都可以正常访问5000端口。

步骤可以看:registry搭建方法

三、创建一个 tomcat1.yaml

复制代码
vim tomcat1.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: tomcatdeploy1
spec:
  replicas: 1
  selector:
    matchLabels:
      app: tomcat1
  template:
    metadata:
      labels:
        app: tomcat1
    spec:
      containers:
      - name: mytomcat1
        image: 192.168.206.137:5000/tomcat:v7
        ports:
        - containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
  name: tomcatservice1
spec:
  type: NodePort
  ports:
  - port: 8080
    targetPort: 8080
    nodePort: 30088
  selector:
    app: tomcat1

四、部署yaml

复制代码
kubectl create -f tomcat1.yaml
kubectl get pod -o wide
kubectl get svc | grep tomcatservice1

根据上面的信息可以看出,该POD部署在k8s-node1上,映射POD的8080端口到master的30088端口上。所以可以通过masterIP:30088访问该tomcat服务

http://192.168.206.138:30088/

见此页面表示部署OK

相关推荐
invicinble1 小时前
对linux形成认识
linux·运维·服务器
技术路上的探险家1 小时前
8 卡 V100 服务器:基于 vLLM 的 Qwen 大模型高效部署实战
运维·服务器·语言模型
半桔2 小时前
【IO多路转接】高并发服务器实战:Reactor 框架与 Epoll 机制的封装与设计逻辑
linux·运维·服务器·c++·io
绵绵细雨中的乡音2 小时前
深入理解 ET 与 LT 模式及其在 Reactor 模型中的应用
服务器·网络·php
engchina2 小时前
WSL Ubuntu で Kubernetes v1.34.2 + Docker 環境を構築する
ubuntu·docker·kubernetes
JH30732 小时前
SpringBoot 优雅处理金额格式化:拦截器+自定义注解方案
java·spring boot·spring
HABuo2 小时前
【linux文件系统】磁盘结构&文件系统详谈
linux·运维·服务器·c语言·c++·ubuntu·centos
Howrun7772 小时前
关于Linux服务器的协作问题
linux·运维·服务器
Coder_Boy_3 小时前
技术让开发更轻松的底层矛盾
java·大数据·数据库·人工智能·深度学习
invicinble4 小时前
对tomcat的提供的功能与底层拓扑结构与实现机制的理解
java·tomcat