一、jar包和war包区别

首先简单介绍一下jar包和war包区别,当时就没分清,导致部署总是傻傻分不清楚.

jar包:jar包就是java的类进行编译生成的class文件就行打包的压缩包。里面是一些class文件。当我们自己使用maven写一些java程序,进行打包生成jar包。同时在可以在其他的工程下使用,但是我们在这个工程依赖的jar包,在其他工程使用该jar包也要导入。

war包:其实就是一个web程序进行打包便于部署的压缩包,里面包含我们web程序需要的一些东西,其中包括web.xml的配置文件,前端的页面文件,以及依赖的jar。文件数量对于jar包,这样便于我们部署工程,直接放到tomcat的webapps目录下,直接启动tomcat即可。同时可以使用WinRAR查看war包,直接将后缀.war改成.rar

原文链接:https://blog.csdn.net/shu616048151/article/details/81136164

二、创建JAVA项目,并打包成jar包

我的目录结构

这里是利用SpringBoot写的一个小DEMO,不熟悉的,可以去看入门视频

链接:https://www.bilibili.com/video/av38657363/?p=6

三、创建Dockerfile文件

我看了这篇文章作为参考,但COPY时候,他的有target/目录,我不明白哪儿来的,折腾了半天

文章链接:https://cloud.tencent.com/developer/article/1512705

Dockerfile文件

#基础镜像,如果本地仓库没有,会从远程仓库拉取

FROM openjdk:8-jdk-alpine

#容器中创建目录

RUN mkdir -p /usr/local/pasq

#编译后的jar包copy到容器中创建到目录内

COPY target/demo1-0.0.1-SNAPSHOT.jar /usr/local/pasq/myapp.jar

#指定容器启动时要执行的命令

ENTRYPOINT ["java","-jar","/usr/local/pasq/myapp.jar"]

#基础镜像,如果本地仓库没有,会从远程仓库拉取

FROM openjdk:8-jdk-alpine

#容器中创建目录

RUN mkdir -p /usr/local/pasq

#编译后的jar包copy到容器中创建到目录内

COPY demo1-0.0.1-SNAPSHOT.jar /usr/local/pasq/myapp.jar

#指定容器启动时要执行的命令

ENTRYPOINT ["java","-jar","/usr/local/pasq/myapp.jar"]

我所遇到的问题,开始对于jar包的位置没有相对于dockerfile文件,导致一直不能创建成功

四、构建镜像

1、构建命令

docker build -f Dockerfile文件位置 -t 镜像名:版本 .    【末尾有个点,一点要注意】

docker build -f /myDir/Dockerfile3 -t myapp:1.0 .

Dockerfile一般位于构建上下文的根目录下,

-f指定该文件的位置

-t参数指定构建成后,镜像的仓库、标签等

利用docker images命令查看自己所构建的镜像

2、镜像推送push、获取pull

镜像推送,我是自己做了个harbor仓库,hub.lqz.com是我的仓库地址

视频地址链接:https://www.bilibili.com/video/av66617940/?p=14

登录仓库:docker login hub.lqz.com

标记镜像:docker tag myapp:1.0 hub.lqz.com/library/myapp:1.0

推送镜像:docker push hub.lqz.com/library/myapp:1.0

获取镜像:docker pull hub.lqz.com/library/myapp:1.0

仓库命令

五、Deployment,Service的yaml文件

1、Deployment.yaml

deployment为申明式,所以构建用apply

一般将Deployment,Service写在一起,但我太菜,初步选择了分开写(其中service选择了nodePort)

[root@master manifests]# vim svc-deployment.yaml

apiVersion: apps/v1

kind: Deployment

metadata:

name: myapp-deploy

namespace: default

spec:

replicas: 3

selector:

matchLabels:

app: myapp

release: stabel

template:

metadata:

labels:

app: myapp

release: stabel

env: test

spec:

containers:

- name: myapp

image: hub.lqz.com/library/nginx:latest

imagePullPolicy: IfNotPresent

ports:

- name: http

containerPort: 80

创建: kubectl apply -f svc-deployment.yaml

2、service.yaml

[root@master manifests]# vim svc-nodePort.yaml

apiVersion: v1

kind: Service

metadata:

name: myapp

namespace: default

spec:

type: NodePort

selector:

app: myapp

release: stabel

ports:

- name: http

port: 8080

targetPort: 8080

nodePort: 30080

创建svc: kubectl apply -f svc-nodePort.yaml

问题:在构建过程中,svc-nodePort.yaml一直没写nodePort,导致创建成功,但一直访问失败,需要更加熟悉熟悉

查看pod,看是否构建成功

查看svc,并访问nodePort

最后,访问   ip地址:30080(根据自身设置的为准)

访问成功,但没页面,根据我的jar包,加/hello,访问成功

六、总结

看起来就一点的篇幅,本以为很快就能搞定的东西,写出来也花了我近一个小时,果然,什么事都不能想当然啊。这只是一个很基础的练习,没有添加太多的东西,但我却在其中周周转转了一两周之久,网上也没有找到适合我自己这种超级小白的资料,每一个现在看起来超级白痴的问题,在当时却足以让我寸步难行。自学这种事,可真TMD让人眼瞎,理不清主干思想,抓不住重点,把握不住节奏,做的也不够完善。但无论怎么样,那怕自己是一只胖菜鸟,今天也终于挥动了一下翅膀,不值得骄傲,却值得留念!

