K8S集群中部署一个tomcat
-
编写tomcat的devlopment,也就是部署yaml,标准编写规范参考官方,建议初学者把基本参数的概念先弄清楚是什么
-
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还有更加强大的功能,负载均衡,故障自动转移等。
-
接下来我们还有部署外部访问,通过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,我们都要去检查其访问目录中文件是否存在。