TH小破站

  • 首页
  • 容器
    • 认识Docker
    • DockerFile详解
  • k8s
    • 认识Kubernetes
    • Kubernetes部署--(kubeadm方式)
    • kubeasz部署k8s集群
    • Ansible-binary部署k8s集群-1.31.2
  • Ceph
    • 认识分布式存储
    • CPEH部署
  • CI/CD
    • DevOps认识
    • 部署--Gitlab
  • ELK
    • ELK简介
    • Elasticsearch
    • Kibana部署
    • Logstash
    • ELK--收集 tomcat 日志(实战)
  • HD
    • 认识--大数据
    • Hadoop-单机部署
    • Hadoop-伪分布部署
    • Hadoop-完全分布部署
    • Hadoop-(HA)完全分布部署
    • Ambari自动部署--Hadoop
  • Nginx
    • Nginx功能介绍
    • Nginx安全选项
    • Nginx配置文件简单介绍
    • 网站服务器部署
  • 监控
    • ZABBIX-部署(yum)
    • ZABBIX-编译安装
  • 云计算
    • KVM 概述
    • OpenStack企业级部署(T版)
    • OpenStack之dashboard部署
    • OpenStack-controller的高可用
    • openstack(Caracal版_ubuntu版本)部署
  • 数据库
    • mariadb与mysql
    • mysql主从
    • MySQL--冷备(实战)
    • MySQL--热备(dump表)
    • MySQL--热备(dump库)
    • 数据恢复实战案例
    • Xtrabackup实现MySql8.x全量备份
    • MyCat实现数据库读写分离
    • MHA实现数据库高可用
    • Percona XtraDB(PXC)实现数据库集群高可用
    • 数据库压力测试
    • PostgreSQL 基操
    • PostgreSQL备份恢复
    • PostgreSQL高可用
    • MongDB安装配置基础使用
    • MongoDB实现复制集
    • MongoDB备份还原
  • 自动化
    • ssh远程服务原理及配置
    • Ansible剧本文件应用
    • Ansible管理服务介绍
    • Ansible自动化部署node_exporter(包含升级,回滚)
    • Saltstack-部署安装
  • 脚本
    • 一键查看服务器资源利用率
    • 一键生成SSL证书
    • 保存指定数量的文件/目录
    • 初始化服务器
    • 扫描可用IP
    • 批量分发SSH密钥
    • 监控多主机磁盘脚本
    • 一键安装MySQL8.x脚本
    • Python脚本监控ES集群
    • 资源巡检脚本
    • 查看各用户使用的cpu占比
热衷于分享
架构师成长之路 !!!
  1. 首页
  2. Kubernetes
  3. 正文

Kubernetes中如何个性化构建tomcat服务

2024年1月24日 901点热度 0人点赞 0条评论

K8S中运行个性化tomcat

tomcat镜像制作规划

JDK基础镜像制作
JDK基础镜像文件列表
root@k8s-master01:~# mkdir -p /stj-soft/dockerfile/web/jdk-8u221
rw-r--r-- 1 root root       130 Jan 11 21:50 build-command.sh
-rw-r--r-- 1 root root       474 Jan 11 21:38 Dockerfile
-rw-r--r-- 1 root root 195094741 Oct 18 11:40 jdk-8u221-linux-x64.tar.gz
-rw-r--r-- 1 root root       172 Jan 11 21:47 jdk.sh
Dockerfile内容
root@k8s-master01:/stj-soft/dockerfile/web/jdk-8u221# vim Dockerfile 
# 拉取基础镜像
FROM harbor.stangj.net/web/centos-base:7.9.2009
# 设置作者信息
LABEL maintainer "tanghao 282658807**@qq.com"
# 上传tar包
ADD jdk-8u221-linux-x64.tar.gz /usr/local/src/
# 做软连接
RUN ln -sv /usr/local/src/jdk1.8.0_221 /usr/local/jdk
# 上传环境变量文件
ADD jdk.sh /etc/profile.d/
# 设置环境变量
ENV JAVA_HOME /usr/local/jdk
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/:$JRE_HOME/lib/
ENV PATH $PATH:$JAVA_HOME/bin
jdk.sh 内容
root@k8s-master01:/stj-soft/dockerfile/web/jdk-8u221# cat jdk.sh 
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
build-command脚本
root@k8s-master01:/stj-soft/dockerfile/web/jdk-8u221# vim build-command.sh
#!/bin/bash
docker build -t harbor.stangj.net/pub-images/jdk-base:8.221 .
docker push harbor.stangj.net/pub-images/jdk-base:8.221
执行构建jdk镜像
root@k8s-master01:/stj-soft/dockerfile/web/jdk-8u221# bash build-command.sh 

