本次环境使用的是阿里云资源服务器,Linux版本为Centos,集群需要安装Docker和k3s。
Docker下载:Docker(一) 安装Docker_CV猿码人的博客-CSDN博客
K3S 下载:k3s在线快速安装部署-CSDN博客
制作Tomcat镜像,下载官方镜像,编辑Tomcat配置信息
docker pull tomcat
运行Tomcat镜像
docker run -itd tomcat /bin/bash

需要将webapps.dist的配置文件放入到webapps文件夹中
/conf/server.xml 存放Tomcat的配置信息

保存自己的镜像
docker ps #获取容器id

将容器保存为镜像
docker commit -m="has update" -a="自己的账号" Tomcat容器ID tomcat/latest
docker tag tomcat/latest 自己的dockerhub账号/latest
将自己的镜像上传到DockerHub中,https://login.docker.com/ docker官方地址
上传前需要登录账号 docker login
docker push jwobkaka/latest
在自己的docker首页就可以看到

用docker搜索上面自己制作的镜像存不存在
docker search jwobkaka/latest #jwobkaka/latest是自己镜像的名称

编写k3s创建容器的yaml文件 :tomcat-test.yaml
- apiVersion: v1
- kind: Pod
- metadata:
- name: k8s-tomcat
- labels:
- app: k8s
- spec:
- containers:
- - name: k8s-tomcat
- image: jwobkaka/latest #这里就是用docker做的镜像
- command: [ "/usr/local/tomcat/bin/catalina.sh", "run"]
- ports:
- - containerPort: 8080
- volumes:
- - name: timezone
- hostPath:
- path: /usr/share/zoneinfo/Asia/Shanghai
-
编辑好以后,执行配置文件生成pod
kubectl apply -f tomcat-test.yaml

查看容器运行状态
kubectl describe pod k8s-tomcat
Running即为运行成功
进入容器中查看是不是自己的镜像所创建的,主要是webapps中有没有配置文件
kubectl exec -it k8s-tomcat -- /bin/bash

可以看到k3s使用我们自己的镜像搭建起了tomcat服务器
退出容器,回到宿主机上添加svc.yaml文件,开启外部节点访问
- apiVersion: v1
- kind: Service
- metadata:
- name: k8s-tomcat-svc
- spec:
- selector:
- app: k8s
- type: NodePort
- ports:
- - protocol: TCP
- port: 8080
- targetPort: 8080
kubectl apply -f svc.yaml

可以看到端口映射到了宿主机3056上,如果需要外网可以访问到tomcat需要配置安全组

配置好后访问自己的公网ip加映射的端口号

在tomcat.yaml文件中添加挂载信息
- apiVersion: v1
- kind: Pod
- metadata:
- name: k8s-tomcat
- labels:
- app: k8s
- spec:
- containers:
- - name: k8s-tomcat
- image: jwobkaka/latest
- command: [ "/usr/local/tomcat/bin/catalina.sh", "run"]
- ports:
- - containerPort: 8080
- volumeMounts:
- - mountPath: /usr/local/tomcat/webapps/sam #tomcat的访问项目路径
- name: test-volume
- volumes:
- - name: timezone
- hostPath:
- path: /usr/share/zoneinfo/Asia/Shanghai
- - name: test-volume
- hostPath:
- path: /root/sam #自己的路径
- type: DirectoryOrCreate #文件夹不存在会两边自动创建
将之前的pod删除,重新创建tomcat的pod
- kubectl delete pod k8s-tomcat
- kubectl apply -f tomcat-test.yaml
进入容器中发现文件夹被创建了

在外面宿主机的文件夹中上传自己的文件

里面pod也会出现上传的文件

按照之前的端口访问加上sam/index.html

就可以看到自己的首页了