kubernetes的tomcat实例

本文详细介绍了在Kubernetes环境下,如何配置和部署Tomcat应用以及MySQL数据库。首先需要注意虚拟机资源设置,接着分别拉取Tomcat和MySQL镜像。然后,创建Mysql的RC和Service定义文件,设定环境变量。紧接着,构建Tomcat的RC和服务文件。最后,通过创建RC和服务,并通过访问特定端口来验证部署成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、实验注意:若用虚拟机,虚机的内存和CPU设置请酌情调大,否则可能无法启动tomcat。此实验对mysql的版本有要求,不能用最新的,故选择5.7版本的
二、在每个node上拉取Tomcat镜像和Mysql镜像

 docker pull kubeguide/tomcat-app:v2
  docker pull daocloud.io/library/mysql:5.7

三、构建Mysql RC定义文件——即创建Pod的源文件mysql-rc.yaml
设置了环境变量 MYSQL_ROOT_PASSWORD的值为123456

[root@master ~]# cat mysql_rc.yaml 
apiVersion: v1
kind: ReplicationController
metadata:
  name: mysql
spec:
  replicas: 1
  selector:
    app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - name: mysql
        image: daocloud.io/library/mysql:5.7 
        ports:
        - containerPort: 3306
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: "123456"

构建Mysql Kubernetes Service定义文件mysql-svc.yaml

[root@master ~]# cat mysql-svc.yaml 
apiVersion: v1
kind: Service
metadata:
  name: mysql
spec:
  ports:
    - port: 3306
  selector:
    app: mysql

构建Tomcat RC定义文件myweb-rc.yaml

[root@master ~]# cat myweb-rc.yaml 
apiVersion: v1
kind: ReplicationController
metadata:
  name: myweb
spec:
  replicas: 1
  selector:
    app: myweb
  template:
    metadata:
      labels:
        app: myweb
    spec:
      containers:
        - name: myweb
          image: docker.io/kubeguide/tomcat-app:v2
          ports:
          - containerPort: 8080
          env:
            - name: MYSQL_SERVICE_HOST
              value: 'mysql'
            - name: MYSQL_SERVICE_PORT
              value: '3306'

构建Tomcat Kubernetes Service定义文件myweb-svc.yaml

[root@master ~]# cat myweb-svc.yaml 
apiVersion: v1
kind: Service
metadata: 
  name: myweb
spec:
  type: NodePort
  ports:
    - port: 8080
      name: myweb-svc
      nodePort: 30001
  selector:
    app: myweb

四、创建rc和svc

kubectl create -f mysql_rc.yaml
kubectl create -f  mysql-svc.yaml
kubectl create -f myweb-rc.yaml
kubectl create -f myweb-svc.yaml  

五、查看

[root@master ~]# kubectl get pod -o wide
NAME                     READY     STATUS    RESTARTS   AGE       IP            NODE
mysql-69fv2              1/1       Running   4          15h       172.17.95.4   node1
myweb-3zn7d              1/1       Running   3          15h       172.17.95.3   node1
[root@kvm1 ~]# kubectl get svc
NAME                     CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
kubernetes               10.254.0.1       <none>        443/TCP          20h
mysql                    10.254.230.240   <none>        3306/TCP         15h
myweb                    10.254.214.235   <nodes>       8080:30001/TCP   15h
外部机器通过相应的nodeip30001访问页面
容器通过clusterip:8080访问界面
[root@master ~]# curl node1:30001
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
    .............略.............................
容器访问测试可在node1上创建一个centos的容器用10.254.214.235 8080访问测试,略。

打开浏览器,访问node1ip:30001/demo应出现例如下图的页面。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值