tomcat基础镜像制作
tomcat基础镜像文件列表
root@k8s-master01:~# mkdir -p /stj-soft/dockerfile/web/tomcat
root@k8s-master01:/stj-soft/dockerfile/web/tomcat# ll
-rw-r--r-- 1 root root 10523269 Mar 30  2021 apache-tomcat-8.5.65.tar.gz
-rw-r--r-- 1 root root        0 Jan 11 21:25 build-command.sh
-rw-r--r-- 1 root root        0 Jan 11 21:25 Dockerfile
-rw-r--r-- 1 root root        0 Jan 11 21:57 tomcat.sh
Dockerfile内容
root@k8s-master01:/stj-soft/dockerfile/web/tomcat# cat Dockerfile 
# 拉取JDK镜像
FROM harbor.stangj.net/pub-images/jdk-base:8.221
# 设置作者信息
LABEL maintainer "tanghao 282658807**@qq.com"
# 创建目录
RUN mkdir -pv /apps /data/tomcat/webapps /data/tomcat/logs
# 上传tar包
ADD apache-tomcat-8.5.65.tar.gz /apps
# 做软连接创建启动用户
RUN useradd tomcat && ln -sv /apps/apache-tomcat-8.5.65 /apps/tomcat && chown -R tomcat:tomcat /apps /data 
# 上传环境变量文件
ADD tomcat.sh /etc/profile.d/
# 设置环境变量
ENV TOMCAT_HOME /apps/tomcat
ENV PATH $JAVA_HOME/bin:$JAVA_HOME/jre/bin:$TOMCAT_HOME/bin:$PATH
tomcat.sh 内容
root@k8s-master01:/stj-soft/dockerfile/web/tomcat# cat tomcat.sh 
export TOMCAT_HOME=/apps/tomcat
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$TOMCAT_HOME/bin:$PATH
build-command脚本
root@k8s-master01:/stj-soft/dockerfile/web/tomcat# cat build-command.sh 
#!/bin/bash
docker build -t harbor.stangj.net/pub-images/tomcat-base:v8.5.65 .
docker push harbor.stangj.net/pub-images/tomcat-base:v8.5.65
执行构建tomcat镜像
root@k8s-master01:/stj-soft/dockerfile/web/tomcat# bash build-command.sh 

验证tomcat服务
root@k8s-master01:/stj-soft/dockerfile/web/tomcat# docker run --rm -it -p 9098:8080 harbor.stangj.net/pub-images/tomcat-base:v8.5.65 bash
[root@1351264f3a07 ~]# su - tomcat -c '/apps/tomcat/bin/catalina.sh run'

  • 访问页面

tomcat业务镜像app1制作

