一、项目介绍
Java+Tomcat 结构
Java Web 应用的结构
此项目应用到Web App Tomcat和MySQL容器,并且Web App 需要访问到MySQL容器。
我们在早年部署项目都需要上物理机上一条一条命令的输入非常的耗时间。如果某个服务出错了也不会自愈,就非常的耗费人力。所以现在我们就引用Kubernetes+docker 来部署。又可以节约非常的没必要浪费的资源和人力,大大提高日常工作相率。
二、准备环境:
三、启动MySQL服务
为MySQL服务创建一个Deployment定义文件mysql-deploy.yaml
apiVersion: apps/v1 #API版本
kind: Deployment #副本控制器RC Deployment
metadata:
labels: #标签
app: mysql
name: mysql #对象名称,全局唯一
spec:
replicas: 2 #预期的副本数量
selector:
matchLabels:
app: mysql
template: #Pod模板
metadata:
labels:
app: mysql
spec:
containers: #定义容器
- image: docker.io/mysql:5.7 #容器镜像版本
name: mysql
ports:
- containerPort: 3306 #容器应用监听的端口号
env:
- name: MYSQL_ROOT_PASSWORD #注入容器内的环境变量
value: "123456" #mysql登录初始化密码
kubectl apply -f mysql-deploy.yaml #创建mysql Deployment服务
kubectl get pods 或者 #kubectl get deploy #查看容器状态,查看deployment状态
创建完成我们可到对应的node节点通过查看mysql 进程
docker ps | grep mysql
创建MySQL Service 文件 mysql-svc.yaml
apiVersion: v1
kind: Service #表名Kubernetes Service
metadata:
name: mysql #Service的全局唯一名称
spec:
ports:
- port: 3306 #Service提供服务的端口号
selector:
app: mysql
#kubctl apply -f mysql-svc.yaml //创建service服务
四、启动Tomcat 服务
前面我们定义启动了MySQL服务,下面我们就类似于MySQL一样启动Tomcat服务,创建myweb-deploy.yaml文件
apiVersion: apps/v1 #API版本
kind: Deployment #副本控制器RC Deployment
metadata:
labels: #标签
app: myweb
name: myweb #对象名称,全局唯一
spec:
replicas: 2 #预期的副本数量
selector:
matchLabels:
app: myweb
template: #Pod模板
metadata:
labels:
app: myweb
spec:
containers: #定义容器
- image: docker.io/tomcat:7 #容器镜像版本
name: myweb
ports:
- containerPort: 8080 #容器应用监听的端口号
env:
- name: MYSQL_SERVICE_HOST #注入容器内的环境变量 ---或者可以把HOST修改为PORT端口类型访问
value: 10.1.12.93 #设置访问的mysql svc IP地址
kubectl apply -f myweb-deploy.yaml #创建tomcat Deployment服务
创建Tomcat 的Service 文件 myweb-svc.yaml
apiVersion: v1
kind: Service
metadata:
name: myweb
spec:
type: NodePort
ports:
- port: 8080
nodePort: 30001
selector:
app: myweb
四、访问测试:
访问测试tomcat:http://localhost:30001