一、项目介绍

Kubernetes部署 MySQL+Tomcat_docker

Java+Tomcat 结构

 Java Web 应用的结构

此项目应用到Web App Tomcat和MySQL容器,并且Web App 需要访问到MySQL容器。

我们在早年部署项目都需要上物理机上一条一条命令的输入非常的耗时间。如果某个服务出错了也不会自愈,就非常的耗费人力。所以现在我们就引用Kubernetes+docker 来部署。又可以节约非常的没必要浪费的资源和人力,大大提高日常工作相率。



二、准备环境:

Kubernetes部署 MySQL+Tomcat_tomcat_02



三、启动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

Kubernetes部署 MySQL+Tomcat_tomcat_03