业务镜像文件列表
root@k8s-master01:~# mkdir -p /stj-soft/dockerfile/web/tomcat/app1
root@k8s-master01:/stj-soft/dockerfile/web/tomcat/app1# touch Dockerfile
root@k8s-master01:/stj-soft/dockerfile/web/tomcat/app1# touch build-command.sh 
root@k8s-master01:/stj-soft/dockerfile/web/tomcat/app1# mkdir myapp
root@k8s-master01:/stj-soft/dockerfile/web/tomcat/app1# touch run_tomcat.sh
root@k8s-master01:/stj-soft/dockerfile/web/tomcat/app1# chmod +x run_tomcat.sh 
root@k8s-master01:/stj-soft/dockerfile/web/tomcat/app1# echo '<h1>myapp-app1<h1/>' > app1/index.jsp
root@k8s-master01:/stj-soft/dockerfile/web/tomcat/app1# tar zcf app1.tar.gz app1/*
root@k8s-master01:/stj-soft/dockerfile/web/tomcat/app1# ll
-rw-r--r-- 1 root root   0 Jan 11 22:31 build-command.sh
-rw-r--r-- 1 root root   0 Jan 11 22:31 Dockerfile
drwxr-xr-x 2 root root  23 Jan 11 22:33 app1/
-rw-r--r-- 1 root root 139 Jan 11 22:34 app1.tar.gz
-rwxr-xr-x 1 root root   0 Jan 11 22:32 run_tomcat.sh*
Dockerfile内容
root@k8s-master01:/stj-soft/dockerfile/web/tomcat/app1# cat Dockerfile 
# 拉取tomcat镜像
FROM harbor.stangj.net/pub-images/tomcat-base:v8.5.65
# 设置作者信息
LABEL maintainer "tanghao 282658807**@qq.com"
# 上传启动脚本
ADD run_tomcat.sh /apps/tomcat/bin/run_tomcat.sh
# 上传代码
ADD app1.tar.gz /apps/tomcat/webapps/
# 修改权限
RUN chown tomcat:tomcat /apps -R
# 暴露端口
EXPOSE 8080 8009
# 运行脚本
CMD ["/apps/tomcat/bin/run_tomcat.sh"]
run_tomcat.sh内容
root@k8s-master01:/stj-soft/dockerfile/web/tomcat/app1# cat run_tomcat.sh 
#!/bin/bash
su - tomcat -c '/apps/tomcat/bin/catalina.sh start'
tail -f /etc/hosts
build-command脚本
root@k8s-master01:/stj-soft/dockerfile/web/tomcat/app1# cat build-command.sh 
#!/bin/bash
docker build -t harbor.stangj.net/pub-images/tomcat:app1 .
docker push harbor.stangj.net/pub-images/tomcat:app1 
执行构建tomcat-app1镜像
root@k8s-master01:/stj-soft/dockerfile/web/tomcat/app1# bash build-command.sh 

验证tomcat-app1服务
root@k8s-master01:/stj-soft/dockerfile/web/tomcat/app1# docker run --rm -it -p 9080:8080 harbor.stangj.net/pub-images/tomcat:app1  

创建相应目录
root@k8s-master01:~# mkdir -p /stj-soft/yaml/tomcat-app1
tomcat-app1业务yaml文件
root@k8s-master01:~# cd /stj-soft/yaml/tomcat-app1
root@k8s-master01:/stj-soft/yaml/tomcat-app1# vim tomcat-app1.yaml
kind: Deployment     
apiVersion: apps/v1     
metadata:  
  labels:   
    app: tomcat-stj-deployment-label 
  name: tomcat-deployment       
  namespace: stj-ns  
spec:                  
  replicas: 1         
  selector:  
    matchLabels:
      app: tomcat-stj-selector    
  template: 
    metadata:         
      labels:      
        app: tomcat-stj-selector   
    spec:       
      containers:       
      - name: tomcat-stj-container
        image:  harbor.stangj.net/pub-images/tomcat:app1
        imagePullPolicy: Always   
        ports:      
        - containerPort: 8080    
          protocol: TCP        
          name: http 
        resources: 
          limits:
            cpu: 2   
            memory: 2Gi        
          requests: 
            cpu: 500m 
            memory: 512Mi
        readinessProbe:
          httpGet:
            path: /app1/index.jsp
            port: 8080
          initialDelaySeconds: 5
          periodSeconds: 3
          timeoutSeconds: 5
          successThreshold: 1
          failureThreshold: 3
        livenessProbe:
          httpGet:
            path: /app1/index.jsp
            port: 8080
          initialDelaySeconds: 5
          periodSeconds: 3
          timeoutSeconds: 5
          successThreshold: 1
          failureThreshold: 3
---
kind: Service  
apiVersion: v1      
metadata:        
  labels:           
    app: tomcat-stj-label        
  name: tomcat-stj-svc
  namespace: stj-ns 
spec:               
  type: NodePort      
  ports:          
  - name: http    
    protocol: TCP    
    port: 8080         
    targetPort: 8080   
    nodePort: 40011 
  selector:
    app: tomcat-stj-selector  
应用tomcat的yaml文件
root@k8s-master01:/stj-soft/yaml/tomcat-app1# kubectl apply -f tomcat-app1.yaml 

标签: 暂无
最后更新:2024年1月24日

tanghao946

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复
文章目录
  • K8S中运行个性化tomcat

COPYRIGHT © 2025 TH小破站. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

渝ICP备2023013789号

渝公网安备50011702500926号