k8s部署springboot项目

cuiran      2022-04-21     499

关键词:

开篇

基于前面的文章 CentOS7 使用 kubeadm 部署 K8s(单机/集群) 介绍了k8s的部署,接下来需要验证,本文选择通过一个简单的springboot 项目来验证。

springboot项目构建

springboot项目这里不过多介绍,主要介绍如何构建镜像及推送到镜像仓库

镜像构建

首先新建文件dockerfile

FROM openjdk:8-jdk-alpine
MAINTAINER cayden <cuiran2001@163.com>

#定义时区参数
ENV TZ=Asia/Shanghai
# 设置时区
RUN rm -rf /etc/localtime
RUN apk --no-cache add tzdata && \
    ln -sv /usr/share/zoneinfo/$TZ /etc/localtime &&\
    echo '$TZ' >/etc/timezone
RUN echo "export LANG=C.UTF-8" > /etc/profile.d/locale.sh

VOLUME /data/app
EXPOSE 8080
# 定义参数
ARG JAR_FILE=target/*.jar
ENV JAVA_OPTS=""

# 复制jar
COPY $JAR_FILE app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

#docker run -e "SPRING_PROFILES_ACTIVE=prod" -p 8080:8080 -t springio/gs-spring-boot-docker

进行build 操作

docker build -t cuiran2001/helloworld .

镜像推送

镜像推送至docker hub

docker push cuiran2001/helloworld:v1.1

推送显示如下 ,表示推送成功!

The push refers to repository [docker.io/cuiran2001/helloworld]
41140fae9ea6: Layer already exists
20efe8a47454: Layer already exists
4a749ec3afe9: Layer already exists
e64205be4795: Layer already exists
ceaf9e1ebef5: Layer already exists
9b9b7f3d56a0: Layer already exists
f1b5933fe4b5: Layer already exists
v1.1: digest: sha256:5c8fed1f1d2af902204aab0b04060db227a1c539f9750c22bbcae025777c3cfb size: 1782

可以到docker hub 上进行查看

k8s部署

模版文件准备

准备一个模板文件 testspringboot-rc.yaml

apiVersion: v1
kind: ReplicationController
metadata:
  name: testspringboot  #必选,资源名称
spec:
  # 节点数,设置为多个可以实现负载均衡效果
  replicas: 1
  selector:
    app: testspringboot
  template:
    metadata:
      labels:
        app: testspringboot
    spec:
      containers:
      - name: helloworld
        #镜像名
        image: cuiran2001/helloworld:v1.1
        #本地有镜像就不会去仓库拉取
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 8080

配置说明:
kind:资源类型,详情见文末
metadata: 元数据,用于备注资源信息
spec: specification of the resource content 指定该资源的内容
selector: 选择器,将选择具有label标签的资源作为管理范围
template: 资源模版定义
containerPort: 容器暴露给 K8S 的端口

执行命令

kubectl create -f testspringboot-rc.yaml

暴露对外端口

1、创建 SVC 模板文件 testspringboot-svc.yaml

apiVersion: v1
kind: Service
metadata:
  name: testsvc
spec:
  type: NodePort
  ports:
    - port: 8080
      targetPort: 8080
      # 节点暴露给外部的端口(范围必须为30000-32767)
      nodePort: 30001
  selector:
    app: testspringboot

2、创建 Service

kubectl create -f testspringboot-svc.yaml

3、验证测试

访问http://xxxxx:30001 即可

k8s部署springboot项目

...印并且返回可以看到2个副本pod已经Running访问前需要先把springboot.demo.com域名添加到宿主机的/etc/hosts中保证可以正常解析到ingress-nginx那台机器上的nginx即可(不详可以看上一篇)请求接口:http://springboot.demo.com/k8s/hello?name=johnny查... 查看详情

k8s如何部署springboot项目

参考技术AK8S如何部署SpringBoot项目1:首先,需要安装docker环境,以及安装Harbor仓库2:安装K8S集群环境3:进行docker镜像的制作并上传到仓库4:进行容器的编排。启动至此就可以了。创建dockertest.yaml文件如下运行kubectlcreate-fdockertest.... 查看详情

k8s部署springboot项目(代码片段)

...署,接下来需要验证,本文选择通过一个简单的springboot项目来验证。springboot项目构建springboot项目这里不过多介绍,主要介绍如何构建镜像及推送到镜像仓库镜像构建首先新建文件dockerfileFROMopenjdk:8-jdk-alpineMAINTAINERcayd... 查看详情

k8s部署springboot项目(代码片段)

...署,接下来需要验证,本文选择通过一个简单的springboot项目来验证。springboot项目构建springboot项目这里不过多介绍,主要介绍如何构建镜像及推送到镜像仓库镜像构建首先新建文件dockerfileFROMopenjdk:8-jdk-alpineMAINTAINERcayd... 查看详情

k8s部署springboot项目(一篇够用)(代码片段)

...天这篇文章主要介绍如何从0开始搭建一套基于K8s部署的SpringBoot案例教程。基础环境准备 查看详情

springboot项目部署在kubernetes(k8s)集群上的demo

参考技术A一、新建springboot项目在pom.xml文件添加注意:springboot自带的spring-boot-maven-plugin不要删,否则会找不到manifast文件。二、建立自己的镜像:Dockerfile在服务器上安装docker和k8s,参考https://kuboard.cn/install/install-dashboard.html并敲... 查看详情

云原生kubernetesk8s集群部署springboot项目(代码片段)

...比较接近实际业务的使用场景,使用k8s集群部署一个springboot的项目,我们的需求是:部署SpringBoot项目到阿里云服务器 ;基于容器打包,推送私有镜像仓库;采用K8S集群部署,对外暴露服务,pod副... 查看详情

简单几步把springboot项目部署到k8s,步骤来了!(代码片段)

....io/2020/04/08/Spring-Boot-Operator-User-Guide/前言在Kubernetes中部署springboot应用整体上来说是一件比较繁琐的事情,而SpringBootOperator则能带给你更清爽简单的体验。SpringBootOperator基于Kubernetes的customresourcedefinitions(CRDs)扩展API进行的开发... 查看详情

docker化你的springboot项目

...ji)友(you),因为微服务架构下的业务服务通常都基于SpringBoot进行开发,上线部署服务的时候通过容器来进行部署,能够简化部署的过程,然后使用一些容器管理工具管理容器,例如k8s、rancher等。这样才能方便我们进行扩展... 查看详情

阿里云k8s服务springboot项目应用升级时出现502错误

背景随着小步快跑、快速迭代的开发模式被越来越多的互联网企业认同和采用,应用的变更、升级频率变得越来越频繁。为了应对不同的升级需求,保证升级过程平稳顺利地进行,诞生了一系列的部署发布模式。停机发布-把老... 查看详情

阿里云k8s服务springboot项目应用升级时出现502错误

背景随着小步快跑、快速迭代的开发模式被越来越多的互联网企业认同和采用,应用的变更、升级频率变得越来越频繁。为了应对不同的升级需求,保证升级过程平稳顺利地进行,诞生了一系列的部署发布模式。停机发布-把老... 查看详情

k8s部署springboot实践应用指南

...ce、Ingress具体概念准备一套可用的k8s环境准备一个部署的springboot应用k8s最小单元是Pod,而Pod是一组运行的容器,那么容器是怎么运行起来的呢?就是通过构建的镜像。(目前我们使用的容器技术都是基于docker)那先让我们来一起... 查看详情

k8s的项目部署(代码片段)

k8s的项目部署k8s的项目部署开发阶段持续集成应用部署运维k8s中部署Java项目的流程k8s中部署Java项目制作镜像推送镜像部署镜像暴露应用k8s的项目部署开发阶段●编写代码。●测试。●编写Dockerfile。持续集成●代码编译、打包。... 查看详情

在k8s中部署springboot应用,爽..(代码片段)

....io/2020/04/08/Spring-Boot-Operator-User-Guide/前言在Kubernetes中部署springboot应用整体上来说是一件比较繁琐的事情,而SpringBootOperator则能带给你更清爽简单的体验。SpringBootOperator基于Kubernetes的customresourcedefinitions(CRDs)扩展API进行的开发... 查看详情

在k8s中部署springboot应用,爽!(代码片段)

....io/2020/04/08/Spring-Boot-Operator-User-Guide/前言在Kubernetes中部署springboot应用整体上来说是一件比较繁琐的事情,而SpringBootOperator则能带给你更清爽简单的体验。SpringBootOperator基于 查看详情

使用springbootoperator部署springboot到k8s(代码片段)

...u.io/2020/04/08/Spring-Boot-Operator-User-Guide前言在Kubernetes中部署springboot应用整体上来说是一件比较繁琐的事情,而SpringBootOperator则能带给你更清爽简单的体验。SpringBootOperator基于Kubernete 查看详情

打包部署springboot项目到linux并后台运行(代码片段)

...cker和k8s类似的那一套自动化运维方式。一般地,对于springboot项目,我们会把开发测试好的项目打成可执行的jar包,使用scp等方 查看详情

springboot部署k8s(代码片段)

...成功总结前言本系列教程将分2篇文章讲解,怎么部署springboot到k8s上。第一篇:springboot准备,这里包括打包镜像。第二篇:springboot镜像部署到k8s,我们将使用deployment,service用最简单的方式deployk8s.一、IDEA工程目录二... 查看详情