K8S集群中部署一个tomcat

  1. 编写tomcat的devlopment,也就是部署yaml,标准编写规范参考官方,建议初学者把基本参数的概念先弄清楚是什么
  2. apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: tomcat-deployment
      labels:
        app: tomcat
    spec:
      replicas: 1    #副本数量,为了节省时间和资源,我只用一个。
      selector:
        matchLabels:
          app: tomcat
      template:
        metadata:
          labels:
            app: tomcat
        spec:
          containers:
          - name: tomcat
            image: tomcat:latest    #这里是镜像版本,默认是最新laster
            ports:
            - containerPort: 8080
    

      

执行构建命令kubectl apply -f tomcat.yaml

等待即可,等待拉去tomcat镜像,网络快估计一两分钟。

 

查看Deploment创建状态

执行命令kubectl get deployments,再等待几分钟后终于好了。pod也运行起来了。看是不是比传统方式块多了,传统方式还要新建一台服务器,装依赖,jdk,装tomcat。时间相差巨大,而且K8S还有更加强大的功能,负载均衡,故障自动转移等。

 

  1. 接下来我们还有部署外部访问,通过service来实现,默认外界是无法访问tomcat的。yaml文件如下
    apiVersion: v1
    kind: Service
    metadata:
      name: tomcat-service
    spec:
      type: NodePort
      ports:
        - port: 8080
          targetPort: 8080
          nodePort: 30080    #映射的宿主机端口,具体pod被创建到哪个node节点可以使用命令查看如下
      selector:              #kubectl get pods --all-namespaces -o wide
        app: tomcat
    

      

     

     

    使用http://192.168.222.15:30080访问tomcat,已经可以访问,但是出现404,因为在webapps目录是空的

    那我们就进到tomcat容器中去把它默认的页面文件放到webapps的目录,看webapps目录是空的,默认访问目录也是这个,也怪不得404了。其中默认的文件在图中的webapps.list中,我们把它拷贝出webapps下

    好了,我们访问一下tomcat,出来了页面。很多时候如果web访问出现404,我们都要去检查其访问目录中文件是否存在。

posted @ 2021-11-29 17:15  头发重要  阅读(838)  评论(0编辑  收藏  举报