k8s部署tomcat

k8s部署tomcat

基本上可以复制粘贴直接使用,需要注意的是将自己的war包放在指定目录下,然后修改对应的名字即可

1.制作Docker镜像

# 创建目录
mkdir -p tomcat/t/{lib64,app}
cd tomcat

# 复制有关命令及依赖,cp命令最重要
cp  $(ldd /usr/bin/ls |grep -oP '/lib64\S+') t/lib64/
cp  $(ldd /usr/bin/pwd |grep -oP '/lib64\S+') t/lib64/
cp  $(ldd /usr/bin/bash |grep -oP '/lib64\S+') t/lib64/
cp  $(ldd /usr/bin/cp |grep -oP '/lib64\S+') t/lib64/

cp  /usr/bin/ls  t
cp  /usr/bin/pwd  t
cp  /usr/bin/cp  t
cp  /usr/bin/bash  t

2.编写Dockerfile

Dockerfile

FROM scratch
ENV PATH=/
ADD t/ /
CMD ["/bash"]
ONBUILD COPY . /

3.创建基础镜像

docker build -t neko:v1.0 .

这里是为基础镜像添加自己的应用包

mkdir app 
cd app

Dockerfile

FROM neko:v1.0

这里将自己的应用包放入tomcat/app目录中,然后构建最终的基础镜像

docker build -t neko:v2.0 .

4.将自己的镜像上传到每个node节点上去

docker save -o neko2.0.tar.gz neko:v2.0
scp neko2.0.tar.gz node1:/root
docker load -i neko2.0.tar.gz

5.编写yml文件,启动pod

tomcat.yml

apiVersion: v1
kind: Pod
metadata:
 name: javaweb-2
spec:
 initContainers:
 - image: neko:v2.0
   name: war
   command: ["cp", "/jenkins.war", "/app"]        ####可能要改
   volumeMounts:
   - mountPath: /app
     name: app-volume
 containers:
 - image: tomcat:8.5
   name: tomcat
   volumeMounts:
   - mountPath: /usr/local/tomcat/webapps
     name: app-volume
   ports:
   - containerPort: 8080
     hostPort: 8001
 volumes:
   - name: app-volume
     emptyDir: {}

6.创建pod

kubectl apply -f tomcat.yml

7.查看pod状态

kubectl describe pod javaweb-2

8.在对应的node节点访问tomcat

curl -I 127.0.0.1:8001/jenkins

9.进入容器

docker exec -it 容器名 bash

kubectl exec -it 容器名 -- bash
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值