ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

3. 使用K8S部署tomcat

2019-08-04 14:03:39  阅读:581  来源: 互联网

标签:kubectl service tomcat 部署 demo 宿主机 pod K8S


注意,以下 在k8s master节点执行:

1. 使用dockerfile方式构建自己应用的tomcat镜像(构建完成即可,不需要使用docker启动)

https://blog.csdn.net/u013286936/article/details/98457286

我这里创建的镜像名称为:demo-tomcat,tag为:1.0
注意:由于我没有搭建自己的镜像仓库,所有在k8s启动pod时,调度的工作节点拉取不到镜像。会出现以下错误:在这里插入图片描述

可以采用离线导入的方式先将镜像拉取到所有node节点。
https://blog.csdn.net/u013286936/article/details/98456976

2. 部署tomcat

创建一个yaml文件:jvmdemo-tomcat.yml
yaml文件格式定义: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#creating-a-deployment

apiVersion: apps/v1
kind: Deployment
metadata:
  name: demo-tomcat
  labels:
    app: demo
spec:
  replicas: 1
  selector:
    matchLabels:
      app: demo
  template:
    metadata:
      labels:
        app: demo
    spec:
      containers:
      - name: tomcat
        image: demo-tomcat:1.0 
        ports:
        - containerPort: 80

3. 部署pod

3.1 部署:
kubectl create -f  jvmdemo-tomcat.yml

在这里插入图片描述

3.2 查看pod状态,running运行成功:
kubectl get pods 

在这里插入图片描述

3.3 查看pod详细信息:
kubectl describe pod demo-tomcat-7f6bb4d7cd-fdbzw

如果pod状态为:CrashLoopBackOff,则可通过以下命令查看pod日志:

kubectl logs <podName>

当pod状态为running时,表示pod运行成功。

可以通过:
kubectl get pods -o wide查看到pod的ip地址。

然后在宿主机内,可以用过 curl测试tomat是否发布成功。

在这里插入图片描述

但是此时在宿主机外部还不能访问到tomcat。

4. 部署service

4.1编辑jvmdemo-service.yml

将pod端口和node port绑定,这样就可以在宿主机外部,通过宿主机IP:port访问pod容器,以下示例,暴露的宿主机端口为:30880。 注意selector.app为上面yml文件中的metadata.lables.name

apiVersion: v1
kind: Service
metadata:
  name: jvmdemo-service
spec:
  type: NodePort
  ports:
    - port: 8080
      targetPort: 8080
      nodePort: 30080
  selector:
    app: demo
4.2 部署service:
kubectl create -f  jvmdemo-service.yml

查看service:

kubectl get srv

在这里插入图片描述
此时通过master,node的ip均可以访问到pod:
http://192.168.137.89:30080/
http://192.168.137.88:30080/

在这里插入图片描述

标签:kubectl,service,tomcat,部署,demo,宿主机,pod,K8S
来源: https://blog.csdn.net/u013286936/article/details/98460623

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有