Kubernetes部署Tomcat服务器步骤

夜墨同学_8191

夜墨同学_8191

2026-09-23

241人浏览

原创

可行但生产环境必须补service、健康探针和资源限制,否则易出现503、反复重启、端口不可达或调度失败;本地测试可用kubectl create deployment快速验证镜像拉取与基础调度。

kubernetes部署tomcat服务器步骤

直接用 kubectl create deployment 命令快速启动一个 Tomcat Pod 是可行的,但生产环境必须补上 Service、健康探针和资源限制,否则容易出现 503、反复重启、端口无法访问或调度失败等问题。

用命令行快速验证是否能拉起 Tomcat

适合本地开发或测试集群快速验证网络、镜像拉取和基础调度能力:

  • kubectl create namespace tomcat-test —— 先隔离命名空间,避免污染默认环境
  • kubectl create deployment tomcat-test --image=tomcat:9.0-jdk11 -n tomcat-test —— 注意指定明确版本,latest 在不同节点行为不一致
  • kubectl get pods -n tomcat-test -o wide 查看状态;如果卡在 ContainerCreating,大概率是镜像拉取失败(检查 kubectl describe pod 中的 Events 字段,常见错误如 ImagePullBackOffErrImagePull
  • Tomcat 默认监听 8080,但此时 Pod 还没暴露,kubectl port-forward 是最安全的临时调试方式:kubectl port-forward -n tomcat-test pod/<pod-name> 8080:8080</pod-name>

必须补上的 Service 才能对外访问

只靠 Deployment 无法从集群外访问,Service 是必选项。NodePort 最常用,但要注意端口范围和防火墙:

Kubernetes Skills
Kubernetes Skills

针对 Kubernetes 仪表板和 Web UI 的浏览器自动化。适用于与 Kubernetes Dashboard、Grafana、ArgoCD UI 或其他 Web 界面交互。需要设置 MCP_BROWSER_ENABLED=true。

下载
  • NodePort 默认端口范围是 30000–32767,手动指定需在此区间内,例如 nodePort: 30080
  • type: NodePort 会让每个工作节点都监听该端口,但前提是节点防火墙放行(比如 firewall-cmd --add-port=30080/tcp --permanent
  • Service 的 selector 必须和 Deployment 中的 pod template metadata.labels 完全一致,否则 Endpoints 为空,kubectl get endpoints -n tomcat-test 可验证
  • 不要用 ClusterIP 类型直接对外访问——它只在集群内生效,浏览器打不开

不加 livenessProbe 和 readinessProbe 的后果

Tomcat 启动慢(尤其带应用 WAR 包时),K8s 默认 30 秒无响应就杀容器,导致无限重启循环:

  • livenessProbe 缺失:容器假死(Java OOM 后线程卡住但进程未退出)不会被自动重建
  • readinessProbe 缺失:Pod 启动后立刻被加入 Service 的 Endpoints,但此时 Tomcat 还没完成初始化,流量进来直接 404 或 503
  • 建议起步配置:initialDelaySeconds: 60(给 Tomcat 足够启动时间),periodSeconds: 10,路径用 httpGet.path: / 或更轻量的 /manager/status(需配 manager 用户)
  • 注意:路径必须返回 HTTP 200,Tomcat 默认根路径 / 返回 302 跳转到 /index.jsp,某些 probe 实现不跟随跳转,会误判失败

挂载自定义应用和防止空 ROOT 目录重启

官方 tomcat:* 镜像默认 webapps 下只有 ROOT 目录结构,但内容为空。K8s 探针访问 / 时 Tomcat 会返回 404,触发 readiness 失败,进而导致反复重建 Pod:

  • 最简方案:在容器启动后自动复制 webapps.distwebapps,用 lifecycle.postStart
lifecycle:
  postStart:
    exec:
      command: ["/bin/sh", "-c", "cp -r /usr/local/tomcat/webapps.dist/* /usr/local/tomcat/webapps/"]
  • 更可靠的方式:构建自定义镜像,把 WAR 包 COPY 进去,或用 ConfigMap 挂载 webapps/ROOT 目录(注意 ConfigMap 不支持二进制文件,WAR 包得用 initContainer + emptyDir 中转)
  • 若用 PV/PVC 持久化,确认 accessModesReadWriteOnce,且 StorageClass 支持所选节点类型(比如 hostPath 只能在单节点用)
  • 真正卡住人的往往不是部署动作本身,而是探针路径语义、镜像启动逻辑与 K8s 生命周期钩子之间的隐式耦合——比如 Tomcat 的 302 跳转、空 ROOT 目录、JVM 初始化延迟,这些都不会报错,但会让服务看起来“部署成功却无法访问”。

    相关文章

    PHP速学视频免费教程(入门到精通)
    PHP速学视频免费教程(入门到精通)

    PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

    下载

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    相关专题

    更多
    服务器是什么
    服务器是什么

    服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

    2023.08.15

    417

    5

    连接apple id服务器时出错
    连接apple id服务器时出错

    连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

    2023.09.08

    820

    5

    搭建互联网服务器
    搭建互联网服务器

    搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

    2023.09.19

    2412

    5

    如何查看服务器状态
    如何查看服务器状态

    查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

    2023.10.09

    816

    5

    服务器域名转接慢怎么解决
    服务器域名转接慢怎么解决

    服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

    2023.10.17

    709

    5

    服务器评测软件
    服务器评测软件

    服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

    2023.10.17

    374

    3

    如何开启TFTP服务器
    如何开启TFTP服务器

    开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

    2023.10.18

    2156

    4

    服务器负载不兼容怎么解决
    服务器负载不兼容怎么解决

    解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

    2023.10.20

    3972

    4

    宽带如何接入服务器
    宽带如何接入服务器

    宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

    2023.10.20

    647

    5

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    Tomcat核心原理解析
    Tomcat核心原理解析

    共57课时 | 8.7万人学习

    Kubernetes官方教程手册
    Kubernetes官方教程手册

    共0课时 | 0人学习

    Kubernetes官方中文文档
    Kubernetes官方中文文档

    共0课时 | 0人学习