3. 使用K8S部署tomcat

注意,以下 在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 

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

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

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

3. 使用K8S部署tomcat_第1张图片

但是此时在宿主机外部还不能访问到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

3. 使用K8S部署tomcat_第2张图片
此时通过master,node的ip均可以访问到pod:
http://192.168.137.89:30080/
http://192.168.137.88:30080/

3. 使用K8S部署tomcat_第3张图片

你可能感兴趣的:(k8s,k8s)