k8s之部署jar包(七)

1、mvn打jar包:mvn clean package

2、上传到linux指定目录

3、编写Dockerfile文件,内容如下

FROM openjdk:8-jdk-alpine
ADD ./jimureport-demo-1.0.0-SNAPSHOT.jar /usr/local/app/jimureport-demo-1.0.0-SNAPSHOT.jar
ENTRYPOINT ["java", "-jar", "/usr/local/app/jimureport-demo-1.0.0-SNAPSHOT.jar"]
EXPOSE 9000

4、生成镜像

docker build -f Dockerfile -t 192.168.111.243:8858/senge-test/senge-jimureport-demo:v1 .

注意:“192.168.111.243:8858/senge-test”表示harbor创建的项目路径

5、查看镜像是否成功

6、命令登录&推送

#登录harbor
docker login -u admin -p Harbor12345 http://192.168.111.243:8858/
#推送
docker push 192.168.111.243:8858/senge-test/senge-jimureport-demo:v1

推送成功,如下图:

7、登录harbor管理页面,查看是否成功

8、编写deployment.yaml文件

apiVersion: apps/v1
kind: Deployment
metadata:
  name: jimureport-demo-deployment
  namespace: dev
  labels:
    app: jimureport-demo
spec:
  replicas: 1
  selector:
    matchLabels:
      app: jimureport-demo
  template:
    metadata:
      labels:
        app: jimureport-demo
    spec:
      containers:
        - name: senge-jimureport-demo
          image: 192.168.111.243:8858/senge-test/senge-jimureport-demo:v1
          ports:
            - containerPort: 9000

9、编写service.yaml(和deployment.yaml中的“app”值要一致)

****此文件是配置为外网可以访问:通过32260端口号

apiVersion: v1
kind: Service
metadata:
  name: jimureport-demo-service
  namespace: dev
spec:
  selector:
    app: jimureport-demo
  ports:
    - name: http
      port: 9000
      targetPort: 9000
      nodePort: 32260
  type: NodePort

10、文件生效

kubectl apply -f deployment.yaml
kubectl apply -f service.yaml

11、查看是否成功

#deployment是否成功
kubectl get pods -n dev

#service是否成功
kubectl get svc -n dev

12、访问程序

​http://192.168.111.241:32260/jmreport/list?token=123​

13、删除服务

#根据.yaml文件删除
kubectl delete -f deployment.yaml
kubectl delete -f service.yaml
#根据name删除
kubectl delete svc -n dev jimureport-service
kubectl delete deploy -n dev jimureport-demo-deployment-5b75d9cb8f-hvj5q

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java和Kubernetes(k8s)之间的热部署是指在运行Java应用程序时,可以动态地更新和重新加载应用程序的代码和资源,而无需停止整个应用程序或重新启动容器。在使用Kubernetes部署Java应用程序时,可以通过以下几种方式实现热部署: 1. 使用Docker和Kubernetes结合的方式进行热部署。可以使用DockerFile来构建Java镜像,并在Kubernetes中定义相关的Deployment和Service来部署和管理应用程序。在DockerFile中,可以使用`java -jar`命令来运行Java应用程序,并通过`ADD`或`COPY`命令将应用程序的JAR文件添加到镜像中。在运行时,可以通过更新镜像或使用Kubernetes的滚动更新机制,将新的代码和资源部署到运行中的容器中,实现热部署。 2. 使用Kubernetes的特性,如Deployment的滚动更新、Pod的重启策略等来实现热部署。通过定义Deployment对象的更新策略,可以在更新应用程序时保持高可用性。Kubernetes会自动创建新的Pod,并逐步替换旧的Pod,以实现无缝的热部署过程。 总结来说,Java和Kubernetes的热部署是通过使用Docker和Kubernetes的特性和机制,实现动态更新和重新加载Java应用程序的代码和资源,而无需停止整个应用程序或重新启动容器。这样可以提高应用程序的可用性和部署效率。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [K8S部署&DevOps](https://blog.csdn.net/weixin_43979341/article/details/124868927)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [【k8s】使用 Reloader 实现热部署](https://blog.csdn.net/qq_39218530/article/details/122982372)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值