望每一个在学习道路上踽踽独行的人都能守得云开见月明!

2019-10-18打卡,今天也是FPX 小凤凰S9小组第一出现的日子,小IG,RNG冲鸭!!!

利用Kubernetes(K8S)部署JAVA项目的更多相关文章

  1. k8s 部署 Java 项目

    前几天安装了 k8s 并测试了自动伸缩功能(HPA),今天来部署一个简单的 Java 应用到 k8s. 开始之前需要先安装一下 ingress 插件.ingress 作为 k8s 的流量入口,有多种实 ...

  2. RedHat Linux 5.5安装JDK+Tomcat并部署Java项目

    与大家分享下RedHat Linux 5.5安装JDK+Tomcat并部署Java项目的步骤,希望对大家有用. 1.下载并安装jdk 虚拟机中安装RedHat Linux 5.5 64位企业版, 这里 ...

  3. 微服务探索之路03篇-docker私有仓库Harbor搭建+Kubernetes(k8s)部署私有仓库的镜像

    ❝ 目录: 微服务探索之路01篇.net6.0项目本地win10系统docker到服务器liunx系统docker的贯通 微服务探索之路02篇liunx ubuntu服务器部署k8s(kubernet ...

  4. Win10搭建Jenkins部署Java项目(本机和远程Win10部署)

    目录 一.前言&背景 二.环境准备 三.插件安装 四.全局配置 Maven JDK Git Maven 五.新建项目并配置 新建项目 配置 1.Discard old builds 2.Thi ...

  5. tomcat部署java项目

    tomcat部署java项目 1.启动tomcat 进入到tomcat安装目录下的bin #cd /opt/tomcat/bin #./startup.sh // 执行重启命令 2.重建一个新目录导入 ...

  6. windows一键部署java项目

    windows一键部署java项目 因为公司需求,要在windows的环境上做一键部署启动java项目,同时还要支持从安装界面动态修改配置文件的IP地址.就像安装软件一样将jdk,tomcat,mys ...

  7. 关于weblogic部署Java项目的包冲突问题

    我们可能会用各种应用服务部署我们的Java应用,比如Tomcat.WAS.weblogic等.Tomcat和WAS可能会比较少遇到一些奇怪的问题,但是用weblogic部署项目则经常遇到一些比如包冲突 ...

  8. jenkins部署java项目,脚本文件放在远程仓库中 和jar一起打包(六)

    jenkins部署java项目到远程linux上,脚本文件和项目一起上传到gogs上,直接执行gogs上的脚本文件来执行项目 (1)新建maven项目 pom.xml的配置 <project x ...

  9. 通过Jenkins部署java项目

    部署java项目-创建私有仓库 Jenkins大多数情况下都是用来部署Java项目,Java项目有一个特点是需要编译和打包的,一般情况下编译和打包都是用maven完成,所以系统环境中需要安装maven ...

随机推荐

  1. Informatica参考

    近日在做informatica项目时,要求参照informatica中原有的mapping方式实现.那么当知道源表或者目标表或者是映射时,如何快速的找出分散在不同的Subject的mapping或者是 ...

  2. neuoj Blurred Pictures(小思维题

    https://oj.neu.edu.cn/problem/1505 题意:一张由n*n的照片,每行从第ai个像素点到第bi个像素点是非模糊点,要求找出最大的正方形,该正方形中的像素都是非模糊点. 思 ...

  3. bzoj1495 [NOI2006]网络收费 复杂度分析+树上背包

    题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=1495 题解 通过观察可以发现,对于一个 \(lca\),如果 \(nA \leq nB\),那 ...

  4. 牛客网NOIP赛前集训营-提高组(第七场)A-中国式家长 2

    题目描述 有一天,牛牛找到了一个叫<中国式家长>的游戏,游戏中需要靠"挖脑洞"来提升悟性. 挖脑洞在一个\(N\)行\(M\)列的地图上进行,一开始牛牛有\(K\)点行 ...

  5. find命令进阶(三):xargs

    The xargs command performs an interesting function. It accepts input from standard input and convert ...

  6. Mac 上使用svn 记录

    .启动svn服务器 svnadmin create /Users/liuwei/Desktop/svn/UI 如果本地有 UI这个目录了就不用再运行 使用这句就可以了 svnserve -d -r / ...

  7. spring boot jar的支持

  8. Buuctf | sqli-labs

    这个是赵师傅给我们提供的训练靶场,最好都打一遍,但是出于找flag的角度,特此记录一下,flag在哪里[没错,我就是喜欢我的蓝变红,哈] ?id=1' :报错,说明就是用这个闭合的 ?id=0' un ...

  9. [CSP-S模拟测试]:字符消除2(hash+KMP)

    题目背景 生牛哥终于打通了“字符消除”,可是他又被它的续集难倒了. 题目传送门(内部题52) 输入格式 第一行$n$表示数据组书.接下来每行一个字符串.(只包含大写字母) 输出格式 每组数据输出一个$ ...

  10. LocalActivityManager如何在一个Activity的一部分中显示其他Activity

    首先要使用该方法,页面必须继承ActivityGroup. 总的来说,实现"如何在一个Activity的一部分中显示其他Activity"除了LocalActivityManage ...